'用大白話告訴你:Java 後端到底是在做什麼?'

"

作者:黃小斜

閱讀本文大概需要 6 分鐘。

"

作者:黃小斜

閱讀本文大概需要 6 分鐘。

用大白話告訴你:Java 後端到底是在做什麼?

新手程序員通常會走入一個誤區,就是認為學習了一門語言,就可以稱為是某某語言工程師了。但事實上真的是這樣嗎?其實並非如此。

今天我們就來聊一聊,Java 開發工程師到底開發的是什麼東西。準確點來說,Java後端到底在做什麼?

大家都知道 Java 是一門後端語言,後端指的就是服務端,服務端代碼一般運行在服務器上,通常我們運行Java 程序的服務器都是 Linux 服務器。

這些服務器在互聯網公司中一般放在一個叫做機房的地方里,於是像我們這類 Java 程序員的代碼一般也運行在這些機房裡的服務器中。

"

作者:黃小斜

閱讀本文大概需要 6 分鐘。

用大白話告訴你:Java 後端到底是在做什麼?

新手程序員通常會走入一個誤區,就是認為學習了一門語言,就可以稱為是某某語言工程師了。但事實上真的是這樣嗎?其實並非如此。

今天我們就來聊一聊,Java 開發工程師到底開發的是什麼東西。準確點來說,Java後端到底在做什麼?

大家都知道 Java 是一門後端語言,後端指的就是服務端,服務端代碼一般運行在服務器上,通常我們運行Java 程序的服務器都是 Linux 服務器。

這些服務器在互聯網公司中一般放在一個叫做機房的地方里,於是像我們這類 Java 程序員的代碼一般也運行在這些機房裡的服務器中。

用大白話告訴你:Java 後端到底是在做什麼?

Java 裡有一個概念叫做虛擬機,你可以把它理解為一個安卓的模擬器,比如你在電腦上裝了一個安卓模擬器,就可以通過它來運行安卓應用程序,比如裝個 APP,手機遊戲什麼的。

所以當你在電腦上安裝了一個叫做 JDK 的東西時,電腦裡就有了 JRE 也就是 Java 運行環境,有了這個運行環境,你就可以運行 Java 應用程序了。

知道 Java 程序如何運行在計算機上之後,我們再來講一講平時學的一些 Java 基礎知識,它們到底有什麼用?

其實平時這一些 Java 基礎語法都僅僅是你寫代碼的一些基礎知識,就相當於英語中的 26 個字母,常見的有基本類型變量、for 循環、if else 等等基本語法,掌握了這些基礎知識之後,你就可以上手寫一些很簡單的代碼了。

除此之外,Java 還有一些比較特別的概念,比如面向對象的特性,其中有類、接口等概念。為什麼 Java 要引入這些東西呢,其實就是想讓使用者更好地進行設計、抽象和編程。

對於新手來說,你不需要理解得特別的深刻,因為這些東西只有你在你真正寫代碼之後才能逐步去理解。

"

作者:黃小斜

閱讀本文大概需要 6 分鐘。

用大白話告訴你:Java 後端到底是在做什麼?

新手程序員通常會走入一個誤區,就是認為學習了一門語言,就可以稱為是某某語言工程師了。但事實上真的是這樣嗎?其實並非如此。

今天我們就來聊一聊,Java 開發工程師到底開發的是什麼東西。準確點來說,Java後端到底在做什麼?

大家都知道 Java 是一門後端語言,後端指的就是服務端,服務端代碼一般運行在服務器上,通常我們運行Java 程序的服務器都是 Linux 服務器。

這些服務器在互聯網公司中一般放在一個叫做機房的地方里,於是像我們這類 Java 程序員的代碼一般也運行在這些機房裡的服務器中。

用大白話告訴你:Java 後端到底是在做什麼?

