2017-02-15 24 views
4

Ich war über die Speicherverwaltung in Java 8.It spricht von Meta Raum zu lesen, aber es spricht nicht von String pool.Can Sie mir bitte vorschlagen, was in Java String Pool passiert 8.String Pool in Java 8

Vielen Dank im Voraus. Rajesh

+5

Nichts Besonderes passiert in Java 8. Kompilierzeit Zeichenfolgen sind immer noch in einem Pool platziert und Sie können noch Ihre eigenen in das Programm, wenn Sie möchten. Warum sollte sich das geändert haben? – RealSkeptic

+0

http://java-performance.info/string-intern-in-java-6-7-8/ - Wenn es entfernt worden wäre, würden Sie es wissen. – Fildor

Antwort

10

Die Änderung auf Java7 selbst durchgeführt wurde, dass die konstant Pool hat typische Heap-Speicher von Permgen Raum bewegt worden ist (immer noch der Pool Verhalten gleiche ist) wo als PermGen Raum vollständig in Java entfernt 8. metaSpace ist nichts mit konstantem Pool speziell zu tun, es ist generisch für alle Objekte.

0

www.oracle.com/technetwork/java/javase/8-whats-new-2157071.html

hier ist die Java-8-Version nichts merkt scheinen über String.intern zu sein. Hier ein kleiner Unterschied: Der Standardwert für den Parameter -XX: StringTableSize ist 1009 in Java 6 und Java 7 bis Java7u40. Es wurde in Java 7u40 auf 60013 erhöht (derselbe Wert wird auch in Java 8 verwendet). Es ist subtil, bietet aber einen großen Leistungsvorteil. check this blog post for more info: