Häufige grundlegende Java-Interviewfragen
Was ist der Unterschied zwischen JDK und JRE?
JDK: Die Abkürzung für Java Development Kit, Java Development Tool Kit, stellt eine Java-Entwicklungsumgebung und eine Laufumgebung bereit.
JRE: Die Abkürzung für Java Runtime Environment, Java Runtime Environment, stellt die erforderliche Umgebung für den Betrieb von Java bereit. (Empfohlene Studie: Gemeinsame Fragen zu Java-Interviews)
Insbesondere enthält JDK tatsächlich JRE und auch den Compiler Javac, der Java-Quellcode kompiliert, sowie viele Debugging- und Java-Programme Werkzeuge zur Analyse. Einfach ausgedrückt: Wenn Sie Java-Programme ausführen müssen, müssen Sie nur JRE installieren. Wenn Sie Java-Programme schreiben müssen, müssen Sie JDK installieren. Was ist der Unterschied zwischen
== und equal?
Die Auswirkungen von == sind für Basistypen und Referenztypen wie folgt unterschiedlich:
Basistypen: Es wird verglichen, ob die Werte gleich sind
Referenztyp: Was verglichen wird, ist, ob die Referenzen gleich sind;
quals ist im Wesentlichen ==, aber String und Integer überschreiben die Methode equal und wandeln sie in einen Wertvergleich um.
== Bei Basistypen handelt es sich um einen Wertvergleich, bei Referenztypen handelt es sich um einen Referenzvergleich und gleich ist standardmäßig ein Referenzvergleich, aber viele Klassen überschreiben die Methode „equals“, z. B. String, Integer usw. wandelt es in einen Wertevergleich um, sodass unter normalen Umständen gleich vergleicht, ob die Werte gleich sind.
Wenn der hashCode() der beiden Objekte gleich ist, dann muss auch equal() wahr sein, oder?
Nein, der hashCode() der beiden Objekte ist derselbe und equal() ist möglicherweise nicht wahr.
String str1 = "通话"; String str2 = "重地"; System.out.println(String.format("str1:%d | str2:%d", str1.hashCode(),str2.hashCode())); System.out.println(str1.equals(str2));
Ausführungsergebnis:
str1:1179395 | str2:1179395 false
Codeinterpretation: Offensichtlich sind die hashCode() von „call“ und „powerful place“ gleich, aber equal() ist falsch Denn in einer Hash-Tabelle bedeutet gleich hashCode(), dass die Hash-Werte zweier Schlüssel-Wert-Paare gleich sind. Gleiche Hash-Werte bedeuten jedoch nicht unbedingt, dass die Schlüssel-Wert-Paare gleich sind.
Welche Rolle spielt final in Java?
Die letzte geänderte Klasse wird als letzte Klasse bezeichnet und kann nicht vererbt werden.
Endgültig geänderte Methoden können nicht überschrieben werden.
Endgültig geänderte Variablen werden Konstanten genannt. Nach der Initialisierung kann der Wert nicht geändert werden.
Was ist Math.round(-1.5) in Java gleich?
ist gleich -1.
Ist String ein grundlegender Datentyp?
String ist kein Grundtyp. Es gibt 8 Grundtypen: Byte, Boolean, Char, Short, Int, Float, Long, Double und String ist ein Objekt.
Welche Klassen gibt es zum Betreiben von Strings in Java? Was ist der Unterschied zwischen ihnen?
Zu den Klassen, die mit Strings arbeiten, gehören: String, StringBuffer und StringBuilder.
Der Unterschied zwischen String und StringBuffer und StringBuilder besteht darin, dass String ein unveränderliches Objekt deklariert. Jede Operation generiert ein neues String-Objekt und zeigt dann den Zeiger auf das neue String-Objekt, während StringBuffer und StringBuilder in verwendet werden können Die Operation wird auf Basis des Originalobjekts ausgeführt. Daher ist es am besten, String nicht zu verwenden, wenn sich der Inhalt der Zeichenfolge häufig ändert.
Der größte Unterschied zwischen StringBuffer und StringBuilder besteht darin, dass StringBuffer threadsicher ist, während StringBuilder nicht threadsicher ist. Die Leistung von StringBuilder ist jedoch höher als die von StringBuffer. Daher wird empfohlen, StringBuilder einzeln zu verwenden -Threaded-Umgebung und in einer Multithread-Umgebung wird die Verwendung von StringBuffer empfohlen.
Ist String str="i" dasselbe wie String str=new String("i")?
ist anders, weil die Speicherzuweisungsmethode anders ist. String str="i" wird von der Java Virtual Machine dem Konstantenpool zugewiesen und String str=new String("i") wird dem Heap-Speicher zugewiesen.
Wie kann man eine Zeichenfolge umkehren?
Verwenden Sie die reverse()-Methode von StringBuilder oder stringBuffer.
Beispielcode:
// StringBuffer reverse StringBuffer stringBuffer = new StringBuffer(); stringBuffer.append("abcdefg"); System.out.println(stringBuffer.reverse()); // gfedcba // StringBuilder reverse StringBuilder stringBuilder = new StringBuilder(); stringBuilder.append("abcdefg"); System.out.println(stringBuilder.reverse()); // gfedcba
Was sind die gängigen Methoden der String-Klasse?
indexOf():返回指定字符的索引。 charAt():返回指定索引处的字符。 replace():字符串替换。 trim():去除字符串两端空白。 split():分割字符串,返回一个分割后的字符串数组。 getBytes():返回字符串的 byte 类型数组。 length():返回字符串长度。 toLowerCase():将字符串转成小写字母。 toUpperCase():将字符串转成大写字符。 substring():截取字符串。 equals():字符串比较。
Müssen abstrakte Klassen abstrakte Methoden haben?
Nein, abstrakte Klassen müssen nicht unbedingt abstrakte Methoden haben.
Beispielcode:
abstract class Cat { public static void sayHi() { System.out.println("hi~"); } }
Im obigen Code verfügt die abstrakte Klasse nicht über abstrakte Methoden, kann aber normal ausgeführt werden.
Was sind die Unterschiede zwischen gewöhnlichen Klassen und abstrakten Klassen?
Gewöhnliche Klassen können keine abstrakten Methoden enthalten, während abstrakte Klassen abstrakte Methoden enthalten können.
Abstrakte Klassen können nicht direkt instanziiert werden, gewöhnliche Klassen können jedoch direkt instanziiert werden.
Können abstrakte Klassen mit final geändert werden?
Nein, die Definition einer abstrakten Klasse dient der Erbschaft durch andere Klassen. Wenn sie als final definiert ist, kann die Klasse nicht vererbt werden, was zu Konflikten untereinander führt, sodass final die abstrakte Klasse nicht ändern kann. Wie in der Abbildung unten gezeigt, gibt der Editor außerdem eine Fehlermeldung aus:
Was ist der Unterschied zwischen einer Schnittstelle und einer abstrakten Klasse?
Implementierung: Unterklassen abstrakter Klassen verwenden Erweiterungen, um Schnittstellen zu erben; sie müssen Implementierungen verwenden, um die Schnittstelle zu implementieren.
构造函数:抽象类可以有构造函数;接口不能有。
main 方法:抽象类可以有 main 方法,并且我们能运行它;接口不能有 main 方法。
实现数量:类可以实现很多个接口;但是只能继承一个抽象类。
访问修饰符:接口中的方法默认使用 public 修饰;抽象类中的方法可以是任意访问修饰符。
java 中 IO 流分为几种?
按功能来分:输入流(input)、输出流(output)。
按类型来分:字节流和字符流。
字节流和字符流的区别是:字节流按 8 位传输以字节为单位输入输出数据,字符流按 16 位传输以字符为单位输入输出数据。
BIO、NIO、AIO 有什么区别?
BIO:Block IO 同步阻塞式 IO,就是我们平常使用的传统 IO,它的特点是模式简单使用方便,并发处理能力低。
NIO:New IO 同步非阻塞 IO,是传统 IO 的升级,客户端和服务器端通过 Channel(通道)通讯,实现了多路复用。
AIO:Asynchronous IO 是 NIO 的升级,也叫 NIO2,实现了异步非堵塞 IO ,异步 IO 的操作基于事件和回调机制。
Files的常用方法都有哪些?
Files.exists():检测文件路径是否存在。 Files.createFile():创建文件。 Files.createDirectory():创建文件夹。 Files.delete():删除一个文件或目录。 Files.copy():复制文件。 Files.move():移动文件。 Files.size():查看文件个数。 Files.read():读取文件。 Files.write():写入文件。
Das obige ist der detaillierte Inhalt vonHäufige grundlegende Java-Interviewfragen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen





Leitfaden zur perfekten Zahl in Java. Hier besprechen wir die Definition, Wie prüft man die perfekte Zahl in Java?, Beispiele mit Code-Implementierung.

Leitfaden für Weka in Java. Hier besprechen wir die Einführung, die Verwendung von Weka Java, die Art der Plattform und die Vorteile anhand von Beispielen.

Leitfaden zur Smith-Zahl in Java. Hier besprechen wir die Definition: Wie überprüft man die Smith-Nummer in Java? Beispiel mit Code-Implementierung.

In diesem Artikel haben wir die am häufigsten gestellten Fragen zu Java Spring-Interviews mit ihren detaillierten Antworten zusammengestellt. Damit Sie das Interview knacken können.

Java 8 führt die Stream -API ein und bietet eine leistungsstarke und ausdrucksstarke Möglichkeit, Datensammlungen zu verarbeiten. Eine häufige Frage bei der Verwendung von Stream lautet jedoch: Wie kann man von einem Foreach -Betrieb brechen oder zurückkehren? Herkömmliche Schleifen ermöglichen eine frühzeitige Unterbrechung oder Rückkehr, aber die Stream's foreach -Methode unterstützt diese Methode nicht direkt. In diesem Artikel werden die Gründe erläutert und alternative Methoden zur Implementierung vorzeitiger Beendigung in Strahlverarbeitungssystemen erforscht. Weitere Lektüre: Java Stream API -Verbesserungen Stream foreach verstehen Die Foreach -Methode ist ein Terminalbetrieb, der einen Vorgang für jedes Element im Stream ausführt. Seine Designabsicht ist

