概述
1)字符串,使用 “ ” 来表示
2)string声明为final的,不可被继承
3)string实现了,serializable接口,表示字符串是支持序列化的
4)string内部定义了 final char[ ] value用以存储字符串数据
5)通过字面量的方式(区分于new的方式)创建字符串时,此时字符串值声明在字符串常量池中;其实new也是,只不过是间接引用。
string的不可变性:
当对字符串进行修改,拼接或赋值等操作时需要重新指定内存区域
细节:
1)当字符串拼接时出现其中一个是变量时,结果就在堆中(视为new出来的);
一道面试题(重要!!!)
答案是good和best;
因为,方法进行操作的是形参,我们把属性的地址值传给形参,此时他们共同指向一个实例,当要对形参进行修改的时候,由于字符串的不可变性,会创建一个新的字符串给形参,属性还是指向原来的字符串;而第二个字符数组就不同了,它没有“不可变性”,对形参的操作也就直接对实例造成了影响;