Java 複習計劃

前言

打算下學期開學,也就是九月份,去找實習,如今還有三個月時間。(然而還在每天玩 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 放到瀏覽器上執行。

參考

相關文章
相關標籤/搜索