Anleitung zum TimeStamp to Date in Java. Hier diskutieren wir auch die Einführung und wie man Zeitstempel in Java in ein Datum konvertiert, zusammen mit Beispielen.

Kapseln sind dreidimensionale geometrische Figuren, die aus einem Zylinder und einer Hemisphäre an beiden Enden bestehen. Das Volumen der Kapsel kann berechnet werden, indem das Volumen des Zylinders und das Volumen der Hemisphäre an beiden Enden hinzugefügt werden. In diesem Tutorial wird erörtert, wie das Volumen einer bestimmten Kapsel in Java mit verschiedenen Methoden berechnet wird. Kapselvolumenformel Die Formel für das Kapselvolumen lautet wie folgt: Kapselvolumen = zylindrisches Volumenvolumen Zwei Hemisphäre Volumen In, R: Der Radius der Hemisphäre. H: Die Höhe des Zylinders (ohne die Hemisphäre). Beispiel 1 eingeben Radius = 5 Einheiten Höhe = 10 Einheiten Ausgabe Volumen = 1570,8 Kubikeinheiten erklären Berechnen Sie das Volumen mithilfe der Formel: Volumen = π × R2 × H (4

Java ist eine beliebte Programmiersprache, die sowohl von Anfängern als auch von erfahrenen Entwicklern erlernt werden kann. Dieses Tutorial beginnt mit grundlegenden Konzepten und geht dann weiter zu fortgeschrittenen Themen. Nach der Installation des Java Development Kit können Sie das Programmieren üben, indem Sie ein einfaches „Hello, World!“-Programm erstellen. Nachdem Sie den Code verstanden haben, verwenden Sie die Eingabeaufforderung, um das Programm zu kompilieren und auszuführen. Auf der Konsole wird „Hello, World!“ ausgegeben. Mit dem Erlernen von Java beginnt Ihre Programmierreise, und wenn Sie Ihre Kenntnisse vertiefen, können Sie komplexere Anwendungen erstellen.
