一、常量池动态变化展示
java
public static void main(String[] args) {
System.out.println("0");
System.out.println("1");
System.out.println("2");
System.out.println("3");
System.out.println("4");
System.out.println("5");
System.out.println("6");
System.out.println("7");
System.out.println("8");
System.out.println("9");
System.out.println("0");
System.out.println("1");
System.out.println("2");
System.out.println("3");
System.out.println("4");
System.out.println("5");
System.out.println("6");
System.out.println("7");
System.out.println("8");
System.out.println("9");
}

对上面的代码进行debug,同时把idea右下角的Memery功能打开,刚开始每执行一步,String 对象就会加1,说明刚开始每执行一步都会创建一个String对象。当开始执行第二遍的时候,String对象的个数不再增加,说明第二遍执行的时候不再创建创建String对象,而是直接把第一遍执行时放入串池的对象拿过来。