首页 > 代码库 > String 为什么是不可变的
String 为什么是不可变的
什么是不可变的:就是说一个对象在创建完成后,不能再改变它的状态即这个对象是不可变的。
不能改变状态的意思是不能改变对象内的成员变量。包括基本类型的值不能改变,引用类型的变量不能指向其他的对象,引用类型指向的对象的状态也不能改变。
例如:
String s = "123";
System.out.println("s = " + s);
s = "456";
System.out.println("s = " + s);
打印结果为:s=123 s=456
表面看上去 s 的值变了 实际上 s只是一个引用。只是引用发生了变化。
也就是说,s只是一个引用,它指向了一个具体的对象,当s=“123”; 这句代码执行过之后,又创建了一个新的对象“456”, 而引用s重新指向了这个心的对象,原来的对象“123”还在内存中存在,并没有改变。
内存结构如下图所示:
String的成员变量是private final 的,也就是初始化之后不可改变。
更深入就需要去看string 的定义了,string是final类型不可继承 不可改变。
String 为什么是不可变的
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。