GitHub上收穫Star數排名前10的Java項目

專注於Java領域優質技術,歡迎關注

來自:阿飛的博客

1. CS-Notes

star:92.1k 介紹:技術面試必備基礎知識、Leetcode、計算機操作系統、計算機網絡、系統設計、Java、Python、C++ ;地址:https://cyc2018.github.io/CS-Notes;

GitHub上收穫Star數排名前10的Java項目

其中,算法包括:劍指 Offer 題解、Leetcode 題解、算法、筆試面試題庫。數據庫包括:數據庫系統原理、SQL、Leetcode-Database 題解、MySQL、Redis。Java包括:Java 基礎、Java 容器、Java 併發、Java 虛擬機、Java I/O。系統設計包括:系統設計基礎、分佈式、集群、攻擊技術、緩存、消息隊列。

2. JavaGuide

star:69.8k 介紹:【Java學習+面試指南】 一份涵蓋大部分Java程序員所需要掌握的核心知識。地址:https://github.com/Snailclimb/JavaGuide。

作者在gitee碼雲上也有維護這個項目:https://gitee.com/SnailClimb/JavaGuide。這個Github項目涵蓋的內容也非常全面。以JVM為例:

  1. Java內存區域
  2. JVM垃圾回收
  3. JDK 監控和故障處理工具
  4. 類文件結構
  5. 類加載過程
  6. 類加載器
  7. 【待完成】最重要的 JVM 參數指南(翻譯完善了一半)
  8. JVM 配置常用參數和常用 GC 調優策略
  9. 【加餐】大白話帶你認識JVM

3. java-design-patterns

star:55.6k 介紹:Design patterns implemented in Java ,即用Java實現的設計模式。地址:https://github.com/iluwatar/java-design-patterns

設計模式對一個程序員或者架構師的重要性不言而喻,無論是架構設計,日常編碼,代碼可讀性,還是為了面試。設計模式都是Java程序員必須掌握的東西。

4. elasticsearch

star:47.2k 介紹:開源、分佈式,基於Restful設計的搜索引擎。地址:https://github.com/elastic/elasticsearch。

這麼牛逼的開源中間件我想不用過多介紹了吧。如果你連es都沒聽說過,我很懷疑你是不是一個Java程序員。讓筆者驚訝的是,es的star數居然超過了大名鼎鼎的SpringBoot。

GitHub上收穫Star數排名前10的Java項目

5. SpringBoot

star:45.7k 介紹:Spring Boot(對,你沒看錯,Github上SpringBoot的主頁沒有簡介,就是這麼自信)。地址:https://github.com/spring-projects/spring-boot。

作為SpringCloud微服務生態的基石,作為Java企業級開發的革命之作,它對於每一個Java程序員的重要性,不亞於它們家老祖宗SpringFramework。它讓WEB開發變得如此輕鬆簡單,你可以不用SpringCloud,但是你的JavaWeb項目還沒有使用SpringBoot,那就有點說不過去了!

GitHub上收穫Star數排名前10的Java項目

6. interviews

star:42.2k 介紹:你需要知道的關於找工作的所有事情!地址:https://github.com/kdn251/interviews

又是一個帶有濃厚本土特色的Github項目。值得一提的是,如果你想學習算法,這裡非常值得一看。不信?筆者貼幾張圖給你瞅瞅,嘿嘿:

GitHub上收穫Star數排名前10的Java項目

Dijkstra最短路徑算法:

GitHub上收穫Star數排名前10的Java項目


7. RxJava

star:41.9k 介紹:JVM響應式編程擴展,一個為JVM的包含了異步和基於事件的。地址:https://github.com/ReactiveX/RxJava


8. advanced-java

star:39.3k 介紹:互聯網 Java 工程師進階知識完全掃盲:涵蓋高併發、分佈式、高可用、微服務、海量數據處理等領域知識,後端同學必看。地址:https://github.com/doocs/advanced-java

本項目內容內容涵蓋高併發、分佈式、高可用、微服務、海量數據處理等領域知識。例如,分庫分表相關內容:為什麼要分庫分表(設計高併發系統的時候,數據庫層面該如何設計)?用過哪些分庫分表中間件?不同的分庫分表中間件都有什麼優點和缺點?你們具體是如何對數據庫如何進行垂直拆分或水平拆分的?現在有一個未分庫分表的系統,未來要分庫分表,如何設計才可以讓系統從未分庫分表動態切換到分庫分表上?如何設計可以動態擴容縮容的分庫分表方案?分庫分表之後,id 主鍵如何處理?

海量數據處理:如何從大量的 URL 中找出相同的 URL?如何從大量數據中找出高頻詞?如何找出某一天訪問百度網站最多的 IP?如何在大量的數據中找出不重複的整數?如何在大量的數據中判斷一個數是否存在?如何查詢最熱門的查詢串?如何統計不同電話號碼的個數?如何從 5 億個數中找出中位數?如何按照 query 的頻度排序?如何找出排名前 500 的數?

... ...

9. okhttp

star:36k 介紹:Square的Java和Kotlin的HTTP客戶端。地址:https://github.com/square/okhttp

Java項目和Android項目都可以使用的HTTP客戶端。它就是由Square設計用於替換HttpUrlConnection和Apache HttpClient這兩個糟糕的HTTP客戶端的。是安卓端最火熱的輕量級框架。正因為它的優秀,現在很多Java服務端也用okhttp作為HTTP客戶端。如果你還沒用過它,那麼請趕緊嘗試吧,兩個字:真香!!!

10. guava

star:36k 介紹:谷歌公司Java核心庫;地址:https://github.com/google/guava

這個庫能力可太大了,主要包括:新的集合類型(例如multimap和multiset等),不可變集合,圖形庫,併發工具,I/O,Hashing,本地緩存,限流等等。無論在谷歌,還是其他公司都是用的非常廣泛。

總結

我們欣喜看到Github上Java相關獲取Star數Top10的項目,有好幾個是中國人主導的。但是我們仔細看一下這些項目,都是一些總結性的項目。它們的價值可遠比不了elasticsearch,SpringBoot這些改變世界的開源項目。

GitHub上收穫Star數排名前10的Java項目

筆者翻到第二頁,高興的看到了一個不說改變世界,不說改變中國,起碼在國內IT行業影響力非常巨大的開源項目。沒錯,它就是Dubbo(https://github.com/apache/dubbo)。筆者現在的公司VIVO的核心框架也是Dubbo,並且還有很多有名的公司都在公司內部大量使用了Dubbo,比如:噹噹,網易考拉,瓜子二手車,去哪兒,芒果TV,TCL,海爾等(參考鏈接:https://github.com/apache/dubbo/issues/1012,Wanted: who's using dubbo)。讓我們期待更多像Dubbo一樣優秀的開源項目衝進Github排行榜中!


分享到:


相關文章: