首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
String为啥不可变?
[问答题]
请解释一下String为什么不可变?
查看答案及解析
添加笔记
求解答(0)
邀请回答
收藏(49)
分享
纠错
10个回答
添加回答
0
西瓜同学🏀
jdk中string类被设为final类
编辑于 2019-04-28 17:56:40
回复(0)
更多回答
2
猎码
String类源码中是一个value的字符数组,被private final修饰,被final修饰所以就不能变了!
发表于 2019-02-02 17:06:21
回复(0)
0
猿号12138
String是一个finnal所修饰的类,并且它的底层实现实际上一组字符数组,因此String是不可变。如果我们修改了string的值,实际上会在字符串池或者是堆中创建一个新的string
发表于 2020-11-12 09:12:52
回复(0)
0
牛客48939582号
常规使用上,因为final修饰不可改变,但是可以通过反射,是可以进行修改的!
发表于 2020-04-16 14:47:09
回复(0)
0
青莲
String是final声明的,不可继承,不可修改
发表于 2019-06-27 21:52:39
回复(0)
0
woli莹
String是所有语言中最常用的一个类。我们知道在Java中,String是不可变的、final的。Java在运行时也保存了一个字符串池(String pool),这使得String成为了一个特别的类。
发表于 2019-05-10 23:01:04
回复(0)
0
九零二w
String 类被声明为一个 final 类,任何对String的改变都会引发新的String对象的生成;
发表于 2019-04-28 23:11:00
回复(0)
0
江畔8670
String类源码中是一个value的字符数组,被private final修饰,被final修饰所以就不能变了!
发表于 2019-04-26 21:03:45
回复(0)
0
柠小哀
如果一个对象 在它创建完成之后 不能再改变它的状态 那么这个对象就是不可变的 不能改变状态的意思是 不能改变对象内的成员变量 包括基本数据类型的值不能改变 引用类型的变量不能指向其他的对象 引用类型指向的对象的状态也不能改变
发表于 2019-04-26 15:44:45
回复(0)
0
踟蹰千年
string是final修饰,不可变,同时string底层是字符串数组也是final修饰,这样做首先是安全,比如hashset中用string做为键,不会出现string变化,导致违反唯一键。另外节约内存
发表于 2019-01-28 07:52:43
回复(1)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
Java
Java工程师
上传者:
小小
难度:
10条回答
49收藏
4517浏览
热门推荐
相关试题
3.下列关于表中西部省市区2006...
资料分析
言语理解与表达
资料分析
评论
(1)
4.该校1997年男女教师的比例为...
资料分析
言语理解与表达
资料分析
评论
(1)
计算机在工作过程中,若突然停电,(...
计算机常识
普及
C++
Pascal
选择题
评论
(1)
来自
NOIP2008初赛普及组
Mysql中表student_in...
数据库
SQL
评论
(1)
SQL中,下列涉及空值的操作不正确...
SQL
评论
(0)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题