高级Java教程
課程大綱
學習Java基礎很容易。 但是,真正鉆研該語言并研究其更高級的概念和細微差別將使您成為一名出色的Java開發人員。 網絡上充斥著“軟”,“便宜”,“低端” Java教程,但是所缺少的實際上是將您帶入新的高度的材料。
本課程旨在幫助您最有效地使用Java。 它討論了高級主題,包括對象創建,并發,序列化,反射等。 它將指導您完成Java掌握的過程!
關于作者
Andriy在烏克蘭的日托米爾工程技術學院獲得了計算機科學碩士學位。 在過去的15年中,他一直擔任許多成功項目的顧問/軟件開發人員/高級軟件開發人員/團隊負責人。
Andriy在企業體系結構,Web開發,軟件開發實踐和軟件平臺,面向對象的分析和設計,豐富的用戶界面,關系數據庫管理系統,NoSQL解決方案和操作系統的開發方面擁有豐富的經驗。
經驗教訓
在本課程中,我們將討論新類實例(對象)的創建。 我們將看到如何使用構造函數以及更高級的創建技術,例如靜態初始化,構造模式等。 此外,還將介紹更多主題,例如初始化塊的使用,終結器的使用以及垃圾回收器如何參與該過程。
在本課程中,我們將了解如何使用所有對象通用的方法。 所有對象共有的方法由父Object類繼承。 這些方法包括equals和hashCode方法,以及toString和equals方法。 此外,我們將討論equals和==運算符以及新的Java 7 Objects類的一些有用的幫助器類,這些類可用于繁重地使用我們的功能。
在本課程中,我們將深入研究Java語言提供的基礎構建塊,并介紹一些設計原則,旨在幫助您做出更好的設計決策。 我們將討論具有默認方法(Java 8的新功能),抽象類和最終類,不可變類,繼承,組合的接口和接口,并簡要地回顧一下我們曾經提到的可見性(或可訪問性)規則。
在本課程中,我們將討論泛型。 泛型的概念代表了類型的抽象(C ++開發人員將其稱為模板)。 這是一個非常強大的概念,它允許開發抽象算法和數據結構并提供具體類型以供以后操作。 泛型徹底改變了Java程序的編寫方式,提供了更強的類型保證,并使代碼更加安全。 在本節中,我們將從接口,類和方法開始介紹泛型的用法。 盡管提供了很多好處,但是泛型確實引入了一些局限性和副作用,我們也將介紹這些局限性和副作用。
在本課程中,我們將討論枚舉(或枚舉)和注釋。 枚舉的概念很簡單,但很方便:它表示一組固定的,恒定的值。 實際上,這意味著通常使用枚舉來設計具有恒定可能狀態的概念。 另一方面,注釋是一種特殊的元數據,可以與Java語言的不同元素和構造相關聯。 有趣的是,注釋在消除Java生態系統中幾乎所有地方都使用的樣板XML描述符方面做出了很大貢獻。 他們介紹了一種新的,類型安全且健壯的配置和自定義技術方法。
在本課程中,我們將花一些時間討論與Java設計和實現方法有關的不同方面。 用Java編寫方法非常容易,但是有很多事情可以使您的方法更具可讀性和效率。 我們將討論方法設計的各種細節,例如方法主體和簽名,技術(例如方法重載和重寫),優化(例如內聯和不變性)以及其他雜項(例如文檔)。
在本課程中,我們將繼續討論Java良好編程風格和健壯設計的一般原理。 我們將討論變量范圍,類字段和局部變量,方法參數和局部變量,裝箱和拆箱,接口,字符串,命名約定,標準庫,不變性,測試等等!
在本課程中,我們將繼續討論如何以及何時使用異常。 Java中的異常是在程序流中發出異常(或異常)情況信號的重要工具,可能會阻止其進一步發展。 我們將使用try-with-resources,與lambda結合使用的異常,標準Java異常,如何定義我們自己的異常,記錄異常并記錄它們,來討論Checked和unchecked異常!
在本課程中,我們將研究Java可以為開發人員提供什么,以幫助他們在并發世界中編寫健壯而安全的應用程序。 為了充分利用可用計算單元的全部功能,應用程序應準備好支持同時運行并爭奪資源和內存的多個執行流。 我們將討論線程和線程組,并發性,同步和不變性,期貨,執行器和線程池,原子操作等等!
在本課程中,我們將研究序列化:將Java對象轉換為可用于在同一(或其他)環境中存儲和稍后重構的格式的過程。 序列化不僅允許將Java對象保存到持久性存儲中或從持久性存儲中加載Java對象,而且還是現代分布式系統通信中非常重要的組件。 我們將討論Serializable和Externalizable接口,JAXB和JSON-P,序列化的危險,并且我們將超越Java標準庫和規范!
在本課程中,我們將討論一個非常有趣的主題,即反射。 反射是程序在運行時檢查或自檢的能力。 反射是一項極其有用且功能強大的功能,它可以極大地擴展程序的功能,以在執行過程中執行其自身的檢查,修改或轉換,而無需一行代碼更改。 我們將討論Reflection API,如何訪問通用類型參數,方法句柄和方法參數名稱,以及一些反射陷阱!
在本課程中,我們將完全專注于Java中的腳本和動態語言支持。 從Java 7開始,JVM就直接支持現代動態語言(也通常稱為腳本語言),并且Java 8版本對該空間進行了進一步的增強。 我們將討論動態語言支持和腳本API,以及在JVM上運行的流行腳本語言,例如Javascript,Groovy,Ruby和Python!
在本課程中,我們將對Java編譯器API進行10000英尺的觀察。 該API提供了對Java編譯器本身的編程訪問,并允許開發人員從應用程序代碼中即時從源文件編譯Java類。 我們還將遍歷Java編譯器樹API,該API提供對Java語法分析器功能的訪問。 通過使用此API,Java開發人員可以直接插入語法分析階段并對正在編譯的Java源代碼進行后期分析。
在本課程中,我們將揭露注釋處理的魔力,該處理常用于僅由注釋驅動的檢查,修改或生成源代碼。 本質上,注釋處理器是Java編譯器的某種插件。 明智地使用注釋處理器可以大大簡化Java開發人員的工作,因此這就是為什么它們通常與許多流行的庫和框架捆綁在一起的原因。 批注處理器通常用于檢查代碼庫是否存在特定批注,并根據用例執行以下操作:生成一組源文件或資源文件,更改(修改)現有源代碼或分析現有源代碼并生成診斷信息消息。
在本課程的最后一課中,我們將討論Java代理,對于普通Java開發人員來說,這是真正的魔咒。 Java代理能夠通過直接修改字節碼來“侵入”運行時在JVM上運行的Java應用程序的執行。 Java代理的功能和危險一樣強大:它們幾乎可以執行所有操作,但是如果出現問題,它們很容易使JVM崩潰。
請確保轉發此消息,讓您的社交粉絲知道!
高級#Java教程-免費的超級課程http://t.co/IfkEYyIkYZ pic.twitter.com/Ew5qOyyyCr
— Java Code Geeks(@javacodegeeks) ,2015年10月16日
翻譯自: https://www.javacodegeeks.com/2015/09/advanced-java.html
總結
- 上一篇: 图片加文字如何制作?建议收藏下面这几个方
- 下一篇: Spark入门:也可以用Java创建轻量