Java 裡有一個概念叫做虛擬機,你可以把它理解為一個安卓的模擬器,比如你在電腦上裝了一個安卓模擬器,就可以通過它來運行安卓應用程序,比如裝個 APP,手機遊戲什麼的。

所以當你在電腦上安裝了一個叫做 JDK 的東西時,電腦裡就有了 JRE 也就是 Java 運行環境,有了這個運行環境,你就可以運行 Java 應用程序了。

知道 Java 程序如何運行在計算機上之後,我們再來講一講平時學的一些 Java 基礎知識,它們到底有什麼用?

其實平時這一些 Java 基礎語法都僅僅是你寫代碼的一些基礎知識,就相當於英語中的 26 個字母,常見的有基本類型變量、for 循環、if else 等等基本語法,掌握了這些基礎知識之後,你就可以上手寫一些很簡單的代碼了。

除此之外,Java 還有一些比較特別的概念,比如面向對象的特性,其中有類、接口等概念。為什麼 Java 要引入這些東西呢,其實就是想讓使用者更好地進行設計、抽象和編程。

對於新手來說,你不需要理解得特別的深刻,因為這些東西只有你在你真正寫代碼之後才能逐步去理解。

用大白話告訴你:Java 後端到底是在做什麼?

說完基本知識之後,我想你也會好奇,Java裡經常提到的一些集合類是幹嘛的呢,因為在現實生活中有很多場景,需要用到集合類,比如說一個用戶名列表,你要怎麼存呢?

你會用一個 List 來做對不對,所以集合類的作用就是讓你在編程中更好的存儲數據。

事實上,集合類的概念最早是來源於數據結構的,因為計算機裡有很多特殊的數據存儲結構,比如文件樹,比如鏈表和數組等結構,因此計算機理論把這些存儲數據的模型抽象成一些常見的結構,統稱為數據結構。

那麼,Java 中的併發編程又是做什麼的呢,Java 中的多線程是為了更好地利用電腦中的CPU核心,通過併發編程,就可以提高程序併發的效率。

但是併發編程的背後需要操作系統的支持,以及計算機硬件的支持,所以,如果你要完全地理解多線程,絕不僅僅是理解 Java 裡的 Thread 或者是線程池就足夠了,你還需要去理解操作系統,以及計算機組成原理。

"

作者:黃小斜

閱讀本文大概需要 6 分鐘。

用大白話告訴你:Java 後端到底是在做什麼?

新手程序員通常會走入一個誤區,就是認為學習了一門語言,就可以稱為是某某語言工程師了。但事實上真的是這樣嗎?其實並非如此。

今天我們就來聊一聊,Java 開發工程師到底開發的是什麼東西。準確點來說,Java後端到底在做什麼?

大家都知道 Java 是一門後端語言,後端指的就是服務端,服務端代碼一般運行在服務器上,通常我們運行Java 程序的服務器都是 Linux 服務器。

這些服務器在互聯網公司中一般放在一個叫做機房的地方里,於是像我們這類 Java 程序員的代碼一般也運行在這些機房裡的服務器中。

用大白話告訴你:Java 後端到底是在做什麼?

Java 裡有一個概念叫做虛擬機,你可以把它理解為一個安卓的模擬器,比如你在電腦上裝了一個安卓模擬器,就可以通過它來運行安卓應用程序,比如裝個 APP,手機遊戲什麼的。

所以當你在電腦上安裝了一個叫做 JDK 的東西時,電腦裡就有了 JRE 也就是 Java 運行環境,有了這個運行環境,你就可以運行 Java 應用程序了。

知道 Java 程序如何運行在計算機上之後,我們再來講一講平時學的一些 Java 基礎知識,它們到底有什麼用?

其實平時這一些 Java 基礎語法都僅僅是你寫代碼的一些基礎知識,就相當於英語中的 26 個字母,常見的有基本類型變量、for 循環、if else 等等基本語法,掌握了這些基礎知識之後,你就可以上手寫一些很簡單的代碼了。

