请问一下这一段代码:
String s = new String("abc");
s = "bcd";
这时内存的变化是什么样的呀?
我的思考:栈内变量s指向了堆中String的对象,堆中对象有一个Char value数组指向了常量池中的"abc";
但是执行s = "bcd";之后是怎样变化的呢?
请教一下各位谢谢!
s 指向堆 内存A
内存A 指向 常量池 “abc”
"bcd" 是常量
s 指向 常量池 "bcd"
对内存没有栈指向它, 到了一定的时间,jvm 会自动调用cg回收堆内存,
应该是这样的