給你推薦一個寫得很是用心的Java基礎教程:Java入門基礎教程 | 天碼營html
這個教程將Java的入門基礎知識貫穿在一個實例中,逐步深刻,能夠幫助你快速進入Java編程的世界。萬事開頭難,逐步跟着這個教程走一遍,對Java應該就會有一種入門的感受了。而後再去學習更高級的主題,或者更深刻地學習其中的某些知識點。前端
入門以後,能夠考慮如下學習路徑和內容:java
一、學習的基本路徑web
首先創建好開發環境很是重要,工欲善其事,必先利其器。作任何開發,首先就是要把這個環境準備好,以後就能夠去作各類嘗試,嘗試過程當中就能逐漸創建信心。初學者每每在環境配置中被各類預想不到的問題弄得很沮喪。spring
創建起來環境了,改變世界就靠你的代碼了。學習一門編程語言沒有太多的訣竅,你可能能夠去找一本比較好的經典的入門書籍,如今網絡上也有很是多的資料,圖文或者視頻均可以,根據我的喜愛選擇。最重要的練習,熟能生巧,在不斷的練習中去加深本身對程序語言的理解。數據庫
接下來你須要瞭解這三個術語,叫SDK、API跟Lib,分別表示軟件開發套件,應用編程接口和庫。這三者之間其實有必定的聯繫,或者是交叉。整體來講,它們都是給咱們提供的一些封裝了底層功能的基礎設施。作Java開發的話,這些東西一般體現爲咱們所常常說的「框架」。事實上要成爲一個資深的Java開發者,對各類API和框架的學習,多是花時間最多的一個地方。編程
固然你也不可能把全部API或者SDK種的全部內容徹底弄懂。在軟件開發中也有二八原則,少數的API可以勝任開發中的大部分場景。因此你只須要掌握這些關鍵部分,當在新場景下遇到不能解決的新問題時,再去查看幫助文檔。因此幫助文檔的閱讀也是技術學習的一個關鍵因素。瞭解了基礎原理以後通常就能上手開發了,幫助文檔能夠幫助你在實踐中學習。設計模式
二、三個神器瀏覽器
三個神器,對於軟件開發者來講很是重要。緩存
三、Java Web全棧開發的推薦學習內容
簡單總結一下,大概包括下面這些內容。每一部分均可以細化成不少知識點,這只是一個粗略的羅列。把它當作技術地圖就行了。
下面對每部分的內容詳細介紹一下。
四、JSP/Servlet的相關內容
雖然如今各類成熟的MVC框架已經讓Java Web開發基本不多使用JSP和Servlet的原生功能了,基本都作了一層封裝。可是這部分基礎知識建議初學者仍是要認真學習。
五、數據庫相關的內容
掌握了Servlet/JSP技術,咱們已經能夠建立動態的Web應用了。除了動態的Web界面,一個有價值的Web應用必然須要進行數據存儲,開發上咱們通常稱之爲數據持久化(Data Persistence)。
從業務功能的角度出發,簡單的應用能夠認爲就是數據的增刪改查。好比一個產品級的博客應用,最核心的功能就是對博客內容的建立、修改、刪除和查詢,而這些功能都離不開Web服務器背後的數據庫系統。
六、Spring相關的內容
Spring最重要的兩個核心功能是依賴注入(DI,Dependency Injection)和麪向切面編程(AOP,Aspect Oriented Programming)。其中DI用於管理Java對象之間的依賴關係,AOP用於解耦業務代碼和公共服務代碼(如日誌,安全,事務等)。DI和AOP可以讓代碼更加簡單,具備良好的鬆耦合特性和可測試性,極大地簡化開發。理解這二者是使用Spring框架的基礎。
七、Spring MVC相關內容
Spring做爲Java系的全棧(full-stack)開發框架,固然也對Web開發有着很是好的支持。Spring的Web MVC框架可以使開發者很是容易的開發Web應用,同時可以無縫享受到Spring自己的諸多好處——IoC容器、AOP編程等等。
八、MyBatis相關內容
MyBatis 是支持定製化 SQL、存儲過程以及高級映射的優秀的持久層框架。MyBatis 避免了幾乎全部的 JDBC 代碼和手動設置參數以及獲取結果集。MyBatis 能夠對配置和原生Map使用簡單的 XML 或標註,將接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java對象)映射成數據庫中的記錄
九、JPA
ORM框架的出現使得咱們可以以面向對象的方式來操做關係數據庫,可是長久以來實現應用系統中的數據訪問層依然是一件很是繁瑣的事情,簡單的查詢也每每涉及大量重複代碼。Spring Data JPA在則基於JPA進一步簡化了數據訪問層的實現,它提供了一種相似於聲明式編程的方式,開發者只須要編寫數據訪問接口(稱爲Repository),Spring Data JPA就能基於接口中的方法命名自動地生成實現。
JPA(Java Persistence API,Java持久化API),定義了對象關係映射(Object Relation Mapping,ORM)以及實體對象持久化的標準接口。 JPA是一套接口規範,JPA的實現主要包括 JBoss 的 Hibernate EntityManager、Oracle 捐獻給 Eclipse 社區的 EclipseLink和Apache 的 OpenJPA 等。
十、Java Web應用的部署
十一、其它主題
緩存:EhCache、Spring Cache Manager、數據層緩存、服務層緩存、頁面緩存
安全:Spring Security(HTTP基本驗證,角色驗證,權限驗證)
任務調度:Spring任務執行器(Executor)
郵件發送:SMTP協議、spring-boot-starter-mail
Web Socket:@SubscribeMapping, WebSocketConfig
日誌:SLF4J與Logback、 Spring Boot Logging、 ConsoleAppender/RollingFileAppender 、Sentry、ELK
十二、設計模式
參考Java寫一套漂亮的代碼,哪些設計模式比較經常使用? - David 的回答 - 知乎
1三、更進一步
分佈式、深刻Java虛擬機、針對不一樣場景的Java技術框架,到這個階段已經不只僅是Java的學習了,而是大型應用場景的技術積累、架構設計的精進了。