除此之外,Java 還有一些比較特別的概念,比如面向對象的特性,其中有類、接口等概念。為什麼 Java 要引入這些東西呢,其實就是想讓使用者更好地進行設計、抽象和編程。

對於新手來說,你不需要理解得特別的深刻,因為這些東西只有你在你真正寫代碼之後才能逐步去理解。

用大白話告訴你:Java 後端到底是在做什麼?

說完基本知識之後,我想你也會好奇,Java裡經常提到的一些集合類是幹嘛的呢,因為在現實生活中有很多場景,需要用到集合類,比如說一個用戶名列表,你要怎麼存呢?

你會用一個 List 來做對不對,所以集合類的作用就是讓你在編程中更好的存儲數據。

事實上,集合類的概念最早是來源於數據結構的,因為計算機裡有很多特殊的數據存儲結構,比如文件樹,比如鏈表和數組等結構,因此計算機理論把這些存儲數據的模型抽象成一些常見的結構,統稱為數據結構。

那麼,Java 中的併發編程又是做什麼的呢,Java 中的多線程是為了更好地利用電腦中的CPU核心,通過併發編程,就可以提高程序併發的效率。

但是併發編程的背後需要操作系統的支持,以及計算機硬件的支持,所以,如果你要完全地理解多線程,絕不僅僅是理解 Java 裡的 Thread 或者是線程池就足夠了,你還需要去理解操作系統,以及計算機組成原理。

用大白話告訴你:Java 後端到底是在做什麼?

和併發編程類似,Java 裡也有網絡編程的概念,Java 裡的網絡編程和其他語言大同小異,其實也是基於 TCP/IP 協議實現的一套 API,通過網絡編程,你就可以在程序中把你想傳輸的數據傳輸到網絡的另一端,有了網絡編程和併發編程之後,Java 程序員的能量已經很大了

講完這幾點之後接下來再談談,我們通常說的 Java 後端技術到底是什麼,就拿支付寶來舉例吧,曾經的支付寶用戶數並不多,一臺服務器,一個數據庫就可以支持所有的業務了。

當支付寶的用戶越來越多的時候,一臺服務器無法同時滿足海量用戶的需求,於是開始出現了多臺服務器,多臺服務器組成了一個集群,用戶可以通過負載均衡的方式訪問這些服務器,每個用戶可能會訪問到不同的機器上,這樣子就達到了分流的效果,服務器的壓力就會減小。

由於數據庫需要保證數據的可靠性,萬一某一臺數據庫掛了,並且沒有備份的話,那麼這個數據就無法訪問了,這在大型系統中是不允許出現的,於是乎,就有了數據庫的主從部署。

但事實上,隨著業務發展,數據庫的壓力也越來越大,主備部署並不能解決數據庫訪問性能的問題,於是乎我們需要進行分庫分表,在數據庫主備的基礎上,我們會把一個數據量很大的表拆成多個表,並且把數據庫請求分流到不同的數據上,比如說100個分庫,100個分表,就相當於把一個數據表劃分成10000個數據表。

此時又出現一個問題,如果一個數據庫有多個備庫,並且當主庫掛掉的時候需要進行主從切換時,主備數據庫之間的數據就可能發生不一致,而這也是分佈式理論研究的問題之一,因為比較複雜,我們這裡就略過不講。

"

作者:黃小斜

閱讀本文大概需要 6 分鐘。

用大白話告訴你:Java 後端到底是在做什麼?

新手程序員通常會走入一個誤區,就是認為學習了一門語言,就可以稱為是某某語言工程師了。但事實上真的是這樣嗎?其實並非如此。

今天我們就來聊一聊,Java 開發工程師到底開發的是什麼東西。準確點來說,Java後端到底在做什麼?

大家都知道 Java 是一門後端語言,後端指的就是服務端,服務端代碼一般運行在服務器上,通常我們運行Java 程序的服務器都是 Linux 服務器。

