String类的概念和不变性
* a:String类
* API中的String类的描述,发现String 类代表字符串
* Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现。
* 字符串是常量,在创建之后不能更改
* 其实就是说一旦这个字符串确定了,那么就会在内存区域中就生成了这个字符串。字符串本身不能改变,但str变量中记录的地址值是可以改变的。
* 源码分析,String类底层采用的是字符数组:
private final char value[]
private 修饰说明value只能在String类内部使用,而且又没有提供get方法,所以外部无法获取value数组,就无法改变数组中元素的值
final修饰说明value是常量,一旦创建,就不能被改变,value一旦被初始化成某个数组,将永远指向这个数组,不可能再指向其它的数组了
* b: 案例代码
/*
* String类特点:
* 一切都是对象,字符串事物 "" 也是对象
* 类是描述事物,String类,描述字符串对象的类
* 所有的 "" 都是String类的对象
*
* 字符串是一个常量,一旦创建,不能改变
*/
public class StringDemo {
public static void main(String[] args) {
//引用变量str执行内存变化
//定义好的字符串对象,不变
String str = "itcast";
System.out.println(str);
str = "itheima";
System.out.println(str);
}
}