Heim >Java >javaLernprogramm >Wissenspunkte für Java-Interviews

Wissenspunkte für Java-Interviews

angryTom
angryTomnach vorne
2019-08-10 17:47:022909Durchsuche

Wissenspunkte für Java-Interviews

1. Java-Dateien werden von JVM in Bytecode-Dateien, also .class-Dateien, kompiliert. Wenn die Bytecode-Dateien in verschiedenen Betriebssystemen ausgeführt werden, konvertiert das Betriebssystem die Bytecode-Dateien in Bytecode-Dateien. Codedateien werden in Maschinencodedateien kompiliert. Dies ist Java plattformübergreifend


2. Lassen Sie uns zunächst klarstellen, dass das GC-Recycling von Java vollständig automatisch erfolgt. Es gibt keine relevante API für das manuelle Recycling. Alle Speicherzuweisungs- und Recyclingberechtigungen sind vorhanden Es gibt keine absolute Möglichkeit, die Speicherbereinigung zu erzwingen, aber Sie können es wie folgt tun:

1) Weisen Sie Objekten, auf die nicht mehr verwiesen wird, rechtzeitig deren Referenzen zu Benehmen. obj = null;

 2) Wenn der Speicher sehr knapp ist, rufen Sie die Methode System.gc () auf, um dem Garbage Collector vorzuschlagen, mit der Müllsammlung zu beginnen, und benachrichtigen Sie den GC zur Ausführung, die Java-Sprachspezifikation tut dies jedoch nicht garantieren, dass der GC ausgeführt wird.


3. Standardwert und Wertebereich von Java-Basistypen

Ganzzahltyp Byte (1 Byte) kurz (2 Bytes) int (4 Bytes) lang (8 Bytes)

Zeichentyp char (2 Bytes)

Gleitkommatyp float (4 Bytes) double (8 Bytes)

Wissenspunkte für Java-Interviews


4. Die ASCII-Codewerte allgemeiner Zeichen sind wie folgt: Der ASCII-Codewert eines Leerzeichens ist 32; der ASCII-Codewert der Zahlen 0 bis 9 ist 48 bis 57; der ASCII-Codewert ​​von „Z“ sind jeweils 65 bis 90; die ASCII-Codewerte der Kleinbuchstaben „a“ bis „z“ sind jeweils 97 bis 122.


5. Für Java-Bezeichner gelten die folgenden Benennungsregeln:

 1) Es besteht aus 26 englischen Buchstaben in Groß- und Kleinschreibung, Zahlen: 0-9, Symbolen: _ $ ¥

 2) Der Bezeichner sollte mit den Buchstaben _, $ beginnen.

 3) Der Bezeichner darf kein Schlüsselwort sein.


6, abstrakte Klassen und Schnittstellen

 1) Über abstrakte Klassen

 Vor JDK 1.8 waren die Standardzugriffsrechte abstrakter Klassenmethoden geschützt

Mit JDK 1.8 wird die Standardzugriffsberechtigung abstrakter Klassenmethoden zum Standard

2) Über die Schnittstelle

Vor JDK 1.8 müssen die Methoden in der Schnittstelle öffentlich sein

JDK In JDK 1.8 können die Methoden in der Schnittstelle öffentlich oder standardmäßig sein

In JDK 1.9 können die Methoden in der Schnittstelle privat sein


7. Box ein- und auspacken

Der Basisdatentyp wird durch Boxen in eine Verpackungsklasse umgewandelt (z. B.: int --> Integer).

Das Konvertieren einer Wrapper-Klasse in einen Basisdatentyp ist Unboxing (z. B.: Integer --> int).

Die Wrapper-Klasse ist der Referenztyp und der Basisdatentyp ist der Werttyp.

Durch Boxing- und Unboxing-Vorgänge kann eine Brücke zwischen Werttypen und Referenztypen gebaut werden. Mit anderen Worten: Werttypen und Referenztypen können einfach ineinander konvertiert werden, Boxing und Unboxing können das System einheitlich untersuchen und jeder Werttyp kann letztendlich als Objekt verarbeitet werden.


8, Serialisierung und Deserialisierung

Java instanziiert während der Serialisierung keine statischen Variablen und transientenmodifizierten Variablen, da statische Elemente eine Klasse darstellen und vorübergehende Objekte Es wird erklärt, dass diese beiden Arten von Datenelementen nicht serialisiert werden können


9. Java verfügt über zwei Übertragungsmethoden: Wertübertragung und Referenzübertragung. Basistypen und solche, die auf diese Weise mit string str = „aaa“ erstellt wurden, werden alle als Wert übergeben, und Arrays werden alle als Referenz übergeben, daher muss bei der Beurteilung der formalen Parameter der Funktion besondere Aufmerksamkeit geschenkt werden.


