首頁  >  文章  >  Java  >  多年開發經驗總結的Java面試問題-(三)

多年開發經驗總結的Java面試問題-(三)

王林
王林轉載
2020-08-13 16:59:182783瀏覽

多年開發經驗總結的Java面試問題-(三)

一、Java 中的final關鍵字有哪些用法? 

修飾的變數必須初始化或不能修改,修飾類別不能被繼承,修飾方法不能被重寫。

(更多面試題推薦:java常見面試題

#二、try{}裡面有一個return語句,那麼就緊接在這個try後的finally{}裡的程式碼會不會被執行,什麼時候被執行,在return前還是後? 

會執行會在return執行完之後還沒回傳結果之前執行,return會把回傳結果放到函數堆疊等待finally執行完之後才真正的回傳;

三、闡述final、finally、finalize的差別。

 final用來修飾類別(不能繼承)、變數(不能修改,只能賦值一次)、方法(不能重寫)

finally是用於try{}catch執行過程中有沒有異常捕獲都要執行的finally塊,關閉資源等...

finalize是方法名,對象遺言,用於在垃圾收集器回收清理對象之前要執行的方法,在object類別定義的,所有類別都繼承了它。

(相關教學推薦:java入門教學

四、如何透過反射建立物件?

透過Class物件的newInstance()方法來建立Class物件對應類別的實例

使用Class物件取得指定的Constructor對象,呼叫Constructor物件的newInstance()方法來創建Class物件對應類別的實例。

五、Java 8的新特性 

1、Java 8引進了函數式介面的概念。 Lambda允許把函數當作一個方法的參數,或是把程式碼看成資料。

2、介面的預設方法與靜態方法,在介面中定義預設方法,使用default關鍵字,並提供預設的實作。所有實作這個介面的類別都會接受預設方法的實現,除非子類別提供的自己的實現,在介面中定義靜態方法,使用static關鍵字,也可以提供實作。

3、方法引用,結合Lambda表達式結合使用

(1)建構器引用。語法是Class::new 

(2)靜態方法參考。語法是Class::static_method

(3)特定類別的任意物件方法參考。它的語法是Class::method

(4)特定物件的方法引用,它的語法是instance::method

4、Java 8引入重複註解,相同的註解在同一地方可以聲明多次。重複註解機製本身需要用@Repeatable註解。 Java 8在編譯器層做了最佳化,相同註解會以集合的方式保存,因此底層的原理並沒有改變。

5、擴展註解的支持,java 8擴展了註解的上下文,幾乎可以為任何東西添加註解,包括局部變數、泛型類別、父類別與介面的實現,連方法的異常也能添加註解。

6、引入Optional類,防止空指標異常,Optional類別其實是容器:它可以保存類型T的值,或是保存null。使用Optional類我們就不用顯式進行空指標檢查了。

(影片教學建議:java課程

7、引入Stream API ,函數式程式設計風格,讓程式碼變得連串支援連續、並行聚集操作,簡單明了。

8、JavaScript引擎Nashorn,Nashorn允許在JVM上開發運行JavaScript應用,讓Java與JavaScript相互呼叫。

9、Base64,Base64類別提供了對URL、MIME友善的編碼器與解碼器。

10、Date/Time API (JSR 310),提供了新的java.time包,可以用來取代java.util.Date和java.util.Calendar,一般會用到Clock、LocaleDate、 LocalTime、LocaleDateTime、ZonedDateTime、Duration這些類,對於時間日期的改進還是非常好的。

除了這十大新特性之外,還有另外的一些新特性:

  • #更好的類型推測機制:Java 8在類型推測方面有了很大的提高,這就使程式碼更整潔,不需要太多的強制類型轉換了。

  • 編譯器最佳化:Java 8將方法的參數名稱加入了字節碼中,這樣在運行時透過反射就能取得到參數名,只需要在編譯時使用- parameters參數。

  • 並行(parallel)陣列:支援對陣列進行平行處理,主要是parallelSort()方法,它可以在多核心機器上大幅提高陣列排序的速度。

  • 並發(Concurrency):在新增Stream機制與Lambda的基礎之上,加入了一些新方法來支援聚集操作。

  • Nashorn引擎jjs:基於Nashorn引擎的命令列工具。它接受一些JavaScript原始程式碼為參數,並執行這些原始程式碼。

  • 類別依賴分析器jdeps:可以顯示Java類別的套件層級或類別層級的依賴。

  • JVM的PermGen空間被移除:取代它的是Metaspace(JEP 122)。

以上是多年開發經驗總結的Java面試問題-(三)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除