Java后端到底是干什么的?什么是語言工程師年碘?你是工程師嗎澈歉?

新手程序員通常會走入一個誤區(qū)

就是認為學(xué)習(xí)了一門語言,就可以稱為是某某語言工程師了屿衅。但事實上真的是這樣嗎埃难?其實并非如此。

今天我們就來聊一聊涤久,Java 開發(fā)工程師到底開發(fā)的是什么東西涡尘。準(zhǔn)確點來說,Java后端到底在做什么响迂?

通俗來講

大家都知道 Java 是一門后端語言考抄,后端指的就是服務(wù)端,服務(wù)端代碼一般運行在服務(wù)器上蔗彤,通常我們運行Java 程序的服務(wù)器都是 Linux 服務(wù)器川梅。

這些服務(wù)器在互聯(lián)網(wǎng)公司中一般放在一個叫做機房的地方里,于是像我們這類 Java 程序員的代碼一般也運行在這些機房里的服務(wù)器中然遏。

Java 里有一個概念叫做虛擬機贫途,你可以把它理解為一個安卓的模擬器,比如你在電腦上裝了一個安卓模擬器待侵,就可以通過它來運行安卓應(yīng)用程序丢早,比如裝個 APP,手機游戲什么的秧倾。

所以當(dāng)你在電腦上安裝了一個叫做 JDK 的東西時怨酝,電腦里就有了 JRE 也就是 Java 運行環(huán)境,有了這個運行環(huán)境那先,你就可以運行 Java 應(yīng)用程序了农猬。


image.png

Java基礎(chǔ)知識

知道 Java 程序如何運行在計算機上之后,我們再來講一講平時學(xué)的一些 Java 基礎(chǔ)知識胃榕,它們到底有什么用盛险?

其實平時這一些 Java 基礎(chǔ)語法都僅僅是你寫代碼的一些基礎(chǔ)知識,就相當(dāng)于英語中的 26 個字母勋又,常見的有基本類型變量苦掘、for 循環(huán)、if else 等等基本語法楔壤,掌握了這些基礎(chǔ)知識之后鹤啡,你就可以上手寫一些很簡單的代碼了。

除此之外蹲嚣,Java 還有一些比較特別的概念递瑰,比如面向?qū)ο蟮奶匦运钌渲杏蓄悺⒔涌诘雀拍疃恫俊槭裁?Java 要引入這些東西呢说贝,其實就是想讓使用者更好地進行設(shè)計、抽象和編程慎颗。

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


image.png

集合類

說完基本知識之后傲宜,我想你也會好奇,Java里經(jīng)常提到的一些集合類是干嘛的呢夫啊,因為在現(xiàn)實生活中有很多場景函卒,需要用到集合類,比如說一個用戶名列表撇眯,你要怎么存呢报嵌?

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

事實上沪蓬,集合類的概念最早是來源于數(shù)據(jù)結(jié)構(gòu)的,因為計算機里有很多特殊的數(shù)據(jù)存儲結(jié)構(gòu)来候,比如文件樹,比如鏈表和數(shù)組等結(jié)構(gòu)逸雹,因此計算機理論把這些存儲數(shù)據(jù)的模型抽象成一些常見的結(jié)構(gòu)营搅,統(tǒng)稱為數(shù)據(jù)結(jié)構(gòu)。


image.png

并發(fā)編程

那么梆砸,Java 中的并發(fā)編程又是做什么的呢转质,Java 中的多線程是為了更好地利用電腦中的CPU核心,通過并發(fā)編程帖世,就可以提高程序并發(fā)的效率休蟹。

但是并發(fā)編程的背后需要操作系統(tǒng)的支持,以及計算機硬件的支持日矫,所以赂弓,如果你要完全地理解多線程,絕不僅僅是理解 Java 里的 Thread 或者是線程池就足夠了哪轿,你還需要去理解操作系統(tǒng)盈魁,以及計算機組成原理。