這些服務器在互聯網公司中一般放在一個叫做機房的地方里,於是像我們這類 Java 程序員的代碼一般也運行在這些機房裡的服務器中。

用大白話告訴你:Java 後端到底是在做什麼?

Java 裡有一個概念叫做虛擬機,你可以把它理解為一個安卓的模擬器,比如你在電腦上裝了一個安卓模擬器,就可以通過它來運行安卓應用程序,比如裝個 APP,手機遊戲什麼的。

所以當你在電腦上安裝了一個叫做 JDK 的東西時,電腦裡就有了 JRE 也就是 Java 運行環境,有了這個運行環境,你就可以運行 Java 應用程序了。

知道 Java 程序如何運行在計算機上之後,我們再來講一講平時學的一些 Java 基礎知識,它們到底有什麼用?

其實平時這一些 Java 基礎語法都僅僅是你寫代碼的一些基礎知識,就相當於英語中的 26 個字母,常見的有基本類型變量、for 循環、if else 等等基本語法,掌握了這些基礎知識之後,你就可以上手寫一些很簡單的代碼了。

除此之外,Java 還有一些比較特別的概念,比如面向對象的特性,其中有類、接口等概念。為什麼 Java 要引入這些東西呢,其實就是想讓使用者更好地進行設計、抽象和編程。

對於新手來說,你不需要理解得特別的深刻,因為這些東西只有你在你真正寫代碼之後才能逐步去理解。

用大白話告訴你:Java 後端到底是在做什麼?

說完基本知識之後,我想你也會好奇,Java裡經常提到的一些集合類是幹嘛的呢,因為在現實生活中有很多場景,需要用到集合類,比如說一個用戶名列表,你要怎麼存呢?

你會用一個 List 來做對不對,所以集合類的作用就是讓你在編程中更好的存儲數據。

事實上,集合類的概念最早是來源於數據結構的,因為計算機裡有很多特殊的數據存儲結構,比如文件樹,比如鏈表和數組等結構,因此計算機理論把這些存儲數據的模型抽象成一些常見的結構,統稱為數據結構。

那麼,Java 中的併發編程又是做什麼的呢,Java 中的多線程是為了更好地利用電腦中的CPU核心,通過併發編程,就可以提高程序併發的效率。

但是併發編程的背後需要操作系統的支持,以及計算機硬件的支持,所以,如果你要完全地理解多線程,絕不僅僅是理解 Java 裡的 Thread 或者是線程池就足夠了,你還需要去理解操作系統,以及計算機組成原理。

用大白話告訴你:Java 後端到底是在做什麼?

和併發編程類似,Java 裡也有網絡編程的概念,Java 裡的網絡編程和其他語言大同小異,其實也是基於 TCP/IP 協議實現的一套 API,通過網絡編程,你就可以在程序中把你想傳輸的數據傳輸到網絡的另一端,有了網絡編程和併發編程之後,Java 程序員的能量已經很大了

講完這幾點之後接下來再談談,我們通常說的 Java 後端技術到底是什麼,就拿支付寶來舉例吧,曾經的支付寶用戶數並不多,一臺服務器,一個數據庫就可以支持所有的業務了。

當支付寶的用戶越來越多的時候,一臺服務器無法同時滿足海量用戶的需求,於是開始出現了多臺服務器,多臺服務器組成了一個集群,用戶可以通過負載均衡的方式訪問這些服務器,每個用戶可能會訪問到不同的機器上,這樣子就達到了分流的效果,服務器的壓力就會減小。

由於數據庫需要保證數據的可靠性,萬一某一臺數據庫掛了,並且沒有備份的話,那麼這個數據就無法訪問了,這在大型系統中是不允許出現的,於是乎,就有了數據庫的主從部署。

