課程目錄: JAVA高級使用技巧及性能調優培訓
        4401 人關注
        (78637/99817)
        課程大綱:

        JAVA高級使用技巧及性能調優培訓

         

         

         

        1 代碼質量
        1.1 什么是代碼質量
        1.2 什么是軟件質量
        1.3 代碼質量與軟件質量
        1.4 代碼質量優化理論
        1.5 提高代碼質量手段
        1.6 代碼質量優化通用準則
        2 代碼質量靜態檢查工具
        2.1 靜態分析技術概述
        2.2 靜態分析技術原理
        2.3 靜態分析技術給我們帶來的好處
        2.4 常用重要靜態分析工具
        2.5 如何優化靜態分析工具
        3 代碼質量優化通用準則
        3.1 避免使用空塊
        3.2 避免使用空類
        3.3 去掉多余的import
        3.4 剪切無效代碼
        3.5 制定命名體系規約
        3.6 去掉重復代碼
        3.7 如何優雅使用switch語句
        3.8 用大寫L代替小寫l定義Long變量
        3.9 避免在一條語句中聲明或賦值多個變量
        3.10 去掉控制標志的臨時變量
        3.11 避免賦予臨時變量過多的角色
        3.12 在for循環內修正增量因子有什么弊端
        3.13 10個溫馨提示內容
        3.14 8個代碼優化技巧
        3.15 1個編程解密
        4 優化類與接口
        4.1 避免創建不必要的對象
        4.2 避免使用對象的淺拷貝
        4.3 如何正確放置靜態區位置
        4.4 為什么不要使用靜態引入
        4.5 如何正確使用instanceof
        4.6 避免實例化特有工具類
        4.7 避免有深度耦合的類關系
        4.8 如何為臃腫的類進行手術
        4.9 如何優化冗贅類
        4.10 避免在接口中出現實現代碼
        5 方法優化技巧
        5.1 小化原則
        5.2 hashcode()與equals()
        5.3 使用string.equal(String)帶來的弊端
        5.4 避免命名不具有繼承關系的同名方法
        5.5 檢查參數的有效性
        5.6 避免使用可變參數
        5.7 如何優化過長參數
        5.8 為什么不要重寫靜態方法
        5.9 避免使用過時的API
        5.10 優雅的集合運算方法
        5.11 避免重復發明輪子
        5.12 如何對臃腫的方法進行瘦身
        6 優化代碼性能
        6.1 避免在大量字符串拼接時用“+”
        6.2 避免在循環體內生成臨時對象
        6.3 在頻繁插入與刪除時使用LinkedList
        6.4 在文件操作后要進行清理動作
        6.5 代碼重構:完美改造
        6.6 避免顯示調用finalized()方法
        7 正確使用異常
        7.1 避免定義繼承Error或Throwable子類
        7.2 避免拋出RuntimeException或Exception
        7.3 避免捕獲NullPointerException或Error
        7.4 避免在finally塊中處理返回值
        7.5 避免使失敗失去原子性
        7.6 如何對異常進行封裝
        7.7 將優雅的異常信息反饋給用戶
        7.8 避免亂用異常
        8 保證多線程代碼質量
        8.1 為什么不要重寫start()方法
        8.2 避免使用非線程安全的初始化方法
        8.3 用final成員對象作為同期化對象鎖
        8.4 在synchronized內使用wait()方法
        8.5 盡量縮小同期化代碼范圍
        9 架構優化
        9.1 單一職責原則
        9.2 接口隔離原則
        9.3 依賴倒置原則
        9.4 里式替換原則
        9.5 *少知道原則
        9.6 如何擴展外部類功能
        9.7 如何梳理混雜的架構體系
        10 包優化
        10.1 發布等價原則
        10.2 共同重用原則
        10.3 共同封閉原則
        10.4 無環依賴原則
        10.5 如何保持包的清晰
        10.6 如何抽出框架層次
        10.7 如何提取框架工程
        11 優良代碼風格
        11.1 如何優化代碼格式工具
        11.2 如何統一標準的代碼格式
        11.3 養成良好的代碼注釋習慣
        11.4 里式替換原則
        11.5 *少知道原則
        11.6 如何擴展外部類功能
        11.7 如何梳理混雜的架構體系
        12 初識JVM
        12.1 JVM的概念
        12.2 JVM發展歷史
        12.3 JVM種類
        12.4 Java語言規范
        12.5 JVM規范
        13 JVM運行機制
        13.1 JVM啟動流程
        13.2 JVM基本結構
        13.3 內存模型
        13.4 編譯和解釋運行的概念
        14 常用JVM配置參數
        14.1 Trace跟蹤參數
        14.2 堆的分配參數
        14.3 棧的分配參數
        15 GC算法與種類
        15.1 GC的概念
        15.2 GC算法、引用計數法、標記清除、標記壓縮、復制算法
        15.3 可觸及性
        15.4 Stop-The-World
        16 GC參數
        16.1 堆的回顧
        16.2 串行收集器
        16.3 并行收集器
        16.4 CMS收集器
        16.5 Tomcat實例演示
        17 Java堆分析
        17.1 內存溢出(OOM)的原因
        17.2 MAT使用基礎
        17.3 淺堆(Shallow Heap)與深堆(Retained Heap)
        17.4 顯示入引用(incoming)和出引用(outgoing)
        17.5 支配樹
        17.6 使用Visual VM分析堆
        17.7 Tomcat OOM分析案例