和并發(fā)編程類似窃诉,Java 里也有網(wǎng)絡(luò)編程的概念杨耙,Java 里的網(wǎng)絡(luò)編程和其他語言大同小異赤套,其實也是基于 TCP/IP 協(xié)議實現(xiàn)的一套 API,通過網(wǎng)絡(luò)編程珊膜,你就可以在程序中把你想傳輸?shù)臄?shù)據(jù)傳輸?shù)骄W(wǎng)絡(luò)的另一端容握,有了網(wǎng)絡(luò)編程和并發(fā)編程之后,Java 程序員的能量已經(jīng)很大了车柠。


image.png

后端技術(shù)

講完這幾點之后接下來再談?wù)勎ň冢覀兺ǔUf的 Java 后端技術(shù)到底是什么,就拿支付寶來舉例吧堪遂,曾經(jīng)的支付寶用戶數(shù)并不多介蛉,一臺服務(wù)器,一個數(shù)據(jù)庫就可以支持所有的業(yè)務(wù)了溶褪。

當(dāng)支付寶的用戶越來越多的時候币旧,一臺服務(wù)器無法同時滿足海量用戶的需求,于是開始出現(xiàn)了多臺服務(wù)器猿妈,多臺服務(wù)器組成了一個集群吹菱,用戶可以通過負載均衡的方式訪問這些服務(wù)器,每個用戶可能會訪問到不同的機器上彭则,這樣子就達到了分流的效果鳍刷,服務(wù)器的壓力就會減小。

由于數(shù)據(jù)庫需要保證數(shù)據(jù)的可靠性俯抖,萬一某一臺數(shù)據(jù)庫掛了输瓜,并且沒有備份的話,那么這個數(shù)據(jù)就無法訪問了芬萍,這在大型系統(tǒng)中是不允許出現(xiàn)的尤揣,于是乎,就有了數(shù)據(jù)庫的主從部署柬祠。

但事實上北戏,隨著業(yè)務(wù)發(fā)展,數(shù)據(jù)庫的壓力也越來越大漫蛔,主備部署并不能解決數(shù)據(jù)庫訪問性能的問題嗜愈,于是乎我們需要進行分庫分表,在數(shù)據(jù)庫主備的基礎(chǔ)上莽龟,我們會把一個數(shù)據(jù)量很大的表拆成多個表蠕嫁,并且把數(shù)據(jù)庫請求分流到不同的數(shù)據(jù)上,比如說100個分庫轧房,100個分表拌阴,就相當(dāng)于把一個數(shù)據(jù)表劃分成10000個數(shù)據(jù)表。


image.png

分布式技術(shù)

此時又出現(xiàn)一個問題奶镶,如果一個數(shù)據(jù)庫有多個備庫迟赃,并且當(dāng)主庫掛掉的時候需要進行主從切換時陪拘,主備數(shù)據(jù)庫之間的數(shù)據(jù)就可能發(fā)生不一致,而這也是分布式理論研究的問題之一纤壁,因為比較復(fù)雜左刽,我們這里就略過不講。

剛才說到了分布式技術(shù)酌媒,其實負載均衡欠痴、分庫分表都是分布式技術(shù)的一種實現(xiàn),如果你不想做分庫分表秒咨,那還有什么辦法能夠減輕數(shù)據(jù)庫訪問的壓力呢喇辽?于是緩存就出現(xiàn)了,緩存可以讓服務(wù)器先把請求打到緩存上雨席,由于緩存的數(shù)據(jù)一般在內(nèi)存中菩咨,所以訪問速度會非常快陡厘,這些請求無需經(jīng)過數(shù)據(jù)庫抽米。

隨著業(yè)務(wù)發(fā)展,緩存的單點壓力也會比較大糙置,于是乎分布式緩存就出現(xiàn)了云茸,通常來說,緩存難以保證數(shù)據(jù)的可靠性谤饭,因為它們的數(shù)據(jù)可能會丟失标捺,同時緩存只能存儲一部分的數(shù)據(jù),并不能解決所有問題网持。

