15 grundlegende Java-Programmierung Interview Fragen-Motivation Knoten

In der aktuellen Internetumgebung steigt die Nachfrage nach Programmierern und Ingenieuren, und entsprechend steigen auch mehr Menschen, die in die Maschinenbauindustrie investieren möchten. Daher erhöhen viele große Unternehmen allmählich ihre Anforderungen an Interviews für Ingenieurpositionen. In Java Interview, der Interviewer konzentriert sich darauf, ob das Grundwissen solide ist. Die grundlegenden Fragen zum Java-Programmierinterview sind die Hausaufgaben, die vor dem Interview gemacht werden müssen. Die 15 grundlegenden Fragen zum Java-Programmierinterview sind unten zusammengestellt. Freunde, die am Java-Interview teilnehmen möchten kann Folgendes lernen.

image.png

1. Wo ist die Sicherheit der Java-Sprachstufe?

Antwort: Java hat die leistungsstarken, aber gefährlichen Zeiger entfernt und durch Referenzen ersetzt. Da der Zeiger verschoben werden kann, kann der Zeiger auf einen Speicherbereich zeigen, unabhängig davon, ob der Bereich verfügbar ist. Dies ist gefährlich, da die Speicheradresse möglicherweise wichtige Daten speichert oder von anderen Programmen belegt wird und Zeiger verwendet. Dies ist auch einfach damit das Array die Grenze überschreitet.

Garbage Collection-Mechanismus: Der Programmierer muss die Speichererfassung nicht direkt steuern, und der Garbage Collector sammelt automatisch den nicht mehr verwendeten Speicher im Hintergrund. Vermeiden Sie, dass das Programm vergisst, rechtzeitig zu recyceln, was zu Speicherlecks führt. Vermeiden Sie die Wiederherstellung von Programmfehlern im Speicher der Kernklassenbibliothek des Programms, was zu Systemabstürzen führen kann.

Ausnahmebehandlungsmechanismus: Der Java-Ausnahmemechanismus basiert hauptsächlich auf fünf Schlüsselwörtern: try, catch, finally, throw und throw.

Erzwungene Typkonvertierung: Nur wenn die Regeln für die erzwungene Konvertierung erfüllt sind, kann die erzwungene Konvertierung erfolgreich sein.

2. Wie ist die Beziehung zwischen JDK, JRE und JVM?

Antwort: jdk ist ein Entwicklungskit, das bei der Entwicklung von JAVA-Programmen verwendet wird, und es gibt auch eine JRE-Betriebsumgebung JRE. JRE ist die Betriebsumgebung, die für die Ausführung von Java-Programmen erforderlich ist. Wenn Sie also nur Java-Programme ausführen, anstatt sie zu entwickeln, können Sie vorhandene Java-Programme ausführen, indem Sie JRE installieren. Sowohl JDk als auch JRE enthalten die Java Virtual Machine JVM, und die Java Virtual Machine enthält den Interpreter und Klassenlader vieler Anwendungsprogramme usw.

3. Was sind die Ähnlichkeiten und Unterschiede zwischen if-Anweisungen mit mehreren Zweigen und switch-Anweisungen mit mehreren Zweigen?

Antwort: Das Gleiche: Sie sind alle Zweigaussagen und beurteilen und behandeln mehr als einen Fall.

Unterschied: Der Schalter ist besser für Situationen mit mehreren Zweigen geeignet, dh es gibt viele Situationen, die beurteilt und verarbeitet werden müssen. Der Typ der Beurteilungsbedingung ist einfach und es gibt nur einen Eintrag. Nachdem der Zweig ausgeführt wurde (falls vorhanden) kein Ausbruch), wird es ohne Beurteilung ausgeführt; und wenn-elseif-else Multi-Branch hauptsächlich für Verzweigungsstrukturen mit weniger Zweigen geeignet ist, ist der Beurteilungstyp nicht einfach, solange ein Zweig ausgeführt wird, wird der folgende Zweig nicht ausgeführt werden. Der Schalter ist gleichwertig (z. B.> = <= ist nicht zulässig), und wenn er gleichwertig und gleich ist, kann er in einem großen Bereich verwendet werden.

4. Der Unterschied und die Verbindung zwischen & und &&

