拜托,學(xué)妹坏快,別再問我怎么自學(xué) Java 了铅檩!和盤托出

假如有那么殘酷的一天,我不小心喝錯(cuò)了一瓶藥莽鸿,一下子抹掉了我這十多年的編程經(jīng)驗(yàn)昧旨,把我變成了一只小白拾给。我想自學(xué) Java,并且想要找到一份工作兔沃,我預(yù)計(jì)需要 6 個(gè)月的時(shí)間蒋得,前提條件是每天都處于高效率的學(xué)習(xí)狀態(tài)當(dāng)中,并且每天的學(xué)習(xí)時(shí)間至少在 12 個(gè)小時(shí)以上乒疏。

即便是這樣额衙,我敢肯定,找到的工作肯定不會太好怕吴,勉強(qiáng)能夠維持生活吧窍侧,畢竟是零基礎(chǔ)入門啊。

如果想更進(jìn)一步转绷,真正成為一名不可或缺的高級 Java 工程師伟件,時(shí)間需要更久,兩年议经、三年锋爪、五年,直到禿的那天爸业。

想著想著其骄,我就覺得有必要為那一天做點(diǎn)準(zhǔn)備,以備不時(shí)之需扯旷。

01拯爽、第一個(gè)階段,環(huán)境和工具準(zhǔn)備

  • 準(zhǔn)備一臺電腦钧忽,要能聯(lián)網(wǎng)
  • 下載毯炮、安裝 JDK,配置 Java 開發(fā)環(huán)境
  • 下載耸黑、配置 Maven
  • 下載桃煎、安裝 IntelliJ IDEA
  • 準(zhǔn)備一個(gè) GitHub 倉庫(或者碼云),管理 Java 源代碼

Java 是一門計(jì)算機(jī)編程語言大刊,學(xué)它的話为迈,連臺電腦都沒有,學(xué)個(gè)屁缺菌。我有個(gè)親戚家的孩子想學(xué)編程葫辐,就只看書,家里連臺電腦都不配伴郁,說什么“先打好理論基礎(chǔ)耿战,再實(shí)操”,我真的是有點(diǎn)醉焊傅。

有了電腦剂陡,還得聯(lián)網(wǎng)狈涮,自學(xué)的過程中肯定會遇到很多問題,遇到問題的時(shí)候先問搜索引擎鸭栖,推薦谷歌和必應(yīng)薯嗤;實(shí)在沒有答案的話,也可以來找我纤泵,申請加入技術(shù)交流群骆姐,問問群里面的大佬們。

既然要學(xué) Java捏题,JDK 是必須要先安裝的玻褪,否則 Java 程序就沒法編譯和執(zhí)行。

Maven 也是需要提前安裝和配置的公荧,因?yàn)楹竺孢M(jìn)階的話带射,需要一些練手項(xiàng)目,它們通常都需要 Maven 來加載第三方類庫循狰。

使用集成開發(fā)環(huán)境 IntelliJ IDEA 來敲 Java 代碼吧窟社,比 Eclipse 更流行。千萬不要使用記事本編寫源代碼了绪钥,對于小白來說灿里,時(shí)間是寶貴的,記事本只適合大牛們用來裝逼程腹,不適合小白用來編程(入門)匣吊,純浪費(fèi)時(shí)間。

有了 IDEA寸潦,后面學(xué)習(xí)源碼的話色鸳,就會方便很多,包括反編譯字節(jié)碼见转。

如果英語功底不太好的話命雀,建議安裝這兩款 IDEA 插件:chinese 和 translation

如果注重編碼規(guī)范的話斩箫,建議安裝這兩款 IDEA 插件:Alibaba 和 SonarLint吏砂。

為什么還需要 GitHub 倉庫或者碼云倉庫呢?它們可以用來在線云同步源代碼校焦,防止版本丟失赊抖。學(xué)到最后,還可以形成一套自己的工具庫寨典,輪子就有了,上班的時(shí)候工作效率就會高很多房匆,能直接用的代碼再也不用重新寫了耸成。

02报亩、第二個(gè)階段,Java 基礎(chǔ)入門

1)基本數(shù)據(jù)類型

2)操作符

  • 算術(shù)運(yùn)算符
  • 邏輯運(yùn)算符
  • 比較運(yùn)算符

