


Interviewer: Bitte erläutern Sie ausführlich die Rolle des endgültigen Schlüsselworts und seinen Unterschied zum statischen Schlüsselwort
Vorwort:
Wie erwartet stellte der Interviewer im letzten Interview noch einmal diese Frage: Könnten Sie mir bitte die spezifische Bedeutung des letzten Schlüsselworts mitteilen und seine Rolle im Detail sowie den Unterschied zwischen ihm und Static erläutern? Damit jeder Interviewpartner auf diese Frage aufmerksam wird, sind die Antworten speziell für Sie als Referenz zusammengestellt.
1. Die Bedeutung des Schlüsselworts final
Die Oberflächenbedeutung von final ist unveränderlich und konstant; ähnlich wie das Schlüsselwort const in der C-Sprache bezieht es sich auf eine Größe, die nicht geändert werden kann, was sich von der statischen Skalarstatik unterscheidet Ja, statische Variablen beziehen sich nur auf einen Speicherplatz und der Wert kann geändert werden. Der Grund für die Verwendung von „final“ liegt in der Perspektive des Software-Designs, denn wenn andere das Schlüsselwort „final“ sehen, wissen sie, was es bedeutet, und erzielen den Effekt, es zu verstehen. Dies liegt jedoch genau an der Existenz dieser „Semantik“. Sie müssen bei der Programmierung vorsichtig sein, um Missbrauch zu vermeiden.
In Java sind endgültige Änderungen Konstanten und Variablennamen müssen großgeschrieben werden.
Math-Klasse: public static final double E = 2.7182818284590452354; public static final double PI = 3.14159265358979323846;
...Es gibt viele Variablen in der Java-Quelle code Sie werden alle mit final
2 geändert. Die Rolle von final
final hat je nach Änderungsposition unterschiedliche Rollen:
(1) Die durch final geänderten Variablen müssen initialisiert und zugewiesen werden Es handelt sich um einen Anfangswert, der später nicht mehr neu zugewiesen werden kann.
Hinweis: Lokale Variablen fallen nicht in den Rahmen unserer Diskussion, da lokale Variablen selbst einen Gültigkeitsbereich haben und nicht durch Wörter wie privat und öffentlich geändert werden.
(2) Modifizierte Methode. Die durch final geänderte Methode bedeutet, dass sie nicht neu geschrieben werden kann.
(3) Geänderte Klassen, durch final geänderte Klassen können nicht vererbt werden.
Hinweis: Bei einer endgültig modifizierten Klasse werden alle Mitgliedsmethoden in der Klasse implizit als endgültige Methoden bezeichnet.
2.1. Durch final geänderte Variablen müssen explizit initialisiert werden: 1) Initialisierung beim Definieren, 2) Festlegen des Werts im Konstruktor, 3) in einem nicht statischen Block . Die letzte Instanzvariable legt den Wert fest.
public class Test01{ final int x1= 10000; final int x2; final int x3; { x2 = 20000; } Public exe3(){ this.x3 = 3000; } }
final Operate operate = new Operate() ;// operate有一个普通变量i初始化为10operate.i = 11; operate.i = 12; System.out.println(operate.i); //输出12上述是自定义类,即便是数组,List等集合类型,所保存的值也是可以更改的。
static wirkt sich auf Mitgliedsvariablen aus, um anzuzeigen, dass nur eine Kopie gespeichert wird, während final verwendet wird, um sicherzustellen, dass Variablen unveränderlich sind. Schauen Sie sich online ein Beispiel an:
public class Test { public static void main(String[] args) { MyClass myClass1 = new MyClass(); MyClass myClass2 = new MyClass(); System.out.println(myClass1.i); System.out.println(myClass1.j); System.out.println(myClass2.i); System.out.println(myClass2.j); } } class MyClass { public final double i = Math.random(); public static double j = Math.random(); } //运行结果,两次打印,j的值都是一样的,j是static类型的属于类,因此两次值相同。i不是static的因此属于对象,但是i的值是不可变的。
Java-Video-Tutorial
)4. Andere finalbezogene Kenntnisse
(1) Verwenden Sie das Schlüsselwort final. Wenn der Compiler den Wert einer Variablen während der Kompilierungsphase bestimmen kann, verwendet der Compiler die Variable als Konstante zur Kompilierungszeit. Wenn dies zur Laufzeit ermittelt werden muss, optimiert der Compiler den entsprechenden Code nicht.
public class Test { public static void main(String[] args) { String a = "hello2"; final String b = "hello"; String d = "hello"; String c = b + 2; String e = d + 2; System.out.println((a == c)); System.out.println((a == e)); } } //final类型,在编译阶段能够确定值。 //非final类型在编译阶段确定不了 输出: true false public class Test { public static void main(String[] args) { String a = "hello2"; final String b = getHello(); String c = b + 2; System.out.println((a == c)); } public static String getHello() { return "hello"; } } //即便是final类型,编译阶段也确定不了值。输出false
Fragen und Antworten zu Java-Interviews
Originallink: http://www.cnblogs.com/liun1994/p/6691094.html
Originalautor: Suifenglangzi90
Das obige ist der detaillierte Inhalt vonInterviewer: Bitte erläutern Sie ausführlich die Rolle des endgültigen Schlüsselworts und seinen Unterschied zum statischen Schlüsselwort. 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

