關於java後端的詳解

在本篇文章裏小編給各位分享的是關於java後端的知識點詳解,學習java的朋友們可以參考下。

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

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

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

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

6aa199d30e0c41bc8c5e94c2f5468329.jpg

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

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

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

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

ad13ad6da34441d1aeb548a8ec2d01f4.jpg

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

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

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

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

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

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

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

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

118f03178965480aa9177a6f5ad06949.jpg

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

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

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

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

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

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

f74d7b52a750417b845e3d5713382991.jpg

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

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

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

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

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

以上就是java後端介紹的詳細內容,感謝大家對神馬文庫的支持。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章