


Vorstellungsgespräch für einen Java-Ingenieur – flüchtiges Schlüsselwort
1. Was genau macht volatile? Es stellt die Sichtbarkeit sicher, wenn verschiedene Threads diese Variable bearbeiten, d. h. wenn ein Thread den Wert einer bestimmten Variablen ändert, ist der neue Wert sofort für andere Threads sichtbar. Die Atomarität ist nicht garantiert (Thread unsicher). 2. Vergleich des synchronisierten Schlüsselworts und des flüchtigen Schlüsselworts
Das flüchtige Schlüsselwort ist eine leichte Implementierung der Thread-Synchronisierung, daher ist die Leistung von flüchtig definitiv besser als die des synchronisierten Schlüsselworts. Das Schlüsselwort volatile kann jedoch nur für Variablen verwendet werden und das Schlüsselwort synchronisiert kann Methoden und Codeblöcke ändern.
(Weitere Empfehlungen für verwandte Interviewfragen: Java-Interviewfragen und -antworten)
synchronisiertes Schlüsselwort wurde nach JavaSE1.6 eingeführt, hauptsächlich einschließlich voreingenommener Sperren, die eingeführt wurden, um den durch den Erwerb von Sperren und die Freigabe von Sperren verursachten Leistungsverbrauch zu reduzieren wurde nach leichten Sperren und anderen Optimierungen erheblich verbessert. In der tatsächlichen Entwicklung gibt es noch mehr Szenarien, in denen das synchronisierte Schlüsselwort verwendet wird.
Der Multithread-Zugriff auf das Schlüsselwort volatile wird nicht blockiert, das synchronisierte Schlüsselwort kann jedoch blockieren.
Das Schlüsselwort volatile kann die Sichtbarkeit der Daten garantieren, aber nicht die Atomizität der Daten. Das synchronisierte Schlüsselwort kann beides garantieren (synchronized garantiert drei Haupteigenschaften: Atomizität, Ordnung und Sichtbarkeit).
Das flüchtige Schlüsselwort wird hauptsächlich verwendet, um die Sichtbarkeit von Variablen zwischen mehreren Threads zu lösen, während das synchronisierte Schlüsselwort die Synchronisierung des Ressourcenzugriffs zwischen mehreren Threads löst.
Verwandte Empfehlungen:
Erste Schritte mit JavaDas obige ist der detaillierte Inhalt vonVorstellungsgespräch für einen Java-Ingenieur – flüchtiges Schlüsselwort. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

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

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

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)

Containerisierte Java-Anwendung: Erstellen Sie eine Dockerfile, verwenden Sie ein grundlegendes Bild wie Eclipse-Temurin: 17-Jre-Alpine, kopieren Sie die JAR-Datei und definieren Sie den Startbefehl, erstellen Sie das Bild über Dockerbuild und führen Sie lokal mit Dockerun aus. 2. Drücken Sie das Bild in die Containerregistrierung: Verwenden Sie Dockertag, um das Bild zu markieren und zu Dockerhub und anderen Registern zu drücken. Sie müssen sich zuerst bei DockerLogin anmelden. 3.. Bereitstellen in Kubernetes: Schreiben Sie die Bereitstellung. Yaml, um die Bereitstellung zu definieren, die Anzahl der Replikate, Containerbilder und Ressourcenbeschränkungen festlegen und den Dienst schreiben.yaml zum Erstellen zu erstellen

Importjava.ioandjava.net.socketfori/oandsocketcommunication.2.CreateSocketObjectToConnectTotheserverusednameAnDport.3.useprintSertosendDataviaoutputStreamandBufferedReadereadServerresponSfrend

RunthewindowsUpdatetrouBleshooterviaSettings> Update & Sicherheit> FehlerbehebungOautomatischfixcommonissues.2.

JavaserializationConvertsanObject'SstateIntoAnabyTestreamForstorageOrtransmission, und Deserialization -ReconstructStheObjectFromThatstream.1. ToenableSerialization, aclassMustImplementtheSerializableInterface

AwhileloopinjavarePeadexecutesCodeaslongasttitionistre; 2.initializeacontrolvariableBeforetheloop;

AhasMapinjavaisadatastructurethatstoreskey-valuepairsforefficityRieval, Insertion und Delettion.itusushtheKey'ShashCode () methodTodeterminestoragelocationAnlowlowsaversaveryo (1) TimEcomplexityforget () und -Argine

TocreateAndueanArrayinjava, FirstDeclarethearraywithDedatatypeNDSquarebrackets, dannInstantiate -withenewKewordorinitializeTDirectlyWithValues; 1.DeclareandCreatatype [] arrayname = newdatatype [grizatatype

YoucancreateatheadinjavabytendingTheTheadhreadClassOrimplementingTherunnableInterface.2.EutendingThreadinvolvesCreresedaclassTheatoverridestherun () methodeCallingStart () onaninstance.3.implementingRunNableRequiresDefiningTherun () methodInaklassTheatimple