但事實上,隨著業務發展,數據庫的壓力也越來越大,主備部署並不能解決數據庫訪問性能的問題,於是乎我們需要進行分庫分表,在數據庫主備的基礎上,我們會把一個數據量很大的表拆成多個表,並且把數據庫請求分流到不同的數據上,比如說100個分庫,100個分表,就相當於把一個數據表劃分成10000個數據表。

此時又出現一個問題,如果一個數據庫有多個備庫,並且當主庫掛掉的時候需要進行主從切換時,主備數據庫之間的數據就可能發生不一致,而這也是分佈式理論研究的問題之一,因為比較複雜,我們這裡就略過不講。

用大白話告訴你:Java 後端到底是在做什麼?

剛才說到了分佈式技術,其實負載均衡、分庫分表都是分佈式技術的一種實現,如果你不想做分庫分表,那還有什麼辦法能夠減輕數據庫訪問的壓力呢?於是緩存就出現了,緩存可以讓服務器先把請求打到緩存上,由於緩存的數據一般在內存中,所以訪問速度會非常快,這些請求無需經過數據庫。

隨著業務發展,緩存的單點壓力也會比較大,於是乎分佈式緩存就出現了,通常來說,緩存難以保證數據的可靠性,因為它們的數據可能會丟失,同時緩存只能存儲一部分的數據,並不能解決所有問題。

所以當某些業務的請求量非常大的時候,光靠緩存也解決不了問題,此時我們還可以通過消息隊列來幫我們解決大流量併發請求的問題。

我們可以通過消息隊列來存儲一部分的請求消息,然後根據我們服務器處理請求的能力,把消息再逐步取出來,接著去把這些消息逐漸地進行處理,這樣就可以很好的解決高併發的問題。當然,前提是消息隊列要保證消息存儲的可靠性,這也是大部分消息隊列都會保證的能力。

"

作者:黃小斜

閱讀本文大概需要 6 分鐘。

用大白話告訴你:Java 後端到底是在做什麼?

新手程序員通常會走入一個誤區,就是認為學習了一門語言,就可以稱為是某某語言工程師了。但事實上真的是這樣嗎?其實並非如此。

今天我們就來聊一聊,Java 開發工程師到底開發的是什麼東西。準確點來說,Java後端到底在做什麼?

大家都知道 Java 是一門後端語言,後端指的就是服務端,服務端代碼一般運行在服務器上,通常我們運行Java 程序的服務器都是 Linux 服務器。

這些服務器在互聯網公司中一般放在一個叫做機房的地方里,於是像我們這類 Java 程序員的代碼一般也運行在這些機房裡的服務器中。

用大白話告訴你:Java 後端到底是在做什麼?

Java 裡有一個概念叫做虛擬機,你可以把它理解為一個安卓的模擬器,比如你在電腦上裝了一個安卓模擬器,就可以通過它來運行安卓應用程序,比如裝個 APP,手機遊戲什麼的。

所以當你在電腦上安裝了一個叫做 JDK 的東西時,電腦裡就有了 JRE 也就是 Java 運行環境,有了這個運行環境,你就可以運行 Java 應用程序了。

知道 Java 程序如何運行在計算機上之後,我們再來講一講平時學的一些 Java 基礎知識,它們到底有什麼用?

其實平時這一些 Java 基礎語法都僅僅是你寫代碼的一些基礎知識,就相當於英語中的 26 個字母,常見的有基本類型變量、for 循環、if else 等等基本語法,掌握了這些基礎知識之後,你就可以上手寫一些很簡單的代碼了。

除此之外,Java 還有一些比較特別的概念,比如面向對象的特性,其中有類、接口等概念。為什麼 Java 要引入這些東西呢,其實就是想讓使用者更好地進行設計、抽象和編程。

對於新手來說,你不需要理解得特別的深刻,因為這些東西只有你在你真正寫代碼之後才能逐步去理解。

用大白話告訴你:Java 後端到底是在做什麼?

說完基本知識之後,我想你也會好奇,Java裡經常提到的一些集合類是幹嘛的呢,因為在現實生活中有很多場景,需要用到集合類,比如說一個用戶名列表,你要怎麼存呢?

