1. 顯示調用String的intern方法的時候; 2. 直接聲明字符串字面常量的時候,例如: String a = "aaa"; 3. 字符串直接常量相加的時候,例如: String c = "aa" + "bb"; 其中的aa/bb只要有任何一個不是字符串字面常量形式,都不會在常量池生成"aabb". 且此時jvm做了優化,不會同時生成"aa"和"bb"在字符串常量池中。
在jdk1.7之前,字符串常量存儲在方法區的PermGen Space。在jdk1.7之後,字符串常量被移到了堆中。
1. 顯示調用String的intern方法的時候; 2. 直接聲明字符串字面常量的時候,例如: String a = "aaa"; 3. 字符串直接常量相加的時候,例如: String c = "aa" + "bb"; 其中的aa/bb只要有任何一個不是字符串字面常量形式,都不會在常量池生成"aabb". 且此時jvm做了優化,不會同時生成"aa"和"bb"在字符串常量池中。
在jdk1.7之前,字符串常量存儲在方法區的PermGen Space。在jdk1.7之後,字符串常量被移到了堆中。
一. 概覽 定義 JVM的垃圾回收器是Java內存管理中的一個重要組成部分。其主要任務是自動回收不再被程序使用的對象所佔用的內存空間,以避免內存泄漏和內存溢出等問題。 作用區域 垃圾回收