package cn.ys.test;
/*对于String ,顾名思义就是字符串,但是它最有意思的特点就是
它的源码中使用final 来修饰这个类的,也就是说String对象一旦创建就不能修改,
那么很多人就会有疑问了,为啥String不能修改那我们为啥还能执行下面的操作并输出ABCabc呢
原因很简单,我们的对象创建都是在虚拟机中的堆区创建的,
在执行ts=ts+"abc";这一段代码时,JVM上又新new了一个String对象来接收新的字符串,
ts也跟着指向了新的对象,老的对象就相当于失去作用,等待时机被JVM回收
详情请见链接
https://blog.csdn.net/qq_38983577/article/details/81632827
*/
public class TestString {
public static void test(){
String ts=new String("ABC");
ts=ts+"abc";
System.out.println(ts);
}
public static void main(String[] args) {
test();
}
}
JVM详情请见链接
https://blog.csdn.net/qq_38983577/article/details/81632827