豆瓣 9.5,這本新書(shū)直接封神!
大家好,我是公子龍,相信絕大多數(shù)同學(xué)都曾經(jīng)或正在思考:
到底學(xué) C++ 還是 Java?
我建議是都學(xué)下,因?yàn)?Java 是源于 C++ 的一門更加純正的面向?qū)ο笳Z(yǔ)言,很多語(yǔ)法其實(shí)和 C++ 也挺像的。
最主要差別是引入了 虛擬機(jī) 和 垃圾回收機(jī)制 ,由引用代替指針(C++ 也有引用了),去除多繼承、操作符重載等特性,讓 Java 語(yǔ)言更容易編寫可靠的程序。
雖說(shuō) Java 更容易學(xué)習(xí),但是要深入掌握還是離不開(kāi)系統(tǒng)的學(xué)習(xí)。
我們學(xué)校大一下開(kāi)的《面向?qū)ο缶幊獭氛n程用的就是 Java 語(yǔ)言,配套的教材也是 Bruce Eckel 那本非常經(jīng)典的《Java編程思想》(原版書(shū)Thinking in Java)。
不過(guò)說(shuō)實(shí)話,當(dāng)時(shí)大一嘗試去看了《Java編程思想》,不僅太厚,而且對(duì)于初學(xué)者來(lái)說(shuō)不易抓住重點(diǎn),也就不了了之。
后來(lái)還是在 B 站看完了尚學(xué)堂高琪老師的 Java 300集。看完視頻,基本掌握了Java 核心知識(shí)點(diǎn)并且做了幾個(gè)小項(xiàng)目之后, 再去看《Java編程思想》就明顯能把握得住了。
后來(lái)才愈發(fā)覺(jué)得這本書(shū)的香,開(kāi)發(fā)中遇到的問(wèn)題,在書(shū)里基本都能找到答案。
對(duì)于整個(gè) Java 后臺(tái)的學(xué)習(xí),我建議的學(xué)習(xí)路線是:
Java語(yǔ)言基礎(chǔ)-> Java語(yǔ)言進(jìn)階-> JVM、并發(fā)、網(wǎng)絡(luò)編程 (同時(shí) Java Web)-> 深入理解計(jì)算機(jī) -> 分布式 、 微服務(wù)、 存儲(chǔ)等
所以,對(duì)于有 C++ 基礎(chǔ)的同學(xué)來(lái)說(shuō),要想扎實(shí) Java 基礎(chǔ)同時(shí)實(shí)現(xiàn)進(jìn)階,我一直推薦的是《Java編程思想》,不過(guò)這本書(shū)在現(xiàn)在看來(lái),內(nèi)容確實(shí)有些過(guò)時(shí)了,基于 Java5 不說(shuō),書(shū)中還充斥著如圖形界面 Swing 之類的老古董。
年底Spring Boot 3發(fā)布之后,也將Java基線定在了17,如果想系統(tǒng)的了解 Java8 之后的內(nèi)容,建議大家最好選擇 Bruce Eckel 大佬的新作《On Java》,重講Java編程思想,基于 Java8 的特性進(jìn)行教學(xué),同時(shí)也有 Java11、17 等版本的新特性,在豆瓣評(píng)分更是到了 9.5 的高分。

最關(guān)鍵的是,這套書(shū)分為基礎(chǔ)和進(jìn)階兩卷,比較適合各個(gè)層次的 Javaer 閱讀,如果你是初學(xué)者那么可以先看基礎(chǔ)卷,如果已經(jīng)有多年開(kāi)發(fā)經(jīng)驗(yàn)則可以重點(diǎn)看進(jìn)階卷。

給大家看下目錄:


內(nèi)容包含對(duì)象、操作符、控制流、初始化和清理、復(fù)用、多態(tài)、接口、內(nèi)部類、集合、函數(shù)式編程、流、異常、代碼校驗(yàn)、文件、字符串、泛型等 Java 核心主干知識(shí)。
另外,這套書(shū)還請(qǐng) 4 位比較知名作譯者錄制了針對(duì)初學(xué)者的精讀視頻(40講) + 配合書(shū)是 Java 入門首選組合。
這本書(shū)我拿到之后也看了幾章(跳著看的),我覺(jué)得翻譯得挺好的,讀起來(lái)沒(méi)有太多拗口的感覺(jué)。
由于 Bruce 本身 C++ 標(biāo)準(zhǔn)委員會(huì)關(guān)鍵成員,也寫過(guò) 《Thinking in C++》,所以這本書(shū)里不少的地方,作者會(huì)提到 C++,將其與 Java 做對(duì)比,這對(duì)于有 C++ 基礎(chǔ)的同學(xué)會(huì)比較親切:

另外,這本書(shū)還從語(yǔ)言設(shè)計(jì)演進(jìn)角度講解“設(shè)計(jì)模式”選用方法,不僅在每章的示例里滲透了設(shè)計(jì)模式的概念,還單獨(dú)增設(shè)了“設(shè)計(jì)模式”一章:

作者在書(shū)中也指出了 Java 語(yǔ)言中存在的一些“設(shè)計(jì)缺陷”,這些都是 Javaer 應(yīng)該了解的語(yǔ)言設(shè)計(jì)缺陷,可以說(shuō)是編碼必學(xué)~
最后,這兩本書(shū)都挺厚的,基礎(chǔ)卷 800多頁(yè),進(jìn)階卷 500 多頁(yè),內(nèi)容很豐富,排版也很不錯(cuò)。對(duì)于看這種厚書(shū),還是堅(jiān)持一貫的原則,先看目錄,可以跳著看自己還不熟悉/感興趣的內(nèi)容。
如果是準(zhǔn)備校招的話,建議抽 1-2 周時(shí)間將進(jìn)階卷過(guò)一下,包含了并發(fā)、IO、設(shè)計(jì)模式、注解等 Java 核心內(nèi)容,看完 Java 語(yǔ)言基礎(chǔ)這塊面試問(wèn)題不大。
你好,我是公子龍,畢業(yè)于中科院,前大型計(jì)算機(jī)競(jìng)賽冠軍,現(xiàn)大廠工程師,拿過(guò)九家大廠的 offer 。
北漂七年,從小白到計(jì)算機(jī)競(jìng)賽冠軍,讀研時(shí)通過(guò)實(shí)習(xí)和比賽收入 50 萬(wàn),點(diǎn)擊藍(lán)字查看我的編程之路。

