问题遇到的现象和发生背景
今天在学习JAVA的String类,就是String的对象的内容是放在private final char value[]数组里面的,有个地方不太明白,比如String str1 =new String( ”hello"),堆里面有个value数组,指向的是常量池里的"hello",而不是常量池里面有个value数组,堆里的数组存储着常量池里面hello的地址,那么这样的话,每次给str1赋予新的值都是在常量池里面创建一个新的字符串,value存储的的地址也会因此改变,是这么理解吗?那像String str2 = "world"这种方式呢?在栈里面的str2直接指向常量池里面的world吗?应该也要value数组存储吧。如果是的话,这个value在哪里呢?