Antwort: Die Verbindung zwischen & und &&: Sowohl & als auch && können als logische UND-Operatoren verwendet werden, dies hängt jedoch von den spezifischen Bedingungen ab, unter denen sie verwendet werden. Operand 1 & Operand 2, Operand 1 & & Operand 2, Ausdruck 1 & Ausdruck 2, Ausdruck 1 & & Ausdruck 2.

Fall 1: Wenn der obige Operand eine boolesche Variable ist, können sowohl & als auch && als logische UND-Operatoren verwendet werden.

Fall 2: Wenn das Ergebnis des obigen Ausdrucks eine boolesche Variable ist, können sowohl & als auch && als logische UND-Operatoren verwendet werden.

Stellt logisch und (und) dar. Wenn das Ergebnis des Ausdrucks oder Operanden auf beiden Seiten des Operators wahr ist, ist das Ergebnis der gesamten Operation wahr. Andernfalls ist das Ergebnis falsch, solange einer von ihnen falsch ist.

Der Unterschied zwischen & und && (verschiedene Punkte): Der & logische Operator wird als logischer UND-Operator bezeichnet, der && logische Operator wird als Kurzschluss-UND-Operator bezeichnet und kann auch als logischer UND-Operator bezeichnet werden. In jedem Fall nehmen die Operanden oder Ausdrücke auf beiden Seiten von & an der Berechnung teil. Für &&: Wenn der Operand links von && falsch ist oder das Ergebnis des Ausdrucks links falsch ist, nimmt der Operand oder Ausdruck rechts von && nicht an der Berechnung teil und das Endergebnis ist falsch.

Zusammenfassend lässt sich sagen, dass der zweite Operand oder Ausdruck, wenn der erste Operand der logischen UND-Operation falsch ist oder das Ergebnis des ersten Ausdrucks falsch ist, keine Auswirkung auf das Endergebnis hat. Er muss falsch sein.

5. Grundlegende Regeln für die Datentypkonvertierung?

Antwort: Die grundlegende Typkonvertierung ist in automatische Konvertierung und erzwungene Konvertierung unterteilt.

Regeln für die automatische Konvertierung: Datentypen mit geringer Kapazität können automatisch in Datentypen mit großer Kapazität konvertiert werden

Um zu sagen, dass Low-Level-automatische Konvertierung auf High-Level. Die Kapazität bezieht sich hier nicht auf die Anzahl der Bytes, sondern auf den Bereich des Typausdrucks.

Regeln für erzwungene Konvertierung: High-Level zu Low-Level erfordert erzwungene Konvertierung. So konvertieren Sie: (1) Die Konvertierung auf der rechten Seite des Zuweisungsoperators "=" wird vor dem Ausführen von Operationen automatisch in den Datentyp der höchsten Ebene im Ausdruck konvertiert. (2) Die Konvertierung auf beiden Seiten des Zuweisungsoperators "=", wenn die linke Ebene> die rechte Ebene ist, wird sie automatisch konvertiert; wenn die linke Ebene == die rechte Ebene ist, ist keine Konvertierung erforderlich, wenn die linke Ebene <Auf der richtigen Ebene ist eine erzwungene Konvertierung erforderlich. (3) Ganzzahlkonstanten können Typvariablen wie Byte, Short, Char usw. direkt zugewiesen werden, ohne dass eine erzwungene Typkonvertierung erforderlich ist, sofern sie den Ausdrucksbereich nicht überschreitet, andernfalls muss eine erzwungene Konvertierung durchgeführt werden.

6. Was sind die Ähnlichkeiten und Unterschiede zwischen if-Anweisungen mit mehreren Zweigen und switch-Anweisungen mit mehreren Zweigen?

Antwort: Das Gleiche: Sie sind alle Zweigaussagen und beurteilen und behandeln mehr als einen Fall.

Unterschied: Der Schalter ist besser für Situationen mit mehreren Zweigen geeignet, dh es gibt viele Situationen, die beurteilt und verarbeitet werden müssen. Der Typ der Beurteilungsbedingung ist einfach und es gibt nur einen Eintrag. Nachdem der Zweig ausgeführt wurde (falls vorhanden) kein Ausbruch), wird es ohne Beurteilung ausgeführt; und wenn-elseif-else Multi-Branch hauptsächlich für Verzweigungsstrukturen mit weniger Zweigen geeignet ist, ist der Beurteilungstyp nicht einfach, solange ein Zweig ausgeführt wird, wird der folgende Zweig nicht ausgeführt werden. Der Schalter ist gleichwertig (z. B.> = <= ist nicht zulässig), und wenn er gleichwertig und gleich ist, kann er in einem großen Bereich verwendet werden.

