因为 String 源码是final修饰的,final修饰的变量都是放在常量池中的,所以是不可变的,创建一个则存一个到常量池中,用到时,都是指向该字符串在常量池中的地址或组合地址。
你自己在Java里输个String,Ctrl+鼠标左键进去看看,发现String的修饰符是final,
因为String类在做参数传递的时候,其值不会发生改变,在方法中会产生新的对象,相当于局部变量,方法弹栈后,它也会消失.但原来的String还是那个值
因为不可继承是顶级类