你會用一個 List 來做對不對,所以集合類的作用就是讓你在編程中更好的存儲數據。

事實上,集合類的概念最早是來源於數據結構的,因為計算機裡有很多特殊的數據存儲結構,比如文件樹,比如鏈表和數組等結構,因此計算機理論把這些存儲數據的模型抽象成一些常見的結構,統稱為數據結構。

那麼,Java 中的併發編程又是做什麼的呢,Java 中的多線程是為了更好地利用電腦中的CPU核心,通過併發編程,就可以提高程序併發的效率。

但是併發編程的背後需要操作系統的支持,以及計算機硬件的支持,所以,如果你要完全地理解多線程,絕不僅僅是理解 Java 裡的 Thread 或者是線程池就足夠了,你還需要去理解操作系統,以及計算機組成原理。

用大白話告訴你:Java 後端到底是在做什麼?

和併發編程類似,Java 裡也有網絡編程的概念,Java 裡的網絡編程和其他語言大同小異,其實也是基於 TCP/IP 協議實現的一套 API,通過網絡編程,你就可以在程序中把你想傳輸的數據傳輸到網絡的另一端,有了網絡編程和併發編程之後,Java 程序員的能量已經很大了

講完這幾點之後接下來再談談,我們通常說的 Java 後端技術到底是什麼,就拿支付寶來舉例吧,曾經的支付寶用戶數並不多,一臺服務器,一個數據庫就可以支持所有的業務了。

當支付寶的用戶越來越多的時候,一臺服務器無法同時滿足海量用戶的需求,於是開始出現了多臺服務器,多臺服務器組成了一個集群,用戶可以通過負載均衡的方式訪問這些服務器,每個用戶可能會訪問到不同的機器上,這樣子就達到了分流的效果,服務器的壓力就會減小。

由於數據庫需要保證數據的可靠性,萬一某一臺數據庫掛了,並且沒有備份的話,那麼這個數據就無法訪問了,這在大型系統中是不允許出現的,於是乎,就有了數據庫的主從部署。

但事實上,隨著業務發展,數據庫的壓力也越來越大,主備部署並不能解決數據庫訪問性能的問題,於是乎我們需要進行分庫分表,在數據庫主備的基礎上,我們會把一個數據量很大的表拆成多個表,並且把數據庫請求分流到不同的數據上,比如說100個分庫,100個分表,就相當於把一個數據表劃分成10000個數據表。

此時又出現一個問題,如果一個數據庫有多個備庫,並且當主庫掛掉的時候需要進行主從切換時,主備數據庫之間的數據就可能發生不一致,而這也是分佈式理論研究的問題之一,因為比較複雜,我們這裡就略過不講。

用大白話告訴你:Java 後端到底是在做什麼?

剛才說到了分佈式技術,其實負載均衡、分庫分表都是分佈式技術的一種實現,如果你不想做分庫分表,那還有什麼辦法能夠減輕數據庫訪問的壓力呢?於是緩存就出現了,緩存可以讓服務器先把請求打到緩存上,由於緩存的數據一般在內存中,所以訪問速度會非常快,這些請求無需經過數據庫。

隨著業務發展,緩存的單點壓力也會比較大,於是乎分佈式緩存就出現了,通常來說,緩存難以保證數據的可靠性,因為它們的數據可能會丟失,同時緩存只能存儲一部分的數據,並不能解決所有問題。

所以當某些業務的請求量非常大的時候,光靠緩存也解決不了問題,此時我們還可以通過消息隊列來幫我們解決大流量併發請求的問題。

我們可以通過消息隊列來存儲一部分的請求消息,然後根據我們服務器處理請求的能力,把消息再逐步取出來,接著去把這些消息逐漸地進行處理,這樣就可以很好的解決高併發的問題。當然,前提是消息隊列要保證消息存儲的可靠性,這也是大部分消息隊列都會保證的能力。