所以當(dāng)某些業(yè)務(wù)的請求量非常大的時候宜岛,光靠緩存也解決不了問題,此時我們還可以通過消息隊列來幫我們解決大流量并發(fā)請求的問題功舀。


image.png

總結(jié)
我們可以通過消息隊列來存儲一部分的請求消息,然后根據(jù)我們服務(wù)器處理請求的能力身弊,把消息再逐步取出來辟汰,接著去把這些消息逐漸地進行處理,這樣就可以很好的解決高并發(fā)的問題阱佛。當(dāng)然帖汞,前提是消息隊列要保證消息存儲的可靠性,這也是大部分消息隊列都會保證的能力凑术。

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

總體來說扶踊,Java 后端技術(shù),說難不難說簡單也不簡單郎任,我盡量把這些內(nèi)容都講的比較通俗易懂秧耗,事實上每項技術(shù)的背后都有特別多復(fù)雜的實現(xiàn)原理,當(dāng)然舶治,在你理解了 Java 后端技術(shù)的整體概念以后分井,相信對于你之后的學(xué)習(xí)會更有幫助。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末霉猛,一起剝皮案震驚了整個濱河市尺锚,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌惜浅,老刑警劉巖瘫辩,帶你破解...
    沈念sama閱讀 217,907評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異赡矢,居然都是意外死亡杭朱,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評論 3 395
  • 文/潘曉璐 我一進店門吹散,熙熙樓的掌柜王于貴愁眉苦臉地迎上來弧械,“玉大人,你說我怎么就攤上這事空民∪刑疲” “怎么了?”我有些...
    開封第一講書人閱讀 164,298評論 0 354
  • 文/不壞的土叔 我叫張陵界轩,是天一觀的道長画饥。 經(jīng)常有香客問我,道長浊猾,這世上最難降的妖魔是什么抖甘? 我笑而不...
    開封第一講書人閱讀 58,586評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮葫慎,結(jié)果婚禮上衔彻,老公的妹妹穿的比我還像新娘。我一直安慰自己偷办,他們只是感情好艰额,可當(dāng)我...
    茶點故事閱讀 67,633評論 6 392
  • 文/花漫 我一把揭開白布枉侧。 她就那樣靜靜地躺著波闹,像睡著了一般截酷。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上掸宛,一...
    開封第一講書人閱讀 51,488評論 1 302
  • 那天贴见,我揣著相機與錄音佑力,去河邊找鬼筋量。 笑死,一個胖子當(dāng)著我的面吹牛棕硫,可吹牛的內(nèi)容都是我干的髓涯。 我是一名探鬼主播,決...
    沈念sama閱讀 40,275評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼哈扮,長吁一口氣:“原來是場噩夢啊……” “哼纬纪!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起滑肉,我...
    開封第一講書人閱讀 39,176評論 0 276
  • 序言:老撾萬榮一對情侶失蹤包各,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后靶庙,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體问畅,經(jīng)...
    沈念sama閱讀 45,619評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,819評論 3 336
  • 正文 我和宋清朗相戀三年六荒,在試婚紗的時候發(fā)現(xiàn)自己被綠了护姆。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,932評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡掏击,死狀恐怖卵皂,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情砚亭,我是刑警寧澤灯变,帶...
    沈念sama閱讀 35,655評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站捅膘,受9級特大地震影響添祸,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜寻仗,卻給世界環(huán)境...
    茶點故事閱讀 41,265評論 3 329
  • 文/蒙蒙 一刃泌、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧署尤,春花似錦蔬咬、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽盖奈。三九已至混坞,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背究孕。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評論 1 269
  • 我被黑心中介騙來泰國打工啥酱, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人厨诸。 一個月前我還...
    沈念sama閱讀 48,095評論 3 370
  • 正文 我出身青樓镶殷,卻偏偏與公主長得像,于是被迫代替她去往敵國和親微酬。 傳聞我的和親對象是個殘疾皇子绘趋,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,884評論 2 354

推薦閱讀更多精彩內(nèi)容