?
說(shuō)起來(lái)非常慚愧,我在 2008 年的時(shí)候就接觸了 Java,但一直到現(xiàn)在(2018 年 10 月 10 日),基礎(chǔ)知識(shí)依然非常薄弱。用一句話自嘲就是:十年
IT 老兵,Java 菜雞一枚。
于是,我想,不如靜下心來(lái),重新讀一遍那些經(jīng)典的 Java 技術(shù)書(shū),并且沒(méi)讀完一章就輸出一篇原創(chuàng)技術(shù)文章。從哪一本開(kāi)始呢?想了一想,還是從《Java
編程思想》開(kāi)始吧!畢竟這本書(shū)贏得了全球程序員的廣泛贊譽(yù),從 Java 的基礎(chǔ)語(yǔ)法到最高級(jí)特性,都能指導(dǎo)我們 Java 程序員輕松掌握。
記得剛上大學(xué)那會(huì),就買了一本影印版的《Java 編程思想》,但由于初學(xué)
Java,對(duì)編程極度缺乏信心,導(dǎo)致看這本書(shū)有一種看天書(shū)的感覺(jué)。后來(lái),去蘇州參加工作的時(shí)候把它作為最寶貴的紀(jì)念品帶了過(guò)去。
2014 年回洛陽(yáng)的時(shí)候它送給了一位關(guān)系不錯(cuò)的同事,權(quán)當(dāng)是分別的禮物吧。2016
年的時(shí)候,我又重新買了一本,希望自己能夠夯實(shí)一下基礎(chǔ)。但事與愿違,它被我束之高閣了——又兩年過(guò)去了,我重新捧起它,總覺(jué)得有一種負(fù)罪感。
讀一本書(shū),最好能從它的前言開(kāi)始。那么我們就來(lái)看看 Bruce Eckel 在前言里都說(shuō)了些什么吧。
01、Java 的核心目的是“為程序員減少?gòu)?fù)雜性”。
James Gosling 創(chuàng)建 Java 語(yǔ)言的初衷是:“減少開(kāi)發(fā)健壯代碼所需的時(shí)間和困難”。盡管這個(gè)目標(biāo)導(dǎo)致 Java 的運(yùn)行效率偏慢,但與用 C++
開(kāi)發(fā)相同的程序相比,Java 只需要一半甚至更少的時(shí)間。
作為程序員,這是我們希望看到的。少敲代碼省下來(lái)的那一部分時(shí)間,可以約個(gè)妹子去看場(chǎng)電影,放松一下,對(duì)吧?況且,Java 一直在更新,性能也不斷地被優(yōu)化。
記得上大學(xué)那會(huì),我們專業(yè)只有兩個(gè)班,一個(gè)班學(xué) Java,一個(gè)班級(jí)學(xué) C++。結(jié)果大學(xué)畢業(yè)后,C++ 的同學(xué)幾乎都轉(zhuǎn)了行,有些同學(xué)反饋說(shuō)因?yàn)?C++
的指針太飄忽不定了,難學(xué)難懂難掌握(C++ 表示不服,怎么能這樣莫名其妙地潑臟水呢)。
02、并發(fā)編程確實(shí)很難。
Bruce Eckel
吐露心聲說(shuō)自己也曾深陷“并發(fā)”泥潭,但經(jīng)過(guò)“數(shù)月的努力,還是走了出來(lái)”。所以,各位,千萬(wàn)不要喪失駕馭并發(fā)編程的信心啊,盡管并發(fā)編程是真的難。
并發(fā)是什么呢?通常情況下,并發(fā)是指“系統(tǒng)能夠同時(shí)并行處理很多請(qǐng)求”。我們來(lái)看一下并發(fā)常用的一些指標(biāo)。
1)響應(yīng)時(shí)間(Response Time):系統(tǒng)從接收請(qǐng)求到做出回應(yīng)所花費(fèi)的時(shí)間。
2)吞吐量(Throughput):?jiǎn)挝粫r(shí)間內(nèi)處理的請(qǐng)求數(shù)量。最明顯的例子就是高速通道上的 ETC 和普通車道,顯然 ETC
的吞吐量更大,因?yàn)椴恍枰谶M(jìn)站的時(shí)候從窗口取卡,在出站的時(shí)候還卡繳費(fèi)。
3)并發(fā)用戶數(shù):同時(shí)承載正常使用系統(tǒng)功能的用戶數(shù)量。
如何提升系統(tǒng)的并發(fā)能力呢?
1)提升單機(jī)硬件配置。比如說(shuō)增加 CPU 核數(shù)(從 2 個(gè)到 4 個(gè),從 4 個(gè)到 8 個(gè)),升級(jí)網(wǎng)卡到萬(wàn)兆,升級(jí)硬盤為
SSD(固態(tài)硬盤,比普通硬盤讀寫更快、質(zhì)量更輕、能耗更低、體積更?。瑪U(kuò)充系統(tǒng)內(nèi)存(從 64G 到 128G)。
2)改善單機(jī)架構(gòu)配置。比如使用內(nèi)存讀寫而不是每次都讀寫數(shù)據(jù)庫(kù)。
3)增加服務(wù)器數(shù)量。單機(jī)性能總是有極限的,但服務(wù)器集群數(shù)量可以很龐大。
好了,本篇文章到此就要結(jié)束了。我從《Java 編程思想》的前言里讀到了以上這些內(nèi)容,你呢?
PS:這篇文章寫于 2018 年 10 月 10 日,現(xiàn)在讀起來(lái)感覺(jué)當(dāng)時(shí)寫得太爛了,但很適合作為《重學(xué)Java》系列文章的第一篇(畢竟開(kāi)局嘛)。
?
熱門工具 換一換