用大白話告訴你:Java 後端到底是在做什麼?

一口氣講了這麼多,算是把 Java 後端的大概面貌介紹清楚了,除此之外還有很多東西沒講到,真要講完的話一晚上也說不完。

總體來說,Java 後端技術,說難不難說簡單也不簡單,我儘量把這些內容都講的比較通俗易懂,事實上每項技術的背後都有特別多複雜的實現原理,當然,在你理解了 Java 後端技術的整體概念以後,相信對於你之後的學習會更有幫助。

如果有哪裡說錯了,偷偷留言告訴我

"

作者:黃小斜

閱讀本文大概需要 6 分鐘。

用大白話告訴你:Java 後端到底是在做什麼?

新手程序員通常會走入一個誤區,就是認為學習了一門語言,就可以稱為是某某語言工程師了。但事實上真的是這樣嗎?其實並非如此。

今天我們就來聊一聊,Java 開發工程師到底開發的是什麼東西。準確點來說,Java後端到底在做什麼?

大家都知道 Java 是一門後端語言,後端指的就是服務端,服務端代碼一般運行在服務器上,通常我們運行Java 程序的服務器都是 Linux 服務器。

這些服務器在互聯網公司中一般放在一個叫做機房的地方里,於是像我們這類 Java 程序員的代碼一般也運行在這些機房裡的服務器中。

用大白話告訴你:Java 後端到底是在做什麼?

Java 裡有一個概念叫做虛擬機,你可以把它理解為一個安卓的模擬器,比如你在電腦上裝了一個安卓模擬器,就可以通過它來運行安卓應用程序,比如裝個 APP,手機遊戲什麼的。

所以當你在電腦上安裝了一個叫做 JDK 的東西時,電腦裡就有了 JRE 也就是 Java 運行環境,有了這個運行環境,你就可以運行 Java 應用程序了。

知道 Java 程序如何運行在計算機上之後,我們再來講一講平時學的一些 Java 基礎知識,它們到底有什麼用?

其實平時這一些 Java 基礎語法都僅僅是你寫代碼的一些基礎知識,就相當於英語中的 26 個字母,常見的有基本類型變量、for 循環、if else 等等基本語法,掌握了這些基礎知識之後,你就可以上手寫一些很簡單的代碼了。

除此之外,Java 還有一些比較特別的概念,比如面向對象的特性,其中有類、接口等概念。為什麼 Java 要引入這些東西呢,其實就是想讓使用者更好地進行設計、抽象和編程。

對於新手來說,你不需要理解得特別的深刻,因為這些東西只有你在你真正寫代碼之後才能逐步去理解。

用大白話告訴你:Java 後端到底是在做什麼?

說完基本知識之後,我想你也會好奇,Java裡經常提到的一些集合類是幹嘛的呢,因為在現實生活中有很多場景,需要用到集合類,比如說一個用戶名列表,你要怎麼存呢?

你會用一個 List 來做對不對,所以集合類的作用就是讓你在編程中更好的存儲數據。

事實上,集合類的概念最早是來源於數據結構的,因為計算機裡有很多特殊的數據存儲結構,比如文件樹,比如鏈表和數組等結構,因此計算機理論把這些存儲數據的模型抽象成一些常見的結構,統稱為數據結構。

那麼,Java 中的併發編程又是做什麼的呢,Java 中的多線程是為了更好地利用電腦中的CPU核心,通過併發編程,就可以提高程序併發的效率。

但是併發編程的背後需要操作系統的支持,以及計算機硬件的支持,所以,如果你要完全地理解多線程,絕不僅僅是理解 Java 裡的 Thread 或者是線程池就足夠了,你還需要去理解操作系統,以及計算機組成原理。

用大白話告訴你:Java 後端到底是在做什麼?

