Der Unterschied zwischen statischen Java-Methoden und nicht statischen Methoden
Der Unterschied zwischen statischen Java-Methoden und nicht statischen Methoden
1 Methode)
Sie gehören wie statische Mitgliedsvariablen zur Klasse selbst. Sie werden in den Speicher geladen, wenn die Klasse geladen wird, und werden nicht automatisch zerstört. Sie bleiben im Speicher, bis die JVM geladen wird geschlossen;
2. Nicht-statische Methode
Wird auch als Instanziierungsmethode bezeichnet und muss nach der Instanziierung zugewiesen werden Instanz der Klasse. Wenn das Instanzobjekt von der JVM recycelt wird, verschwindet es auch
Der Unterschied zwischen statischen Methoden und Instanzmethoden
1. Leben Zyklus
Der Lebenszyklus einer statischen Methode beginnt, wenn der Prozess erstellt wird, und endet, wenn der Prozess endet. Daher ist die statische Methode global und durchläuft den gesamten Prozess Der Lebenszyklus der Instanzmethode beginnt mit der Instanziierung des Objekts und dauert bis zum Ende des Prozesses. Das instanziierte Objekt endet nach der Aufhebung der Registrierung und dem Recycling
Der Lebenszyklus der Instanzmethode ist also kürzer als der Lebenszyklus der statischen Methode Dies ist auch der Grund, warum statische Methoden nicht in Instanzmethoden aufgerufen werden können
2 .Aufrufende MethodeBeim externen Aufruf einer statischen Methode Sie können die Methode „Klassenname. Methodenname“ oder die Methode „Objekt. Methodenname“ verwenden, was bedeutet, dass beim Aufruf einer statischen Methode kein Objekt erstellt werden muss
Instanzmethoden können nur die verwenden „object.method name method“
//-----------hasStaticMethod.java----------------- public class hasStaticMethod{ //定义一个静态方法 public static void callMe(){ System.out.println("This is a static method."); } }
Das folgende Programm verwendet zwei Formen, um statische Methoden aufzurufen.
//-----------invokeStaticMethod.java----------------- public class invokeStaticMethod{ public static void main(String args[]){ hasStaticMethod.callMe(); //不创建对象,直接调用静态方法 hasStaticMethod oa = new hasStaticMethod(); //创建一个对象 oa.callMe(); //利用对象来调用静态方法 } }
Wenn statische Methoden auf Mitglieder dieser Klasse zugreifen, dürfen sie nur auf statische Mitglieder (d. h. statische Variablen und statische Methoden) zugreifen und nicht Greifen Sie auf Instanzmitgliedsvariablen und Instanzmethoden zu. Für Instanzmethoden gilt diese Einschränkung nicht.
Instanzmitgliedsvariablen gehören zu einem Objekt, und das Objekt existiert nicht unbedingt, wenn die statische Methode zulässig ist Die Methode greift auf die Instanzmitgliedsmethode zu und kann daher indirekt auf die Instanzmitgliedsvariable zugreifen. Aus demselben Grund kann das Schlüsselwort this
//-----------accessMember.java----------------- class accessMember{ private static int sa; //定义一个静态成员变量 private int ia; //定义一个实例成员变量 //下面定义一个静态方法 static void statMethod(){ int i = 0; //正确,可以有自己的局部变量sa = 10; //正确,静态方法可以使用静态变量 otherStat(); //正确,可以调用静态方法 ia = 20; //错误,不能使用实例变量 insMethod(); //错误,不能调用实例方法 } static void otherStat(){} //下面定义一个实例方法 void insMethod(){ int i = 0; //正确,可以有自己的局部变量 sa = 15; //正确,可以使用静态变量 ia = 30; //正确,可以使用实例变量 statMethod(); //正确,可以调用静态方法 } }
Wenn eine Klassendatei von ClassLoader in die JVM geladen wird, werden die Methodenanweisungen im Stapel gespeichert. Zu diesem Zeitpunkt befinden sich keine Daten im Heap-Bereich. Wenn es sich um eine statische Methode handelt, kann der Befehlscode zu diesem Zeitpunkt natürlich nicht auf den Heapshuju-Datenbereich zugreifen Die Instanzmethode verfügt über einen impliziten eingehenden Parameter, den Parameter. Dieser Parameter ist die Speicheradresse des Instanzobjekts im Stapel, sodass die Instanzmethode ihre eigenen Daten im Heap finden kann vor dem Aufruf instanziiert werden, Daten im Heap zuweisen und den Speicherzeiger im Stapel über die impliziten Parameter der JVM an die Instanzmethode übergeben. Wenn Sie es direkt aufrufen, ohne es zu instanziieren, wird ein Fehler gemeldet, da der implizite Parameter keinen Wert hat.
Das obige ist der detaillierte Inhalt vonDer Unterschied zwischen statischen Java-Methoden und nicht statischen Methoden. 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

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

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



