Garbage Collection von String-Literalen
F1: Wenn ein String zur Kompilierungszeit als Literal definiert ist (z. B. String str = "java"), wird es im Müll gesammelt?
Normalerweise nicht. Codeobjekte enthalten Verweise auf literale String-Objekte, sodass diese erreichbar bleiben. Die Speicherbereinigung erfolgt nur, wenn Codeobjekte nicht mehr erreichbar sind.
F2: Wenn die interne Methode verwendet wird (z. B. String str = new String("java").intern()), handelt es sich um Müll? gesammelt?
Das zurückgegebene Objekt ist dasselbe wie das String-Literal „Java“, das zum Zeitpunkt des Ladens der Klasse interniert wird. Daher erfolgt keine Müllabfuhr. Interne Strings, die nicht mit String-Literalen identisch sind, können jedoch durch Garbage Collection erfasst werden, wenn sie nicht mehr erreichbar sind.
F3: Ist es sinnvoll, dass Literale nur durch Garbage Collection erfasst werden, wenn die String-Klasse entladen wird?
Nein. Die String-Klasse ist für die Java Virtual Machine unerlässlich und wird wahrscheinlich nicht entladen. Anderslautende Quellenangaben sind falsch.
Das obige ist der detaillierte Inhalt vonWerden String-Literale in Java jemals als Müll erfasst?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!