和併發編程類似,Java 裡也有網絡編程的概念,Java 裡的網絡編程和其他語言大同小異,其實也是基於 TCP/IP 協議實現的一套 API,通過網絡編程,你就可以在程序中把你想傳輸的數據傳輸到網絡的另一端,有了網絡編程和併發編程之後,Java 程序員的能量已經很大了

講完這幾點之後接下來再談談,我們通常說的 Java 後端技術到底是什麼,就拿支付寶來舉例吧,曾經的支付寶用戶數並不多,一臺服務器,一個數據庫就可以支持所有的業務了。

當支付寶的用戶越來越多的時候,一臺服務器無法同時滿足海量用戶的需求,於是開始出現了多臺服務器,多臺服務器組成了一個集群,用戶可以通過負載均衡的方式訪問這些服務器,每個用戶可能會訪問到不同的機器上,這樣子就達到了分流的效果,服務器的壓力就會減小。

由於數據庫需要保證數據的可靠性,萬一某一臺數據庫掛了,並且沒有備份的話,那麼這個數據就無法訪問了,這在大型系統中是不允許出現的,於是乎,就有了數據庫的主從部署。

但事實上,隨著業務發展,數據庫的壓力也越來越大,主備部署並不能解決數據庫訪問性能的問題,於是乎我們需要進行分庫分表,在數據庫主備的基礎上,我們會把一個數據量很大的表拆成多個表,並且把數據庫請求分流到不同的數據上,比如說100個分庫,100個分表,就相當於把一個數據表劃分成10000個數據表。

此時又出現一個問題,如果一個數據庫有多個備庫,並且當主庫掛掉的時候需要進行主從切換時,主備數據庫之間的數據就可能發生不一致,而這也是分佈式理論研究的問題之一,因為比較複雜,我們這裡就略過不講。

用大白話告訴你:Java 後端到底是在做什麼?

剛才說到了分佈式技術,其實負載均衡、分庫分表都是分佈式技術的一種實現,如果你不想做分庫分表,那還有什麼辦法能夠減輕數據庫訪問的壓力呢?於是緩存就出現了,緩存可以讓服務器先把請求打到緩存上,由於緩存的數據一般在內存中,所以訪問速度會非常快,這些請求無需經過數據庫。

隨著業務發展,緩存的單點壓力也會比較大,於是乎分佈式緩存就出現了,通常來說,緩存難以保證數據的可靠性,因為它們的數據可能會丟失,同時緩存只能存儲一部分的數據,並不能解決所有問題。

所以當某些業務的請求量非常大的時候,光靠緩存也解決不了問題,此時我們還可以通過消息隊列來幫我們解決大流量併發請求的問題。

我們可以通過消息隊列來存儲一部分的請求消息,然後根據我們服務器處理請求的能力,把消息再逐步取出來,接著去把這些消息逐漸地進行處理,這樣就可以很好的解決高併發的問題。當然,前提是消息隊列要保證消息存儲的可靠性,這也是大部分消息隊列都會保證的能力。

用大白話告訴你:Java 後端到底是在做什麼?

一口氣講了這麼多,算是把 Java 後端的大概面貌介紹清楚了,除此之外還有很多東西沒講到,真要講完的話一晚上也說不完。

總體來說,Java 後端技術,說難不難說簡單也不簡單,我儘量把這些內容都講的比較通俗易懂,事實上每項技術的背後都有特別多複雜的實現原理,當然,在你理解了 Java 後端技術的整體概念以後,相信對於你之後的學習會更有幫助。

如果有哪裡說錯了,偷偷留言告訴我

用大白話告訴你:Java 後端到底是在做什麼?

文章作者【黃小斜】大廠程序員,互聯網職場新知,終身學習踐行者,懂技術,懂面試,懂職場,更想懂你。據說,每個上進又好看的互聯網人都關注我了。

點擊擴展鏈接,加入黃小斜粉絲專屬的知識社群吧!

"

相關推薦

推薦中...