3)流程控制語句

  • 條件分支(if/else/else if牵辣、三元運(yùn)算符、switch
  • 循環(huán)或者遍歷(for奴饮、while纬向、do-while)
  • break 和 continue

4)包

  • 創(chuàng)建包
  • 導(dǎo)入包
  • 包全名

5)main 方法詳解

  • public 關(guān)鍵字
  • static 關(guān)鍵字
  • void 關(guān)鍵字
  • main 方法
  • 字符串?dāng)?shù)組參數(shù)(String[] args

6)數(shù)組

7)注釋

8)字符串

03、第三個(gè)階段薇缅,Java 核心技術(shù)

1)面向?qū)ο?/p>

2)常用工具類

  • 字符串相關(guān)的工具類
  • 日期時(shí)間相關(guān)的工具類
  • 枚舉
  • 隨機(jī)數(shù)
  • 正則表達(dá)式
  • Apache-commons 工具庫
  • Guava 工具庫

3)集合框架

4)反射機(jī)制

  • 什么是反射壳鹤?
  • 反射有什么用?
  • Class 類

5)異常處理

  • 為什么需要異常處理機(jī)制饰迹?
  • Error 和 Exception
  • try-catch-finally
  • try-with-resource
  • 自定義異常
  • 盡量捕獲原始異常
  • 不要打印堆棧后再拋出異常
  • 不要用異常處理機(jī)制代替判斷
  • 不要過早捕獲異常

6)注解

  • 注解是什么芳誓?
  • 注解的生命周期
  • 注解裝飾的目標(biāo)
  • 自定義注解
  • 使用注解

7)IO 流

  • 字符流余舶、字節(jié)流
  • 輸入流、輸出流
  • 同步锹淌、異步
  • 阻塞匿值、非阻塞
  • BIO、NIO 和 AIO
  • NIO 2.0

8)序列化

  • 什么是序列化和反序列化
  • Java 如何實(shí)現(xiàn)序列化和反序列化
  • Serializbale 和 Externalizable
  • serialVersionUID

9)泛型

10)單元測試

  • Junit
  • TestNG

11)編碼方式

  • ASCII
  • Unicode
  • UTF-8
  • GBK挟憔、GB2312
  • 如何解決亂碼問題

12)并發(fā)編程

  • 什么是并發(fā)
  • 什么是并行
  • 什么是線程
  • 什么是進(jìn)程
  • 線程的狀態(tài)
  • 線程的優(yōu)先級
  • 創(chuàng)建線程
  • 創(chuàng)建線程池
  • 什么是線程安全
  • 多級緩存和一致性問題
  • CPU 時(shí)間片和原子性問題
  • 指令重排和有序性問題
  • 線程安全和內(nèi)存模型
  • happens-before
  • 可重入鎖
  • 阻塞鎖
  • 樂觀鎖
  • 悲觀鎖
  • 分布式鎖
  • CAS
  • ABA
  • 偏向鎖
  • 輕量級鎖
  • 重量級鎖
  • 自旋鎖
  • 什么是死鎖
  • 如果避免死鎖
  • synchronized
  • volatile
  • ThreadLocal
  • Executors
  • CountDownLatch
  • Thread
  • Runnable
  • Callable
  • ReentrantLock
  • ReentrantReadWriteLock
  • Atomic 相關(guān)類

13)Java 8 新特性

14)源碼閱讀

  • String
  • Integer
  • ArrayList
  • LinkedList
  • CopyOnWriteArrayList
  • HashMap
  • TreeMap
  • LinkedHashMap
  • ConcurrentHashMap
  • CopyOnWriteArrayList

04、第四個(gè)階段烟号,Java 進(jìn)階升級

1)JVM

  • Java 內(nèi)存結(jié)構(gòu)
  • 垃圾回收
  • JVM 參數(shù)調(diào)優(yōu)
  • Java 對象模型
  • HotSpot
  • 類加載機(jī)制
  • 編譯和反編譯
  • 反編譯工具
  • JIT
  • 虛擬機(jī)性能監(jiān)控和故障處理工具(jps绊谭、jstack、jmap褥符、jstat龙誊、jconsole、javap)

2)性能優(yōu)化

  • 使用單例
  • 使用線程池
  • 減少上下文切換
  • 減小鎖粒度
  • 數(shù)據(jù)壓縮
  • Stream 并行流
  • GC 調(diào)優(yōu)
  • JVM 內(nèi)存分配調(diào)優(yōu)
  • btrace