7. Was ist der Unterschied zwischen while- und do-while-Schleifen?

Antwort: Während zuerst beurteilt und dann ausgeführt wird, das erste Mal als falsch beurteilt wird, wird der Schleifenkörper nicht gleichzeitig ausgeführt; do while wird zuerst ausgeführt und dann beurteilt, mindestens einmal ausgeführt, wenn die while-Schleife als beurteilt wird Zum ersten Mal gibt es keinen Unterschied.

image.png

8. Die Rolle von Pause und Fortsetzung?

Antwort: break: Beenden Sie die Stromschleife und verlassen Sie den Stromschleifenkörper. Break kann auch die switch-Anweisung beenden.

continue: Die nachfolgenden Anweisungen im Schleifenkörper werden nicht ausgeführt, aber die Schleife ist noch nicht beendet. Beurteilen Sie weiterhin die Schleifenbedingung (für die Schleife wird auch i ++). weiter beendet gerade die Schleife.

9.Was sind die Eigenschaften des Arrays?

Antwort: Das Array ist (geordnet) (Sammlung) von (Daten gleichen Typs);

Das Array öffnet einen kontinuierlichen Raum im Speicher. Jeder Raum entspricht einer Variablen zuvor, die als Element des Arrays bezeichnet wird.

Jedes Array-Element hat einen Standardwert double 0.0 boolean false int 0;

Die Array-Elemente sind nicht in der Größenreihenfolge, sondern in der Indexreihenfolge angeordnet.

Grundlegende Datentypen und Referenzdatentypen können in einem Array gespeichert werden. Für ein Array ist der Typ des Arrays jedoch fest und kann nur einer sein.

Länge: Die Länge des Arrays. Die Länge des Arrays ist fest. Einmal definiert, kann sie nicht mehr geändert werden (Erweiterung des Arrays).

10. Wenn eine Zahl genau der Summe ihrer Faktoren entspricht, wird diese Zahl als "endgültige Zahl" bezeichnet, z. B. 6 = 1 + 2 + 3. Programm, um alle Zahlen innerhalb von 0-1000 zu finden

Antwort: öffentliche Klasse WanShu {

private static boolean isWanShu(int shu){

    int sum = 0;

    for (int i = 1; i < shu; i++) {

        if(shu%i==0){

            sum+= i;

        }

    }

    if(sum==shu){

        return true;

    }else{          

        return false;

    }   

}

public static void main(String[] args) {

    for (int i = 1; i < 1000; i++) {

        if(isWanShu(i)){

            System.out.println(i);

        };

    }

}

}}

11. Die Ausgabe des folgenden Programms ist (A)

statisches boolesches foo (char c) {

    System.out.print(c);

    return true;

}

public static void main (String [] args) {

    int i = 0;

    for (foo('A'); foo('B') && (i < 2); foo('C')) {

        i++;

        foo('D');

    }

}}

A. ABDCBDCB B. ABDCDBCB C. ABDBCDCB D. ABDBCDCB

Analyse: Zuerst muss es mit ABDC beginnen, C und D ausschließen und dann foo ('B') && (i <2) ausführen. Das Ergebnis ist B und das Ergebnis ist A. Ausführungsreihenfolge - foo ('A') - foo ('B') && true - foo ('D') - foo ('C') - foo ('B') && true - foo ('D. ') - foo (' C ') - foo (' B ') && falsches Ende

12. Wenn n = 5 ist, ist der Rückgabewert der folgenden Funktion: (A)

int foo (int n)

{

    if(n<2)return n;

    return foo(n-1)+foo(n-2);

}

A.5 B.7 C.8 D.1

Analyse: Ergebnis = foo (4) + foo (3)

foo (4) = foo (3) + foo (2)

foo (3) = foo (2) + foo (1)

foo (2) = foo (1) + foo (0)

foo (1) = 1

foo (0) = 0