In der C -Sprache ist der Hauptunterschied zwischen char und wchar_t die Zeichencodierung: char verwendet ASCII oder erweitert ASCII, wchar_t Unicode; char nimmt 1-2 Bytes auf, wchar_t nimmt 2-4 Bytes auf; char ist für englischen Text geeignet. Wchar_t ist für mehrsprachige Text geeignet. char ist weithin unterstützt, wchar_t hängt davon ab, ob der Compiler und das Betriebssystem Unicode unterstützen. char ist in der Charakterbereich begrenzt, WCHAR_T hat einen größeren Charakterbereich und spezielle Funktionen werden für arithmetische Operationen verwendet.

Der Unterschied zwischen Multithreading und Asynchron besteht darin, dass Multithreading gleichzeitig mehrere Threads ausführt, während asynchron Operationen ausführt, ohne den aktuellen Thread zu blockieren. Multithreading wird für rechenintensive Aufgaben verwendet, während asynchron für die Benutzerinteraktion verwendet wird. Der Vorteil des Multi-Threading besteht darin, die Rechenleistung zu verbessern, während der Vorteil von Asynchron nicht darin besteht, UI-Threads zu blockieren. Die Auswahl von Multithreading oder Asynchron ist von der Art der Aufgabe abhängt: Berechnungsintensive Aufgaben verwenden Multithreading, Aufgaben, die mit externen Ressourcen interagieren und die UI-Reaktionsfähigkeit asynchron verwenden müssen.

C -Sprachfunktionen sind die Grundlage für die Code -Modularisierung und das Programmaufbau. Sie bestehen aus Deklarationen (Funktionsüberschriften) und Definitionen (Funktionskörper). C Sprache verwendet standardmäßig Werte, um Parameter zu übergeben, aber externe Variablen können auch mit dem Adresspass geändert werden. Funktionen können oder haben keinen Rückgabewert, und der Rückgabewerttyp muss mit der Deklaration übereinstimmen. Die Benennung von Funktionen sollte klar und leicht zu verstehen sein und mit Kamel oder Unterstrich die Nomenklatur. Befolgen Sie das Prinzip der einzelnen Verantwortung und behalten Sie die Funktion ein, um die Wartbarkeit und die Lesbarkeit zu verbessern.

Char und Unsigned char sind zwei Datentypen, die Charakterdaten speichern. Der Hauptunterschied ist der Weg, um mit negativen und positiven Zahlen umzugehen: Wertebereich: char signiert (-128 bis 127) und nicht signiertes char nicht signiert (0 bis 255). Negative Zahlenverarbeitung: char kann negative Zahlen speichern, unsigned char kann nicht. Bitmodus: char Das höchste Bit repräsentiert das Symbol, nicht signiertes char unsigned Bit. Arithmetische Operationen: SHOR und unsigned char sind signierte und nicht signierte Typen, und ihre arithmetischen Operationen sind unterschiedlich. Kompatibilität: SHAR und nicht signiertes Zeichen

Obwohl C und C# Ähnlichkeiten haben, sind sie völlig unterschiedlich: C ist eine prozessorientierte, manuelle Speicherverwaltung und plattformabhängige Sprache, die für die Systemprogrammierung verwendet wird. C# ist eine objektorientierte, Müllsammlung und plattformunabhängige Sprache, die für Desktop-, Webanwendungs- und Spielentwicklung verwendet wird.

H5. Der Hauptunterschied zwischen Mini -Programmen und App ist: Technische Architektur: H5 basiert auf Web -Technologie, und Mini -Programme und Apps sind unabhängige Anwendungen. Erfahrung und Funktionen: H5 ist leicht und einfach zu bedienen, mit begrenzten Funktionen; Mini -Programme sind leicht und haben eine gute Interaktivität. Apps sind leistungsstark und haben reibungslose Erfahrung. Kompatibilität: H5 ist plattformübergreifend, Applets und Apps werden von der Plattform eingeschränkt. Entwicklungskosten: H5 verfügt über niedrige Entwicklungskosten, mittlere Mini -Programme und die höchste App. Anwendbare Szenarien: H5 eignet sich für Informationsanzeigen, Applets eignen sich für leichte Anwendungen und Apps eignen sich für komplexe Funktionen.

Detaillierte Erläuterung der XPath -Suchmethode unter DOM -Knoten in JavaScript, wir müssen häufig bestimmte Knoten aus dem DOM -Baum basierend auf XPath -Ausdrücken finden. Wenn Sie ...

Die Notwendigkeit der Registrierung von Vuerouter in der Datei index.js -Datei im Ordner Router Bei der Entwicklung von VUE -Anwendungen stoßen Sie häufig Probleme mit der Routing -Konfiguration. Besonders...