3)設(shè)計(jì)模式

  • 設(shè)計(jì)模式的六大原則
  • 創(chuàng)建型設(shè)計(jì)模式(單例喷楣、抽象工廠趟大、建造者、工廠铣焊、原型)
  • 結(jié)構(gòu)型設(shè)計(jì)模式(適配器逊朽、橋接、裝飾曲伊、組合叽讳、外觀、享元坟募、代理)
  • 行為型設(shè)計(jì)模式(模板方法岛蚤、命令、迭代器懈糯、觀察者涤妒、中介者、備忘錄赚哗、解釋器她紫、狀態(tài)、策略屿储、責(zé)任鏈贿讹、訪問者)
  • 單例的七種寫法

4)數(shù)據(jù)結(jié)構(gòu)和算法

  • 簡單的數(shù)據(jù)結(jié)構(gòu)(棧、隊(duì)列够掠、鏈表民褂、數(shù)組、哈希表)
  • 樹(二叉樹、字典樹助赞、平衡樹买羞、排序樹袁勺、B 樹雹食、B+ 樹、R 樹期丰、紅黑樹群叶、多路樹)
  • 圖(拓?fù)洹⒂邢驁D钝荡、無向圖)
  • 穩(wěn)定的排序算法(冒泡排序街立、插入排序、雞尾酒排序埠通、桶排序赎离、計(jì)數(shù)排序、歸并排序端辱、原地歸并排序梁剔、二叉排序樹排序、鴿巢排序舞蔽、基數(shù)排序荣病、侏儒排序、圖書館排序渗柿、塊排序)
  • 不穩(wěn)定的排序算法(選擇排序个盆、希爾排序、梳排序朵栖、堆排序颊亮、平滑排序、快速排序陨溅、內(nèi)省排序终惑、耐心排序、Clover 排序)
  • 時(shí)間復(fù)雜度
  • 空間復(fù)雜度
  • 貪心算法
  • KMP 算法

5)操作系統(tǒng)

  • Linux 常用命令(find声登、top狠鸳、tar、move悯嗓、grep件舵、tail、netstat脯厨、curl铅祸、wget、ping、ssh)
  • 服務(wù)器性能指標(biāo)(qps临梗、CPU 利用率)
  • 進(jìn)程同步
  • 分段和分頁
  • 虛擬內(nèi)存和主存

6)網(wǎng)絡(luò)安全

  • CSRF
  • XSS
  • SQL 注入
  • 加密和解密(對稱加密涡扼、非對稱加密)
  • MD5、SHA1盟庞、DES吃沪、RSA
  • DDOS 攻擊
  • HTTP 和 HTTPS
  • SSL
  • TLS
  • TCP 和 UDP
  • Cookie、Session
  • CDN
  • DNS

7)數(shù)據(jù)庫

  • MySql
  • 索引
  • 存儲過程
  • 分庫分表
  • binlog
  • 讀寫分離
  • 數(shù)據(jù)庫緩存(Redis什猖、MongoDB
  • 數(shù)據(jù)庫中間件(MyCat)
  • 數(shù)據(jù)庫連接池(Durid)

8)大數(shù)據(jù)

  • 搜索(Elasticsearch 票彪、Solr)
  • 流式計(jì)算(Storm、Spark不狮、Flink)
  • Hadoop

9)服務(wù)器

  • Tomcat
  • jetty
  • Nginx

10)框架

  • Spring
  • MyBatis
  • Spring MVC
  • Spring Boot
  • Spring Security
  • Spring Cloud
  • Netty
  • Dubbo

11)消息隊(duì)列

12)容器

  • Docker
  • K8s

需要 Java 書單的話降铸,我在 GitHub 上發(fā)現(xiàn)了一個(gè)寶藏項(xiàng)目,光看了一下目錄摇零,就有點(diǎn)吸引我推掸。

需要的小伙伴可以按需自取,地址如下所示:

https://github.com/itwanger/JavaBooks

05驻仅、第五個(gè)階段谅畅,活著最重要

技術(shù)是沒有終點(diǎn)的,也是學(xué)不完的雾家,最重要的是活著铃彰、不禿。

