【转】Java开发必须要知道的知识体系
Java
Java是一門超高人氣編程語言,擁有跨平臺、面向?qū)ο蟆⒎盒途幊痰忍匦浴T赥IOBE編程語言排行榜中,連續(xù)奪得第一寶座,而且國內(nèi)各大知名互聯(lián)網(wǎng)公司,后端開發(fā)首選語言:非Java莫屬。今天只是梳理下Java知識體系,后續(xù)會針對各類目有更詳細的經(jīng)驗分享。
知識體系
JDK
-
Java8
-
Lambda 語句
-
方法引用
-
日期/時間處理API
-
等等,不一一列舉,詳細的參考這些文檔
-
URL:?http://www.oracle.com/technetwork/cn/java/javase/documentation/index.html
-
說明: Java8增加了很多新的重要特性,比如:
-
Java8特性(英文):?http://www.tutorialspoint.com/java8/java8_overview.htm
-
Java8特性(中文):?http://www.importnew.com/11908.html
-
IDE
-
IntelliJ IDEA: - URL:?http://www.jetbrains.com/idea/?- 推薦指數(shù): 5星 - 評價: JetBrains公司旗下有很多非常棒的IDE,例如PHP開發(fā):PHPStorm,Python開發(fā):Pycharm等,用了很多年的 Eclipse,后來發(fā)現(xiàn)IDEA,如獲至寶,果斷放棄了Eclipse,并在團隊中分享,技術(shù)同學(xué)都切到IntelliJ IDEA,用過的都說好,具體咋好,自己去體驗吧!
-
URL:?http://www.eclipse.org/
-
評價:最流行的Java開發(fā)IDE,國內(nèi)很多團隊使用MyEclipse,基于EclipseIDE的擴展,集成了很多插件,功能也很強大,非開源,收費。 MyEclipse的URL:http://www.myeclipsecn.com/
-
Eclipse
-
Web服務(wù)器
-
Apache
-
URL:?https://projects.apache.org/project.html?httpd-http_server
-
說明: 具有的跨平臺性和安全性,廣泛使用,最流行開源Web服務(wù)器。
-
-
Nginx
-
URL:?http://www.nginx.org/
-
說明: 輕量級Web服務(wù)器、反向代理服務(wù)器,Nginx相較于 Apache、lighttpd 具有占有內(nèi)存少,穩(wěn)定性高,并發(fā)能力強等優(yōu)勢,豐富的模塊庫以及友好靈活的配置而聞名。
-
-
Tomcat
-
URL:?http://tomcat.apache.org/
-
說明: Tomcat是應(yīng)用(java)服務(wù)器,它只是一個servlet容器,是Apache的擴展。
-
-
Jetty
-
URL:?http://www.eclipse.org/jetty/
-
說明: Jetty 是一個開源的servlet容器,它為基于Java的web容器,例如JSP和servlet提供運行環(huán)境,相對于Tomcat,更輕量級,更靈活,擴展性好。
-
備注: 關(guān)于tomcat 與 nginx,apache的區(qū)別,參見知乎上的一篇文章:https://www.zhihu.com/question/32212996
-
構(gòu)建工具
-
Maven
-
URL:?http://maven.apache.org/
-
-
Gradle
-
推薦指數(shù): 個人比較推薦Gradle,代碼簡潔,設(shè)置靈活,但也需要根據(jù)具體業(yè)務(wù)場景和技術(shù)架構(gòu)評估。
-
URL:?http://gradle.org/
-
gradle和maven區(qū)別參照知乎這篇文章:https://www.zhihu.com/question/29338218
-
-
Ant: 過時的東東,就不要用了。
框架
-
Spring Framework
-
URL:?http://spring.io/
-
推薦指數(shù): 5星
-
說明: 學(xué)Java不知道Spring,沒用過Spring,那就太low了,DI、AOP、MVC、ORM這些概念自不必說,必須要學(xué)的,圍繞著Spring的生態(tài)圈很全,各種組件基本都已經(jīng)齊備,結(jié)合自己的業(yè)務(wù),做些擴展就run!
-
Github上各種Spring組件代碼:https://github.com/spring-projects
-
-
Play!
-
URL:?https://www.playframework.com/
-
說明: Play!是在設(shè)計時考慮了可伸縮性的 新一代反應(yīng)式 Web 框架,Play 還帶來了開發(fā)友好的特性,比如原生的 XML 和 JSON 處理,開發(fā)模式下的瀏覽器內(nèi)錯誤報告,內(nèi)置的測試幫助器,以及Selenium集成。
-
模版引擎
-
Thymeleaf
-
URL:?http://www.thymeleaf.org/
-
說明: 支持用XML/XHTML/HTML5寫模版,用于Web與非Web環(huán)境中的應(yīng)用開發(fā)。Spring Boot中推薦用Thymeleaf作為前端渲染模版引擎。
-
-
Velocity
-
URL:?http://velocity.apache.org/
-
說明: 一個基于java的模板引擎,它允許任何人使用簡單但是強大的模板語言, 引用java代碼中的對象。
-
數(shù)據(jù)訪問
-
JPA
-
URL:?http://projects.spring.io/spring-data-jpa/
-
說明: JPA是基于Hibernate的作的擴展,提供了簡單的編程模型,JPA定義了獨特的JPQL,不寫SQL文,就能進行簡單的進行數(shù)據(jù)CRUD操作。
-
-
MyBatis
-
URL:?http://mybatis.org/mybatis-3/
-
說明: MyBatis的前身就是iBatis,是一個數(shù)據(jù)持久層(ORM)框架,簡單易學(xué),輕巧靈活,封裝了絕大多數(shù)的JDBC樣板代碼,使得開發(fā)者只需關(guān)注SQL本身。
-
日志
-
Logback
-
URL:?http://logback.qos.ch/
-
說明: Logback是log4j的升級版本,通常會和SLF4J配合使用。
-
-
SLF4J
-
URL:?http://www.slf4j.org/
-
說 明: SLF4J是一個用于日志系統(tǒng)的簡單Facade,允許最終用戶在部署其應(yīng)用時使用其所希望的日志系統(tǒng),SLF4J提供了統(tǒng)一的記錄日志的接口,只要按照 其提供的方法記錄即可,最終日志的格式、記錄級別、輸出方式等通過具體日志系統(tǒng)的配置來實現(xiàn),因此可以在應(yīng)用中靈活切換日志系統(tǒng)。
-
單元測試
-
JUnit
-
URL:?http://junit.org/junit4/
-
說明: 沒啥好介紹的,老牌的Java代碼自動話測試工具。
-
-
testNG
-
URL:?http://testng.org/doc/index.html
-
說明: 類似于JUnit和NUnit, 功能都差不多,只是功能更加強大,使用也更方便。
-
-
JMockit
-
URL:?http://jmockit.org/
-
說明: 單元測試mock框架,尤其在測試框架底層復(fù)雜代碼時,JMockit是很好的武器,另外還有一個工具:Djunit也是Mock框架,場合Junit結(jié)合使用。
-
常用類庫
-
jackson
-
URL:?https://github.com/FasterXML/jackson
-
說明: 操作JSON的類庫。
-
-
GSON
-
URL:?https://github.com/google/gson
-
說明: Google開源java對象和JSON對象進行影射的類庫。
-
-
CSV
-
URL:?http://opencsv.sourceforge.net/
-
說明: 操作CSV文件格式類庫。
-
-
Excel
-
URL:?https://poi.apache.org/
-
說明: 操作Excel,Word的類庫。
-
-
Apache PDFBox
-
URL:?https://pdfbox.apache.org/index.html
-
說明: 操作PDF的類庫。
-
-
Jsoup
-
URL:?https://jsoup.org/
-
說明: 一款Java 的HTML解析器,可直接解析某個URL地址、HTML文本內(nèi)容。它提供了一套非常省力的API,可通過DOM,CSS以及類似于jQuery的操作方法來取出和操作數(shù)據(jù)。
-
-
Ehcache
-
URL:?http://www.ehcache.org/
-
說明: 純Java的進程內(nèi)緩存框架,具有快速、精干等特點,是Hibernate中默認的CacheProvider。
-
-
Quartz
-
URL:?http://quartz-scheduler.org/
-
說明: 作業(yè)調(diào)度框架。
-
代碼質(zhì)量
-
FindBugs
-
URL:?http://findbugs.sourceforge.net/
-
說明: 代碼靜態(tài)分析工具,幫助提高代碼質(zhì)量以及排除隱含的缺陷。
-
-
CheckStyle
-
URL:?http://checkstyle.sourceforge.net/
-
說明: 檢查Java編碼規(guī)范的靜態(tài)分析工具。
-
-
PMD
-
URL:?https://pmd.github.io/
-
說明: 和FindBugs功能類似。
-
JVM語言
-
Scala
-
URL:?http://www.scala-lang.org/
-
說明: Scala是一門現(xiàn)代的多范式編程語言,志在以簡練、優(yōu)雅及類型安全的方式來表達常用編程模式。它平滑地集成了面向?qū)ο蠛秃瘮?shù)語言的特性。
-
-
Groovy
-
URL:?http://groovy-lang.org/
-
說明: Groovy是一種基于JVM(Java虛擬機)的敏捷開發(fā)語言,它結(jié)合了Python、Ruby和Smalltalk的許多強大的特性,Groovy 代碼能夠與Java代碼很好地結(jié)合,也能用于擴展現(xiàn)有代碼。
-
?
總結(jié)
以上是生活随笔為你收集整理的【转】Java开发必须要知道的知识体系的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: masm for windows2015
- 下一篇: 新书推荐 | Java核心技术卷Ⅰ:基础