文章目录1.首先我们要了解String对象放入常量池的时机验证2.substring返回时究竟发生了什么操作JDK1.6中的substringJDK1.6中的substring中产生的问题JDK1.7中的substring 1.首先我们要了解String对象放入常量池的时机 String只会在一种情况下放入常量池,那就是用””修饰时。 例如 String str1 = "abc"; 这个时候会把字符串”abc”放入常量池。 又或者当编译器可以确定变量的值时,如下: String str1 = "abc" + "def"; 这个时候会把字符串”abcdef”放入常量池。 所以我们得出一个结论