Also ist foo (2) = 1, foo (3) = 2, foo (4) = 3

13. Schreiben Sie den Code für die Einfügesortierung

Antwort: Paket com.bjsxt;

öffentliche Klasse TestInsertSort {

öffentliche statische Leersortierung (int arr []) {

int i, j;

für (i = 1; i <arr.length; i ++) {

int temp = arr [i];

für (j = i; j> 0 && temp <arr [j - 1]; j–) {

arr [j] = arr [j - 1];

}}

arr [j] = temp;

}}

}}

}}

14. Was ist der Unterschied zwischen final, finally und finalize?

Antwort: Final Modifier (Schlüsselwort) Wenn eine Klasse als final deklariert wird, bedeutet dies, dass sie keine neuen Unterklassen mehr ableiten und nicht als übergeordnete Klasse vererbt werden kann, z. B.: String-Klasse, Math-Klasse usw. Durch das Deklarieren von Variablen oder Methoden als endgültig wird sichergestellt, dass sie während der Verwendung nicht geändert werden. Die als final deklarierte Variable muss zum Zeitpunkt der Deklaration einen Anfangswert erhalten und kann nur in zukünftigen Referenzen gelesen und nicht geändert werden. Die als final deklarierte Methode kann ebenfalls nur verwendet werden, kann nicht überschrieben, sondern überladen werden. Bei Verwendung der endgültig geänderten Objekte kann die Referenzadresse des Objekts nicht geändert werden, der Wert des Objekts kann jedoch geändert werden.

Schließlich wird während der Ausnahmebehandlung ein finally-Block bereitgestellt, um alle Bereinigungsvorgänge auszuführen. Wenn dies der Fall ist, wird die Anweisung finally ausgeführt, unabhängig davon, ob eine Ausnahme auftritt. Unter normalen Umständen werden alle zugehörigen Vorgänge wie das Schließen der physischen Verbindung (E / A-Stream, Datenbankverbindung, Socket-Verbindung) in diesen Codeblock eingefügt.

Finalisieren Sie den Methodennamen. Die Java-Technologie ermöglicht die Verwendung der finalize () -Methode, um die erforderlichen Bereinigungsarbeiten durchzuführen, bevor der Garbage Collector das Objekt aus dem Speicher löscht. Die Methode finalize () wird aufgerufen, bevor das Objekt vom Garbage Collector gelöscht wird. Es ist in der Object-Klasse definiert, sodass alle Klassen es erben. Unterklassen überschreiben die Methode finalize (), um Systemressourcen zu organisieren oder andere Bereinigungsaufgaben auszuführen. Unter normalen Umständen wird diese Methode von der JVM aufgerufen, und Programmierer sollten sie nicht aufrufen.

15. Was ist der Unterschied zwischen Zeichenkonstanten und Zeichenfolgenkonstanten?

Antwort: Formal: Eine Zeichenkonstante ist ein Zeichen, das von einfachen Anführungszeichen umgeben ist. Eine Zeichenfolgenkonstante ist eine Anzahl von Zeichen, die von doppelten Anführungszeichen umgeben sind. Bedeutung: Eine Zeichenkonstante entspricht einem ganzzahligen Wert (ASCII-Wert), der an Ausdrucksoperationen teilnehmen kann. Eine Zeichenfolgenkonstante stellt einen Adresswert dar (die Zeichenfolge wird im Speicherort gespeichert). Belegungsspeichergröße: Zeichenkonstanten belegen nur ein Byte, Zeichenfolgenkonstanten mehrere Bytes (mindestens ein Zeichenendflag).

Das Obige sind die grundlegenden Fragen zum Java-Programmierinterview, die heute für meine Freunde zusammengestellt wurden. Von diesen 15 Fragen kann sicherlich nicht gesagt werden, dass sie das umfassendste Wissen über die Java-Programmierung haben, aber sie sind definitiv der Inhalt der grundlegenden allgemeinen Prüfungen, und es wird eine Menge geben von ihnen im Java-Interview Daher hoffe ich, dass jeder den oben genannten Inhalt sorgfältig lernen und dann rechtzeitig mehr Java-Wissen durch das Java-Basis-Tutorial lernen kann.

Ich denke du magst

Origin blog.csdn.net/weixin_49543720/article/details/110441494
Empfohlen
Rangfolge