1. 程式人生 > >重學Java(一):與《Java程式設計思想》的不解之緣

重學Java(一):與《Java程式設計思想》的不解之緣

 

說起來非常慚愧,我在 2008 年的時候就接觸了 Java,但一直到現在(2018 年 10 月 10 日),基礎知識依然非常薄弱。用一句話自嘲就是:十年 IT 老兵,Java 菜雞一枚。

於是,我想,不如靜下心來,重新讀一遍那些經典的 Java 技術書,並且沒讀完一章就輸出一篇原創技術文章。從哪一本開始呢?想了一想,還是從《Java 程式設計思想》開始吧!畢竟這本書贏得了全球程式設計師的廣泛讚譽,從 Java 的基礎語法到最高階特性,都能指導我們 Java 程式設計師輕鬆掌握。

記得剛上大學那會,就買了一本影印版的《Java 程式設計思想》,但由於初學 Java,對程式設計極度缺乏信心,導致看這本書有一種看天書的感覺。後來,去蘇州參加工作的時候把它作為最寶貴的紀念品帶了過去。

2014 年回洛陽的時候它送給了一位關係不錯的同事,權當是分別的禮物吧。2016 年的時候,我又重新買了一本,希望自己能夠夯實一下基礎。但事與願違,它被我束之高閣了——又兩年過去了,我重新捧起它,總覺得有一種負罪感。

讀一本書,最好能從它的前言開始。那麼我們就來看看 Bruce Eckel 在前言裡都說了些什麼吧。

01、Java 的核心目的是“為程式設計師減少複雜性”。

James Gosling 建立 Java 語言的初衷是:“減少開發健壯程式碼所需的時間和困難”。儘管這個目標導致 Java 的執行效率偏慢,但與用 C++ 開發相同的程式相比,Java 只需要一半甚至更少的時間。

作為程式設計師,這是我們希望看到的。少敲程式碼省下來的那一部分時間,可以約個妹子去看場電影,放鬆一下,對吧?況且,Java 一直在更新,效能也不斷地被優化。

記得上大學那會,我們專業只有兩個班,一個班學 Java,一個班級學 C++。結果大學畢業後,C++ 的同學幾乎都轉了行,有些同學反饋說因為 C++ 的指標太飄忽不定了,難學難懂難掌握(C++ 表示不服,怎麼能這樣莫名其妙地潑髒水呢)。

02、併發程式設計確實很難。

Bruce Eckel 吐露心聲說自己也曾深陷“併發”泥潭,但經過“數月的努力,還是走了出來”。所以,各位,千萬不要喪失駕馭併發程式設計的信心啊,儘管併發程式設計是真的難。

併發是什麼呢?通常情況下,併發是指“系統能夠同時並行處理很多請求”。我們來看一下併發常用的一些指標。

1)響應時間(Response Time):系統從接收請求到做出迴應所花費的時間。

2)吞吐量(Throughput):單位時間內處理的請求數量。最明顯的例子就是高速通道上的 ETC 和普通車道,顯然 ETC 的吞吐量更大,因為不需要在進站的時候從視窗取卡,在出站的時候還卡繳費。

3)併發使用者數:同時承載正常使用系統功能的使用者數量。

如何提升系統的併發能力呢?

1)提升單機硬體配置。比如說增加 CPU 核數(從 2 個到 4 個,從 4 個到 8 個),升級網絡卡到萬兆,升級硬碟為 SSD(固態硬碟,比普通硬碟讀寫更快、質量更輕、能耗更低、體積更小),擴充系統記憶體(從 64G 到 128G)。

2)改善單機架構配置。比如使用記憶體讀寫而不是每次都讀寫資料庫。

3)增加伺服器數量。單機效能總是有極限的,但伺服器叢集數量可以很龐大。

好了,本篇文章到此就要結束了。我從《Java 程式設計思想》的前言裡讀到了以上這些內容,你呢?

PS:這篇文章寫於 2018 年 10 月 10 日,現在讀起來感覺當時寫得太爛了,但很適合作為《重學Java》系列文章的第一篇(畢竟開局嘛)。

&n