搜尋
首頁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脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

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

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。