10. Java-Garbage-Collection-Mechanismus

Die Garbage-Collection zielt hauptsächlich auf das Recycling des Heap-Bereichs ab, da der Speicher im Stapelbereich zusammen mit dem Thread freigegeben wird. Der Heap ist in drei Bereiche unterteilt: Junge Generation, Alte Generation und Permanente Generation (Methodenbereich).

1) Junge Generation: Wenn ein Objekt erstellt (neu) wird, wird das Objekt normalerweise in Young abgelegt (mit Ausnahme einiger Objekte, die relativ viel Speicher belegen) Nach einem bestimmten Minor GC (Speicherrecycling für die junge Generation). Generation), es ist immer noch so, dass Live-Objekte in die alte Generation verschoben werden (einige spezifische Bewegungsdetails werden weggelassen).

2) Alte Generation: Es handelt sich um die oben erwähnte umgezogene junge Generation und einige größere Objekte. Major GC (FullGC) ist für die Sammlung der alten Generation vorgesehen.

 3) Permanente Generierung: Es speichert endgültige Konstanten, statische Variablen und Konstantenpools.


11. Paketreferenz

Import java.util.* ;

Kann auf alle Klassen im Verzeichnis java/util zugreifen, aber nicht auf java/util Unterverzeichnis Alle Klassen unter


12. Konstruktoren können nicht vererbt werden und Konstruktoren können nur explizit oder implizit aufgerufen werden. (Dies gilt sowohl mit als auch ohne Ginseng)


13. Dateien werden in Textdateien und Binärdateien unterteilt. Computer verstehen nur Binärdateien, es handelt sich also tatsächlich um unterschiedliche Arten, Binärdateien zu interpretieren. Textdateien sind Zeichen, die in verschiedenen Kodierungsformaten wie ASCII, Unicode usw. angezeigt werden. Die Suffixnamen von Textdateien im Fenster umfassen „.txt“, „.log“, Quellcodedateien verschiedener Programmiersprachen usw. Binärdateien sind Textdokumente können beim Öffnen nicht gelesen werden. Solange die Datei mit Text geöffnet werden kann, kann das angezeigte Ergebnis nicht das sein, was Sie wollen Beim Lesen mit speziellen Anwendungen wie „.png“, „.bmp“ usw. sind die meisten Dateien auf dem Computer immer noch Binärdateien


14. try ist nur für die Behandlung von Laufzeitausnahmen geeignet Try + Catch eignet sich für die Behandlung von Laufzeitausnahmen und normalen Ausnahmen. Mit anderen Worten: Wenn Sie nur try verwenden, um gewöhnliche Ausnahmen zu behandeln, ohne Catch zu verwenden, wird die Kompilierung nicht erfolgreich sein, da der Compiler streng vorschreibt, dass normale Ausnahmen, wenn sie abgefangen werden, zur weiteren Verarbeitung explizit mit Catch deklariert werden müssen. Es gibt keine solche Bestimmung für Laufzeitausnahmen zur Kompilierungszeit, daher kann „catch“ weggelassen werden, und der Compiler wird es verständlich finden, wenn Sie „catch“ hinzufügen.


15. Rohre

Für Rohre gibt es folgende Typen:

① Gewöhnliche Rohre (PIPE): Normalerweise gibt es zwei Einschränkungen, eine ist Einzelarbeit , das heißt, es kann nur in eine Richtung übertragen werden; zweitens, Blut, das häufig zwischen Vater- und Sohnprozessen (oder zwischen Prozessen mit Blutsverwandtschaft) verwendet wird.

 ②Stream-Pipe (s_pipe): Die erste Einschränkung oben wird entfernt und eine bidirektionale Übertragung wird erreicht.

 ③ Named Pipe (name_pipe): Die zweite oben erwähnte Einschränkung wird entfernt und die Kommunikation zwischen verschiedenen Prozessen ohne Blutsverwandtschaft wird realisiert.

Voraussetzung ist, dass die Kommunikation zwischen verschiedenen Servern in Vollduplexform erfolgen muss, während die Pipeline nur Halbduplex sein darf. Obwohl sie bidirektional sein kann, kann gleichzeitig nur eine Übertragung in eine Richtung erfolgen Der Unterschied zwischen Duplex und Halbduplex kann wie folgt verstanden werden:

Wissenspunkte für Java-Interviews

Empfohlenes Tutorial: Java-Einsteigervideo

Ursprüngliche Adresse: https://blog.csdn.net/qq_33945246/article/details/90040041

Das obige ist der detaillierte Inhalt vonWissenspunkte für Java-Interviews. 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