Die Auswahl eines Docker-Images für Node mag trivial erscheinen, aber die Größe und potenziellen Schwachstellen des Images können erhebliche Auswirkungen auf Ihren CI/CD-Prozess und Ihre Sicherheit haben. Wie wählen wir also das beste Node.js-Docker-Image aus?

Der Unterschied zwischen „final“, „final“ und „finalize“ in Java erfordert spezifische Codebeispiele. In der Java-Programmierung stoßen Sie häufig auf die drei Schlüsselwörter „final“, „final“ und „finalize“. In diesem Artikel werden die Unterschiede zwischen diesen drei Schlüsselwörtern ausführlich erläutert und Codebeispiele gegeben, um den Lesern ein besseres Verständnis zu erleichtern. 1. Schlüsselwort final Das Schlüsselwort final kann für Klassen, Methoden und Variablen verwendet werden. Seine Funktion besteht darin, die geänderte Klasse zu erstellen

Domänenübergreifend ist ein Szenario, das in der Entwicklung häufig vorkommt und auch ein häufig in Interviews diskutiertes Thema ist. Die Beherrschung gängiger domänenübergreifender Lösungen und der dahinter stehenden Prinzipien kann nicht nur unsere Entwicklungseffizienz verbessern, sondern auch in Vorstellungsgesprächen bessere Leistungen erbringen.

Eine konstante Variable ist eine Variable, deren Wert fest ist und von der im Programm nur eine Kopie vorhanden ist. Sobald Sie eine konstante Variable deklariert und ihr einen Wert zugewiesen haben, können Sie ihren Wert im gesamten Programm nicht mehr ändern. Im Gegensatz zu anderen Sprachen unterstützt Java Konstanten nicht direkt. Sie können jedoch weiterhin eine Konstante erstellen, indem Sie eine Variable als „statisch“ und „final“ deklarieren. Statisch – Sobald Sie eine statische Variable deklarieren, werden diese zur Kompilierungszeit in den Speicher geladen, d. h. es ist nur eine Kopie verfügbar. Final – Sobald Sie eine Final-Variable deklariert haben, kann ihr Wert nicht mehr geändert werden. Daher können Sie in Java eine Konstante erstellen, indem Sie die Instanzvariable als statisch und endgültig deklarieren. Beispiel-DemonstrationsklasseData{&am

Eingehende Analyse der Rolle und Verwendung des Schlüsselworts „static“ in der Sprache C. In der Sprache C ist „static“ ein sehr wichtiges Schlüsselwort, das bei der Definition von Funktionen, Variablen und Datentypen verwendet werden kann. Die Verwendung des Schlüsselworts static kann die Linkattribute, den Umfang und den Lebenszyklus des Objekts ändern. Lassen Sie uns die Rolle und Verwendung des Schlüsselworts static in der C-Sprache im Detail analysieren. Statische Variablen und Funktionen: Variablen, die mit dem Schlüsselwort static innerhalb einer Funktion definiert werden, werden als statische Variablen bezeichnet, die einen globalen Lebenszyklus haben

Das JS-Singleton-Muster ist ein häufig verwendetes Entwurfsmuster, das sicherstellt, dass eine Klasse nur eine Instanz hat. Dieser Modus wird hauptsächlich zur Verwaltung globaler Variablen verwendet, um Namenskonflikte und wiederholtes Laden zu vermeiden. Außerdem kann er die Speichernutzung reduzieren und die Wartbarkeit und Skalierbarkeit des Codes verbessern.

Das Go-Framework besteht aus einer Reihe von Komponenten, die die integrierten Bibliotheken von Go erweitern und vorgefertigte Funktionen bereitstellen (z. B. Webentwicklung und Datenbankoperationen). Zu den beliebten Go-Frameworks gehören Gin (Webentwicklung), GORM (Datenbankoperationen) und RESTful (API-Verwaltung). Middleware ist ein Interceptor-Muster in der HTTP-Anforderungsverarbeitungskette und wird verwendet, um Funktionen wie Authentifizierung oder Anforderungsprotokollierung hinzuzufügen, ohne den Handler zu ändern. Die Sitzungsverwaltung verwaltet den Sitzungsstatus durch die Speicherung von Benutzerdaten. Sie können gorilla/sessions zum Verwalten von Sitzungen verwenden.

Was ist JPA? Wie unterscheidet es sich von JDBC? JPA (JavaPersistence API) ist eine Standardschnittstelle für objektrelationales Mapping (ORM), die es Java-Entwicklern ermöglicht, vertraute Java-Objekte zum Betreiben von Datenbanken zu verwenden, ohne SQL-Abfragen direkt in die Datenbank schreiben zu müssen. JDBC (JavaDatabaseConnectivity) ist die Standard-API von Java für die Verbindung mit Datenbanken. Sie erfordert, dass Entwickler SQL-Anweisungen verwenden, um die Datenbank zu betreiben. JPA kapselt JDBC, bietet eine bequemere und übergeordnete API für die objektrelationale Zuordnung und vereinfacht Datenzugriffsvorgänge. Was ist in JPA eine Entität? juristische Person
