测试案例:
import java.util.ArrayList; import java.util.List; /** * StringTableTest * * @author KpWong * */ /* * jdk8下设置 -Xmx10m -XX:-UseGCOverheadLimit * jdk6下设置 -XX:MaxPermSize=10m */ public class StringTableTest { public static void main(String[] args) { List<String> list = new ArrayList<String>(); int i =0; try{ for(i =0;i<260000;i++) { list.add(String.valueOf(i).intern()); } } catch (Throwable e) { e.printStackTrace(); } finally { System.out.println(i); } } }
JDK8下运行结果:
JDK6运行结果:
元空间 也属于堆区:
测试代码:
/** * StringTableTest02 * * @author KpWong */ /* * -Xmx10m -XX:+PrintStringTableStatistics -XX:+PrintGCDetails -verbose:gc */ public class StringTableTest02 { public static void main(String[] args) { int i = 0; try { } catch (Throwable e) { e.printStackTrace(); } finally { System.out.println(i); } } }
-Xmx10m -XX:+PrintStringTableStatistics -XX:+PrintGCDetails -verbose:gc
运行结果: