首页 > 试题广场 >

String为啥不可变?

[问答题]
jdk中string类被设为final类
编辑于 2019-04-28 17:56:40 回复(0)
更多回答
String类源码中是一个value的字符数组,被private final修饰,被final修饰所以就不能变了!
发表于 2019-02-02 17:06:21 回复(0)
String是一个finnal所修饰的类,并且它的底层实现实际上一组字符数组,因此String是不可变。如果我们修改了string的值,实际上会在字符串池或者是堆中创建一个新的string
发表于 2020-11-12 09:12:52 回复(0)
常规使用上,因为final修饰不可改变,但是可以通过反射,是可以进行修改的!
发表于 2020-04-16 14:47:09 回复(0)
String是final声明的,不可继承,不可修改
发表于 2019-06-27 21:52:39 回复(0)
String是所有语言中最常用的一个类。我们知道在Java中,String是不可变的、final的。Java在运行时也保存了一个字符串池(String pool),这使得String成为了一个特别的类。
发表于 2019-05-10 23:01:04 回复(0)
String 类被声明为一个 final 类,任何对String的改变都会引发新的String对象的生成;
发表于 2019-04-28 23:11:00 回复(0)
String类源码中是一个value的字符数组,被private final修饰,被final修饰所以就不能变了!
发表于 2019-04-26 21:03:45 回复(0)
如果一个对象 在它创建完成之后 不能再改变它的状态 那么这个对象就是不可变的 不能改变状态的意思是 不能改变对象内的成员变量 包括基本数据类型的值不能改变 引用类型的变量不能指向其他的对象 引用类型指向的对象的状态也不能改变
发表于 2019-04-26 15:44:45 回复(0)
string是final修饰,不可变,同时string底层是字符串数组也是final修饰,这样做首先是安全,比如hashset中用string做为键,不会出现string变化,导致违反唯一键。另外节约内存
发表于 2019-01-28 07:52:43 回复(1)