課程簡介
本次課程與大家分享一些 Java 核心技術(shù)高級特性。
目標收益
培訓對象
課程大綱
第一部分:Java Core |
第一節(jié) JDK 核心 API 總覽(1 - 9) ? Java 基礎類庫:Java 語言(Lang)、數(shù)學(Math)、集合(Collections)、并發(fā)(Concurrency)和反射(Relfection) ? Java 其他類庫:Java I/O、Java Beans、序列化(Serialization)、管理擴展(JMX)和網(wǎng)絡(Networking) |
第二節(jié) Java API 實踐 |
通用框架:介紹 JDK 中常見的工具方法,以及精選 Apache Commons 工程,減少重復勞動,提升開發(fā)效率和質(zhì)量 集合框架:主要討論 JDK 中常見的數(shù)據(jù)結(jié)構(gòu)的使用場景以及常見問題,包括 Apache commons-collection 配置外部化:介紹從 Java SE 到 Java EE 配置外部化的實例,杜絕硬編碼的方式,實現(xiàn)一套代碼到處運行,并且結(jié)合流行的開源框架展開討論,如 log4j(logback)、Spring Framework、Dubbo等 |
第三節(jié) Java 數(shù)據(jù)結(jié)構(gòu)與通用算法 |
數(shù)據(jù)結(jié)構(gòu):系統(tǒng)性介紹 JDK 1 到 9 數(shù)據(jù)結(jié)構(gòu)接口以及使用場景 排序算法:主要討論 JDK 中出現(xiàn)過的排序算法,如 Insertion Sort、Merge Sort 、以及 TimSort,包括基本思路、時間和空間復雜度 搜索算法:討論二進制搜索算法,如 Collections#binarySearch 方法 |
第二部分 Java API 設計 |
第一節(jié) Java 通用 API 設計 類/接口設計:介紹類、抽象類、接口命名、訪問性設計以及“封裝性、派生性、多態(tài)性”技巧 枚舉設計:理解枚舉引入的意義以及變化,介紹 JDK 中常見枚舉的設計 泛型設計:了解泛型使用場景以及限制,通過 JDK 以及開源項目領(lǐng)悟其中的設計模式 方法設計:介紹方法命名、返回類型、參數(shù)類型、名稱以及數(shù)量的設計模式 函數(shù)式設計:討論函數(shù)式設計技巧,如 Supplier、Consumer 以及 Function 在日常開發(fā)中的運用 模塊設計:Java 9 模塊化類庫遷移、依賴管理分析、遷移案例等、模塊解析、模塊API設計 |
第二節(jié) Java 設計模式 |
GoF 23 設計模式:通過實例和開源實現(xiàn)的方式講解 GoF 23 設計模式 擴展設計模式:Fluent 、Reactive、Stream、模塊驅(qū)動等設計模式 |
第三節(jié) Java 開源軟件設計模式 |
Spring Framework 設計模式:介紹 Spring Framework 對 GoF 23 設計模式的運用,以及其特殊的 Apache Tomcat 設計模式:簡介 Catalina 引擎設計、JSP 模板解析引擎 - Jasper設計 |
第三部分:Java 高并發(fā) |
第一節(jié) Java 并發(fā)框架(J.U.C)實踐Java 并發(fā)鎖:介紹包括重進入鎖(ReentrantLock)、重進入讀寫鎖(ReentrantReadWriteLock)、郵票鎖(StampedLock)等運用 Java 原子操作:理解 Atomic* API 以及 *Adder API 使用場景 Java 并發(fā)限制:包括 CountDownLatch、CyclicBarrier 以及 Semaphore Java 線程池:掌握 Executor、ThreadPoolExecutor 、ScheduledExecutorService 以及 Callable 和 Future API 正確使用 |
第二節(jié) Java 并發(fā)原理 |
Java 同步原語:從 JDK 級別到 JVM 級別,深度分析和理解 Java synchronized 、volatile 以及 CAS 操作等同步原語 Java 內(nèi)存模型:理解 Happens-before 、以及內(nèi)存屏蔽在 Java 實踐中的運用 Java 并發(fā) AQS 原理:通過分析 Java 線程池實現(xiàn)理解 AQS 實現(xiàn)原理 |
第三節(jié) JVM 并發(fā)原理 |
Java Thread 底層實現(xiàn):深入 JVM 源碼,理解 Java Thread 實現(xiàn)細節(jié),如線程啟動、等待、以及同步操作 CAS 操作底層實現(xiàn):討論 Java Unsafe 工具類方法實現(xiàn)細節(jié),包括內(nèi)存屏障、volatile、happens-before Java 同步(鎖)底層實現(xiàn):介紹 Java 偏向鎖、輕量級以及重量級實現(xiàn) |
第四部分:Java 運維管理 |
第一節(jié) Java ClassLoading ? Java Class:講解 Java Class 解析、校驗以及加載的過程 ? Class 與 ClassLoader 之間的關(guān)系:通過源碼級別理解 Class 與 ClassLoader 之間的關(guān)系 ? ClassLoader 雙親委派原理:通過底層實現(xiàn)理解雙親委派的設計和局限性 ? Java 類存儲:Java 類對象存儲細節(jié) |
第二節(jié) Java Trouble-Shooting |
OOM 錯誤案例:分析 Java 內(nèi)存泄露的癥狀,以及快速定位泄露位置(堆、Perm 或 Metasapce)以及解決方案 CPU 過高案例:介紹高消耗CPU代碼的常用分析方法,逐一排查可能性 GC 案例:介紹 Young GC 和 Full GC 的基本表象,以及如何在代碼實現(xiàn)中盡可能的避免Full GC |
第三節(jié) Java 運維工具 |
? 工具介紹:Java 進程工具(jps)、線程 dump 工具(jstack)、內(nèi)存 dump 工具(jmap)、Java 調(diào)試工具(jdb)、圖形化工具(jmc、jvisualvm、jconsole) ? 工具與JMX:理解 JMX 運維 JVM 的適用范圍,以及它與運維工具之間的關(guān)系 ? Java Tools API:介紹 Java 編譯器、Java Attatch API、Java Dump API 以及對象查詢語言(OQL) 若有收獲,就點個贊吧 小馬哥(mercyblitz) 08-04 17:51 24 0 投訴 上一篇 Spring 綜合課程大綱 下一篇 Java 核心技術(shù)(基礎) 回復 注冊 或 登錄 語雀進行評論 關(guān)于語雀使用幫助數(shù)據(jù)安全服務協(xié)議English快速注冊 ? 說明 ? 課程詳情 ? 第一部分:Java Core ? 第一節(jié) JDK 核心 API 總覽(1 - 9) ? 第二節(jié) Java API 實踐 ? 第三節(jié) Java 數(shù)據(jù)結(jié)構(gòu)與通用算法 ? 第二部分 Java API 設計 ? 第一節(jié) Java 通用 API 設計 ? 第二節(jié) Java 設計模式 ? 第三節(jié) Java 開源軟件設計模式 ? 第三部分:Java 高并發(fā) ? 第一節(jié) Java 并發(fā)框架(J.U.C)實踐 ? 第二節(jié) Java 并發(fā)原理 ? 第三節(jié) JVM 并發(fā)原理 ? 第四部分:Java 運維管理 ? 第一節(jié) Java ClassLoading ? 第二節(jié) Java Trouble-Shooting ? 第三節(jié) Java 運維 |
第一部分:Java Core 第一節(jié) JDK 核心 API 總覽(1 - 9) ? Java 基礎類庫:Java 語言(Lang)、數(shù)學(Math)、集合(Collections)、并發(fā)(Concurrency)和反射(Relfection) ? Java 其他類庫:Java I/O、Java Beans、序列化(Serialization)、管理擴展(JMX)和網(wǎng)絡(Networking) |
第二節(jié) Java API 實踐 通用框架:介紹 JDK 中常見的工具方法,以及精選 Apache Commons 工程,減少重復勞動,提升開發(fā)效率和質(zhì)量 集合框架:主要討論 JDK 中常見的數(shù)據(jù)結(jié)構(gòu)的使用場景以及常見問題,包括 Apache commons-collection 配置外部化:介紹從 Java SE 到 Java EE 配置外部化的實例,杜絕硬編碼的方式,實現(xiàn)一套代碼到處運行,并且結(jié)合流行的開源框架展開討論,如 log4j(logback)、Spring Framework、Dubbo等 |
第三節(jié) Java 數(shù)據(jù)結(jié)構(gòu)與通用算法 數(shù)據(jù)結(jié)構(gòu):系統(tǒng)性介紹 JDK 1 到 9 數(shù)據(jù)結(jié)構(gòu)接口以及使用場景 排序算法:主要討論 JDK 中出現(xiàn)過的排序算法,如 Insertion Sort、Merge Sort 、以及 TimSort,包括基本思路、時間和空間復雜度 搜索算法:討論二進制搜索算法,如 Collections#binarySearch 方法 |
第二部分 Java API 設計 第一節(jié) Java 通用 API 設計 類/接口設計:介紹類、抽象類、接口命名、訪問性設計以及“封裝性、派生性、多態(tài)性”技巧 枚舉設計:理解枚舉引入的意義以及變化,介紹 JDK 中常見枚舉的設計 泛型設計:了解泛型使用場景以及限制,通過 JDK 以及開源項目領(lǐng)悟其中的設計模式 方法設計:介紹方法命名、返回類型、參數(shù)類型、名稱以及數(shù)量的設計模式 函數(shù)式設計:討論函數(shù)式設計技巧,如 Supplier、Consumer 以及 Function 在日常開發(fā)中的運用 模塊設計:Java 9 模塊化類庫遷移、依賴管理分析、遷移案例等、模塊解析、模塊API設計 |
第二節(jié) Java 設計模式 GoF 23 設計模式:通過實例和開源實現(xiàn)的方式講解 GoF 23 設計模式 擴展設計模式:Fluent 、Reactive、Stream、模塊驅(qū)動等設計模式 |
第三節(jié) Java 開源軟件設計模式 Spring Framework 設計模式:介紹 Spring Framework 對 GoF 23 設計模式的運用,以及其特殊的 Apache Tomcat 設計模式:簡介 Catalina 引擎設計、JSP 模板解析引擎 - Jasper設計 |
第三部分:Java 高并發(fā) 第一節(jié) Java 并發(fā)框架(J.U.C)實踐Java 并發(fā)鎖:介紹包括重進入鎖(ReentrantLock)、重進入讀寫鎖(ReentrantReadWriteLock)、郵票鎖(StampedLock)等運用 Java 原子操作:理解 Atomic* API 以及 *Adder API 使用場景 Java 并發(fā)限制:包括 CountDownLatch、CyclicBarrier 以及 Semaphore Java 線程池:掌握 Executor、ThreadPoolExecutor 、ScheduledExecutorService 以及 Callable 和 Future API 正確使用 |
第二節(jié) Java 并發(fā)原理 Java 同步原語:從 JDK 級別到 JVM 級別,深度分析和理解 Java synchronized 、volatile 以及 CAS 操作等同步原語 Java 內(nèi)存模型:理解 Happens-before 、以及內(nèi)存屏蔽在 Java 實踐中的運用 Java 并發(fā) AQS 原理:通過分析 Java 線程池實現(xiàn)理解 AQS 實現(xiàn)原理 |
第三節(jié) JVM 并發(fā)原理 Java Thread 底層實現(xiàn):深入 JVM 源碼,理解 Java Thread 實現(xiàn)細節(jié),如線程啟動、等待、以及同步操作 CAS 操作底層實現(xiàn):討論 Java Unsafe 工具類方法實現(xiàn)細節(jié),包括內(nèi)存屏障、volatile、happens-before Java 同步(鎖)底層實現(xiàn):介紹 Java 偏向鎖、輕量級以及重量級實現(xiàn) |
第四部分:Java 運維管理 第一節(jié) Java ClassLoading ? Java Class:講解 Java Class 解析、校驗以及加載的過程 ? Class 與 ClassLoader 之間的關(guān)系:通過源碼級別理解 Class 與 ClassLoader 之間的關(guān)系 ? ClassLoader 雙親委派原理:通過底層實現(xiàn)理解雙親委派的設計和局限性 ? Java 類存儲:Java 類對象存儲細節(jié) |
第二節(jié) Java Trouble-Shooting OOM 錯誤案例:分析 Java 內(nèi)存泄露的癥狀,以及快速定位泄露位置(堆、Perm 或 Metasapce)以及解決方案 CPU 過高案例:介紹高消耗CPU代碼的常用分析方法,逐一排查可能性 GC 案例:介紹 Young GC 和 Full GC 的基本表象,以及如何在代碼實現(xiàn)中盡可能的避免Full GC |
第三節(jié) Java 運維工具 ? 工具介紹:Java 進程工具(jps)、線程 dump 工具(jstack)、內(nèi)存 dump 工具(jmap)、Java 調(diào)試工具(jdb)、圖形化工具(jmc、jvisualvm、jconsole) ? 工具與JMX:理解 JMX 運維 JVM 的適用范圍,以及它與運維工具之間的關(guān)系 ? Java Tools API:介紹 Java 編譯器、Java Attatch API、Java Dump API 以及對象查詢語言(OQL) 若有收獲,就點個贊吧 小馬哥(mercyblitz) 08-04 17:51 24 0 投訴 上一篇 Spring 綜合課程大綱 下一篇 Java 核心技術(shù)(基礎) 回復 注冊 或 登錄 語雀進行評論 關(guān)于語雀使用幫助數(shù)據(jù)安全服務協(xié)議English快速注冊 ? 說明 ? 課程詳情 ? 第一部分:Java Core ? 第一節(jié) JDK 核心 API 總覽(1 - 9) ? 第二節(jié) Java API 實踐 ? 第三節(jié) Java 數(shù)據(jù)結(jié)構(gòu)與通用算法 ? 第二部分 Java API 設計 ? 第一節(jié) Java 通用 API 設計 ? 第二節(jié) Java 設計模式 ? 第三節(jié) Java 開源軟件設計模式 ? 第三部分:Java 高并發(fā) ? 第一節(jié) Java 并發(fā)框架(J.U.C)實踐 ? 第二節(jié) Java 并發(fā)原理 ? 第三節(jié) JVM 并發(fā)原理 ? 第四部分:Java 運維管理 ? 第一節(jié) Java ClassLoading ? 第二節(jié) Java Trouble-Shooting ? 第三節(jié) Java 運維 |