對于接觸JAVA的同學來說可能很難找到一種方式去快速提升自己,本人對JAVA的真正了解也才一年多,今天隻想分享一下學習經驗。
我列出了以下這些可能對我們有用,或平時能用得上的開源項目:
1,Apache James(Java Apache Mail Enterprise Server)是Apache組織的子項目之一,采用純Java開發,實作了SMTP、POP3與NNTP等多種郵件相關協定。
2,HTTP Server是目前最流行的HTTP伺服器軟體之一(也就是httpd,感興趣的可以了解下Nginx)。
3,ActiveMQ 是Apache出品,最流行的,能力強勁的開源消息總線(不過我個人比較喜歡RabbitMQ,而且性能更好)。
4,Apache Ant的全名是"Another Neat Tool",是一個将軟體編譯、測試、部署等步驟聯系在一起加以自動化的一個工具,用于開發 Java 程式。
5,Apache Commons項目專注于開發可重用的Java元件。
6,CouchDB 是一個"面向文檔"的資料庫(對此感興趣的可以研究下MongoDB)。
7,Hadoop 是Apache軟體基金會所研發的并行運算程式設計工具和分布式檔案系統(大資料存儲,資料倉庫,資料挖掘)。
8,HttpComponents 就是之前的HttpClient項目,改名字是因為它已經從一個單純的http用戶端元件轉變成了用戶端伺服器通吃的元件。
9,Ibatis 是apache的一個開源項目。使用ibatis 提供的ORM機制,其實就是用個通路資料庫的。
10,Apache Lenya 是Java的開源内容管理系統(Content Management System,CMS)。
11,Apache Logging Services項目建立并維護着與免費對大衆釋出的日志應用有關的開源軟體。
12,Lucene 是一個高性能的基于 Java 的全文索引/檢索引擎(我初學JAVA時就選的這個,還買了本in action)。
13,Maven 是一個基于 Java 的項目管理工具,非常好用,本身也是JAVA寫的,可以試着自己建個私服(我是這麼做過)。
14,MINA (Multipurpose Infrastructure for Network Applications) 是一個網絡應用程式架構,用來幫助使用者簡單地開發高性能和高可靠性的網絡應用程式(如果對JAVA網絡程式設計感興趣的可以研究下Netty4/5)。
15,Apache POI是Apache軟體基金會的開放源碼函數庫,POI提供API給Java程式對Microsoft Office格式檔案讀和寫的功能(導入、導出資料用,很常用)。
16,Portal 是基于WEB的應用程式,它将不同資源進行整合并展現給使用者,提供包括内容聚合、單點登陸、個性化制定和安全管理等服務的基礎Web平台。
17,Roller 是一個全功能的多使用者部落格平台(還沒來得及研究)。
18,Shiro(權限管理架構)
19,SpamAssassin 是目前最好的、最流行的開源反垃圾郵件軟體之一。
20,Subversion(svn團隊開發利器)
21,Apache Synapse是一個易于使用、輕量級的XML與Web Services管理和內建中間件,可用于搭建SOA和ESB的基礎平台。
22,Tomcat 是一款開源的Serlvet容器(我會下源碼然後Debug,它是個ANT工程,另外可能還要小改下代碼,引用了四個jar包,如下圖)。

23,ZooKeeper 樹形存儲資料庫(我是這麼認為的),但它有個重要的角色,就是注冊中心。
當然,Apache中的項目還不止這些,還有spring也有一些項目,大家都可以主動地去了解下,說不定哪天的項目中就用到了其中的一個或幾個。
JAVA是個大家族,博覽的同時一定要注重基礎的紮實培養,多寫代碼。