搜尋
首頁JavaJava面試題你能答對這些棘手的java面試題麼

你能答對這些棘手的java面試題麼

Mar 15, 2021 am 09:21 AM
java面試題

你能答對這些棘手的java面試題麼

本文為大家整理了幾道國外的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中文網其他相關文章!

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

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

EditPlus 中文破解版

EditPlus 中文破解版

體積小,語法高亮,不支援程式碼提示功能