零基礎(chǔ)入門的時(shí)候看書還是看視頻芯咧,我覺得成年人牙捉,何必做選擇題呢,兩個(gè)都要敬飒。喜歡看書就看書邪铲,喜歡看視頻就看視頻。

最重要的是在自學(xué)的過程中无拗,一定不要眼高手低带到,要實(shí)戰(zhàn),把學(xué)到的技術(shù)投入到項(xiàng)目當(dāng)中英染,解決問題揽惹,之后進(jìn)一步錘煉自己的技術(shù)。

開源的項(xiàng)目我推薦 GitHub 上的 mall 和 vhr四康,前者是電商系統(tǒng)搪搏,后者是微人事,都用的最前言的技術(shù)闪金,并且文檔很全面疯溺,不怕暈頭轉(zhuǎn)向论颅。

自學(xué)最怕的就是缺乏自驅(qū)力,一定要自律囱嫩,杜絕“三天打魚兩天曬網(wǎng)”恃疯,到最后白忙活一場。

高度自律的同時(shí)墨闲,要保持耐心今妄,不拋棄不放棄,切勿自怨自艾损俭,每天給自己一點(diǎn)點(diǎn)鼓勵(lì)蛙奖,學(xué)習(xí)的勁頭就會很足潘酗,不容易犯困杆兵。

技術(shù)學(xué)到手后,找工作的時(shí)候一定要好好準(zhǔn)備一份簡歷仔夺,不要無頭蒼蠅一樣去海投簡歷琐脏,容易“竹籃打水一場空”「淄茫可以參考下面的鏈接日裙,好好的準(zhǔn)備一下簡歷,畢竟是找工作的敲門磚惰蜜。

入職阿里后昂拂,才知道原來簡歷這么寫

拿到面試邀請后,在面試的過程中一定要大大方方抛猖,盡力把自己學(xué)到的知識舒適地表達(dá)出來格侯,不要因?yàn)槭亲詫W(xué)就不夠自信,給面試官一個(gè)好的印象财著,面試成功的幾率就會大很多联四,加油吧,騷年撑教!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末朝墩,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子伟姐,更是在濱河造成了極大的恐慌收苏,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,907評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件愤兵,死亡現(xiàn)場離奇詭異鹿霸,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)恐似,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評論 3 395
  • 文/潘曉璐 我一進(jìn)店門杜跷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事葛闷”锘保” “怎么了?”我有些...
    開封第一講書人閱讀 164,298評論 0 354
  • 文/不壞的土叔 我叫張陵淑趾,是天一觀的道長阳仔。 經(jīng)常有香客問我,道長扣泊,這世上最難降的妖魔是什么近范? 我笑而不...
    開封第一講書人閱讀 58,586評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮延蟹,結(jié)果婚禮上评矩,老公的妹妹穿的比我還像新娘。我一直安慰自己阱飘,他們只是感情好斥杜,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,633評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著沥匈,像睡著了一般蔗喂。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上高帖,一...
    開封第一講書人閱讀 51,488評論 1 302
  • 那天缰儿,我揣著相機(jī)與錄音,去河邊找鬼散址。 笑死乖阵,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的爪飘。 我是一名探鬼主播义起,決...
    沈念sama閱讀 40,275評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼师崎!你這毒婦竟也來了默终?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,176評論 0 276
  • 序言:老撾萬榮一對情侶失蹤犁罩,失蹤者是張志新(化名)和其女友劉穎齐蔽,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體床估,經(jīng)...
    沈念sama閱讀 45,619評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡含滴,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,819評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了丐巫。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片谈况。...
    茶點(diǎn)故事閱讀 39,932評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡勺美,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出碑韵,到底是詐尸還是另有隱情赡茸,我是刑警寧澤,帶...
    沈念sama閱讀 35,655評論 5 346
  • 正文 年R本政府宣布祝闻,位于F島的核電站占卧,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏联喘。R本人自食惡果不足惜华蜒,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,265評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望豁遭。 院中可真熱鬧叭喜,春花似錦、人聲如沸堤框。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蜈抓。三九已至,卻和暖如春昂儒,著一層夾襖步出監(jiān)牢的瞬間沟使,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評論 1 269
  • 我被黑心中介騙來泰國打工渊跋, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留腊嗡,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,095評論 3 370
  • 正文 我出身青樓拾酝,卻偏偏與公主長得像燕少,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子蒿囤,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,884評論 2 354