Heim  >  Artikel  >  Java  >  Können Sie diese schwierigen Java-Interviewfragen beantworten?

Können Sie diese schwierigen Java-Interviewfragen beantworten?

王林
王林nach vorne
2021-03-15 09:21:534139Durchsuche

Können Sie diese schwierigen Java-Interviewfragen beantworten?

Dieser Artikel hat einige ausländische Java-Interviewfragen für Sie zusammengestellt. Ich habe gehört, dass es auch viele Leute verblüfft hat. Werfen wir einen Blick auf diese Interviewfragen und sehen wir, was sie interessant macht.

1. Was ist die Ausgabe des folgenden Java-Codes?

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");
  }
}

Antwort:

gibt „String-Methode“ aus. Erstens ist null kein Objekt in Java. In Java können wir jedem Referenztyp null zuweisen. Strings in Java sind Objekte der Klasse Java.lang.String. Hier entscheidet sich der Java-Compiler dafür, die überladene Methode mit dem spezifischsten Parametertyp aufzurufen. Der String-Typ ist spezifischer als Object, daher wird die Methode method(String s) aufgerufen.

2. Was ist die Ausgabe des folgenden Java-Codes?

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");
    }
  }
}

Antwort:

gibt „num1 == num2“ aus. Immer wenn „ == „ zum Vergleich zweier unterschiedlicher Objektreferenzen verwendet wird, ist der Wert immer „false“. Aber hier werden num1 und num2 aufgrund des Integer-Cachings automatisch geboxt. Also gibt num1 == num2 „true“ zurück. Außerdem erfolgt das Ganzzahl-Caching nur für Werte zwischen -128 und 127.

3. Wie verhindert die Garbage Collection, dass Java-Anwendungen nicht mehr genügend Speicher haben?

Antwort:

Java Garbage Collector kann nicht verhindern, dass Java-Anwendungen nicht mehr über genügend Speicher verfügen. Es löscht einfach ungenutzten Speicher, wenn das Objekt den Gültigkeitsbereich verlässt und nicht mehr benötigt wird. Es kann daher nicht garantiert werden, dass Java-Anwendungen nicht mehr genügend Speicher haben!

(Lernvideo-Sharing: Java-Video-Tutorial)

4. Ist Java „Übergabe als Referenz“ oder „Übergabe als Wert“

Antwort:

Java ist immer „Übergabe als Wert“. Wenn wir jedoch den Wert eines Objekts übergeben, übergeben wir eine Referenz darauf, da die Variable die Objektreferenz und nicht das Objekt selbst speichert. Dies ist jedoch keine „Referenzübergabe“, was für Anfänger verwirrend sein kann.

5. Wie viele String-Objekte werden durch den folgenden Code erstellt

public class Test{
  public static void main(String[] args){
    String s = new String("Hello World");
  }
}

Antwort:

2 String-Objekte werden erstellt. Einer befindet sich im Heap-Speicher und der andere im String-Konstantenpool im Methodenbereich.

6. Was ist die Ausgabe des folgenden Codes?

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);
  }
}

Antwort:

Der erste Satz von print gibt „false“ aus und der zweite Satz von print gibt „true“ aus. Aufgrund von Rundungsfehlern bei Gleitkommazahlen können in der einfachen Binärschreibweise nur Zweierpotenzen genau dargestellt werden. Zahlen, die nicht Zweierpotenzen entsprechen, müssen gerundet werden, damit sie auf eine begrenzte Anzahl von Ziffern passen, sodass 0,1*3 nicht gleich 0,3 ist.

7. Ist es möglich, statische Methoden in Java zu überschreiben oder zu überladen?

Antwort:

Es ist möglich, statische Java-Methoden zu überladen, aber es ist nicht möglich, sie zu überschreiben. Sie können eine andere statische Methode mit demselben Namen in eine Unterklasse schreiben, diese überschreibt jedoch nicht die Methode der Oberklasse. In Java nennt man das Methodenverstecken.

8. Wie kann man am zuverlässigsten testen, ob zwei Double-Werte gleich sind?

Antwort:

Double.compare(d1, d2) == 0

9. Wenn der Try- oder Catch-Block eine Return-Anweisung ausführt, wird dann der Final-Block ausgeführt?

Antwort:

wird ausgeführt. Die einzige Möglichkeit, die Ausführung des „finally“-Blocks zu verhindern, ist die Verwendung von System.exit().

10. Was ist die Ausgabe des folgenden Codes

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");
  } 
}

Antwort:

gibt „Hauptmethode“ aus. Es treten keine Fehler oder Ausnahmen auf, da die Hauptmethode in Java überlastet sein kann. Es muss aus der Hauptmethode heraus aufgerufen werden, um wie andere Methoden ausgeführt zu werden.

Verwandte Empfehlungen: Fragen und Antworten zu Java-Interviews

Das obige ist der detaillierte Inhalt vonKönnen Sie diese schwierigen Java-Interviewfragen beantworten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen