本文為大家整理了幾道國外的java面試題,聽說也難倒了不少人。下面就讓我們一起來看看這些面試題,看看他們到底有趣在哪裡。
1、下面Java程式碼的輸出是什麼?
public class Test { public static void main(String[] args) { method(null); } public static void method(Object o) { System.out.println("Object method"); } public static void method(String s) { System.out.println("String method"); } }
答案:
將列印「String method」。首先,null 在 Java 中不是一個對象,在 Java 中我們可以將 null 賦給任何一個參考型別。而 Java 中的字串是 Java.lang.String 類別的物件。在這裡,Java 編譯器會選擇使用最特定的參數類型來呼叫重載方法。而String類型比Object更為具體,所以會呼叫method(String s)方法。
2、下面Java程式碼的輸出是什麼?
public class Test{ public static void main(String[] args){ Integer num1 = 100; Integer num2 = 100; if(num1 == num2){ System.out.println("num1 == num2"); } else{ System.out.println("num1 != num2"); } } }
答案:
將列印「num1 == num2」。每當使用“ == ”比較兩個不同的物件參考時,值總是“false”。但在這裡,由於 Integer 緩存,num1和 num2是自動裝箱的。因此num1 == num2回傳「true」。同時,整數快取只會發生在-128到127之間的值。
3、垃圾收集是如何防止Java應用程式記憶體不足的?
答案:
Java 垃圾收集器無法防止 Java 應用程式耗盡記憶體。它只是在物件超出範圍且不再需要時清除未使用的記憶體。因此,它不能保證防止Java應用程式不耗盡記憶體!
(學習影片分享:java影片教學)
4、Java 是「按引用傳遞」還是「按值傳遞」
#答案:
Java總是「按值傳遞」。然而,當我們傳遞一個物件的值時,我們傳遞對它的引用,因為變數儲存物件引用,而不是物件本身。但這不是“引用傳遞”,這可能會讓初學者感到困惑。
5、下面的程式碼建立了多少個String物件
public class Test{ public static void main(String[] args){ String s = new String("Hello World"); } }
答案:
已經建立了2個String物件。一個在堆記憶體中,一個在方法區中的字串常數池中。
6、下面的程式碼輸出是什麼
public class Test{ public static void main(String[] arr){ System.out.println(0.1*3 == 0.3); System.out.println(0.1*2 == 0.2); } }
答案:
第一句print輸出false,第二句print輸出true。因為浮點數的誤差捨入導致,只有2的冪數可以用簡單的二進位表示法精確表示。不對應2次方的數字必須四捨五入以適應有限數量的位,因此,0.1*3是不等於0.3的。
7、有沒有可能在 Java 中重寫或重載靜態方法?
答案:
重載(overload)靜態 Java 方法是可能的,但是不可能重寫(override)它們。你可以在子類別中編寫具有相同命名的另一個靜態方法,但它不會重寫超類別方法。它在 Java 中被稱為方法隱藏。
8、測試兩個double值是否相等的最可靠的方法是什麼?
答案:
Double.compare(d1, d2) == 0
9、如果 try 或 catch 區塊執行一個 return 語句,finally 區塊是否會被執行?
答案:
會執行。阻止 finally 區塊執行的唯一方法是使用System.exit()。
10、下面的程式碼輸出是什麼
public class Test{ public static void main(String[] args){ System.out.println("main method"); } public static void main(String args){ System.out.println("Overloaded main method"); } }
答案:
#會列印「main method」。不會有錯誤或異常,因為 main 方法可以在 Java 中重載。必須從 main 方法內部呼叫它才能像其他方法一樣執行。
相關推薦:java面試題目及答案
#以上是你能答對這些棘手的java面試題麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!