前言
打算下學期開學,也就是九月份,去找實習,如今還有三個月時間。(然而還在每天玩 Python。。)
定個複習計劃。html
1. 基礎
- 併發:Java併發編程實戰
- [ x ] SQL:MySQL,看看書,上 LeetCode 刷刷題。
- 設計模式:學一學常見的八九個就行。
必需要掌握的工具:前端
- [ x ] git: git 一段時間沒複習,感受不少東西都記不太清了。。
- [ x ] 項目構建: gradle, 另外 maven 也要會複製粘貼。。
- Junit: 要記得寫測試,人不能太懶啊
- 日誌:slf4j、log4j/logback
2. Web 框架
這是要乾點實事了。java
- Spring: 依賴注入、面向切面,再稍稍複習一下。
- Spring MVC
- Mybatis: 數據庫框架。小項目也能夠直接用 Spring JPA,更簡單輕量級。
- Mockito: 作Web確定少不了模擬測試了。
前端:Html JS Css。。android
雖然使用上述框架時,幾乎不須要瞭解底層,可是底層也是要複習的:nginx
- jdbc: 原生的 jdbc 真的很囉嗦,可拿來和 Spring JdbcTemplate 比較一下。
- servlet: Java Web 的核心。至關於 http 服務器端的一個實現規範。
- tomcat: 它是 servlet 規範的一個實現,此外還有個 jetty 也頗有名。
作上一兩個小網站後,能夠複習下 Spring Boot,體驗一下約定優於配置的便捷。git
3. 再複習基礎
找工做的話,好像就喜歡問基礎題。github
- 泛型:類型擦除、通配符、extends/super 等。
- 集合框架源碼,同時複習下算法和數據結構。好像說面試都是面集合框架和併發?
- 網絡:TCP/IP、HTTP、WebSocket
4. 刷題
刷題應該是貫穿整個複習過程的,主要網站是 牛客、Leetcode、codewars。web
5. 其餘邊用邊學的內容
官方庫:面試
- io/nio 庫
- 網絡編程: socket/http
- 函數式:Java8 函數式編程( lambda、runnable、stream...)
第三方庫:redis
- json: gson、fastjson. 兩個庫的 api 都很簡潔,按須要選取就行。
- xml: dom4j. 進階能夠看看 xstream.
- Http: HttpClient、OkHttp
- Google Guava: 好像就不可變集合最使用率最高。
- Apache Commons: 提供了不少頗有用的工具.
語言進階
這個是複習計劃沒有覆蓋到的基礎內容,之後有時間要補補
- 反射機制
- 註解機制
- 類加載器
- RPC調用:有個著名的第三方框架:netty
- Java 9 模塊化:解決了 jar 包存在的缺陷:弱封裝和配置問題,模塊化很值得學習。
而後能夠學個 Kotlin 玩玩了。Kotlin 野心挺大的,雖然暫時就 android 開發用得最多,但明確表示支持 server side,如今 native 項目都 3000 屢次提交了(2018-06-11)。順便如今 gradle、spring 也都支持 kotlin 了。還能和 Java 完美互調,看着就眼饞。
P.S. 截止 2019 年 3 月 30 日(該項目起始於 2017 年 6 月的樣子),kotlin-native 已經 4751 次提交了,仍然是 beta 狀態。今年的 KotlinConf 會在年末 12 月份舉行,我估摸着 kotlin-native 會在這以前 release。
但真正的成熟,還得等到明年,畢竟 native 至關因而在 llvm 上從新實現一遍 kotlin 了。並且底層的一些 java 標準庫,也要想辦法轉成 native 的。
Web 進階
- 反向代理:nginx
- 緩存/消息隊列:redis
- 其餘:Spring全家桶。。
其餘
- docker: 容器但是個好東西。
- [ x ] Travis CI: 持續集成:自動測試、自動部署
畫外
如今新出的語言裏,Kotlin、Swift 兩個,都是立足於手機 App 開發,而後嘗試將應用拓展到 Server、PC 端、Web 前端,嘗試大一統。
而 Rust 和 Julia,則是專一於本身的優點。Rust 是高性能領域,Julia 是科學計算。
這四個都是基於 LLVM 開發的,藉助 LLVM 這個平臺,它們既能夠編譯成可執行程序,也能夠解釋執行,亦或者編譯成 WebAssembly 放到瀏覽器上執行。
參考