社区
Java SE
帖子详情
java String不可变问题
weixin_44479985
2019-01-17 12:55:35
String为什么被设计成不可变?
关于这个问题,我在网上查了资料,但网上说的不详细。比如说String被用作数据库或接口的参数,可变会带来安全问题。我不理解这句话的含义。最好举例说明
...全文
398
5
打赏
收藏
java String不可变问题
String为什么被设计成不可变? 关于这个问题,我在网上查了资料,但网上说的不详细。比如说String被用作数据库或接口的参数,可变会带来安全问题。我不理解这句话的含义。最好举例说明
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
podd
2019-01-28
打赏
举报
回复
String被用作数据库或接口的参数,可变会带来安全问题 这应该是和sql注入有关, 因为string类型参数可能会被人传入一些拼接的sql语句
reupe
2019-01-28
打赏
举报
回复
每个语言设计都包含大量设计者的主观思考
yuji_tt
2019-01-27
打赏
举报
回复
用Stringbuffer.append
huaoppo
2019-01-26
打赏
举报
回复
为什么你一定要它变了。
要变就用Stringbuffer
小小菜鸟肥
2019-01-17
打赏
举报
回复
首先调用change函数,刚开始str1和chs1指向str和chs对应的堆空间,执行后,因为String不可变,所有new一个新空间存放hello,str1指向改变。而char[]是可变的,则不会new新空间,导致chs的值随之改变。 一般来讲配置参数都必须不可变的,但是万一程序中调用啥函数的时候,进行了操作,若是不可变类型,不会影响其本身,否则配置文件会出错
java
中
String
的传参和
不可
变
问题
博客围绕
Java
中
String
的传参和
不可
变
问题
展开。通过例子表明,方法调用创建新字符串而非修改原始字符串,原始字符串保持不
变
。虽认为
String
是引用类型,传递地址,但测试发现函数中改
变
str值无效,本质原因是
String
为封装类。
Java
学习--
String
不可
变
问题
本文介绍了
Java
中
String
的
不可
变
特性,即创建后值不能改
变
,修改操作会新建对象覆盖旧对象。
Java
将
String
设计为final类,可防止继承和重写,避免安全
问题
并保证线程安全。还通过比较哈希码说明修改性能较低。
java
中
String
的传参和
不可
变
问题
探究
本文探讨了
Java
中
String
类的
不可
变
性及其对replace方法的影响。通过具体示例解释了为何使用replace方法更改
String
对象时,原始字符串并未发生
变
化。
Java
-
String
深究(关于
String
对象
不可
变
问题
)
本文深入讨论了
Java
中
String
对象的
不可
变
性,并通过一个具体的代码示例解释了为何通过反射机制可以修改
String
对象的值。文章指出,虽然
String
对象在正常情况下是
不可
变
的,但利用反射技术可以绕过这一限制,从而改
变
String
对象的值。同时,文章还解释了通过sub
string
()方法创建的新
String
对象为何不会受到这种
变
化的影响。
Java
中的
String
类真的
不可
变
吗?
java
面试常见
问题
文章探讨了
Java
中final关键字如何确保
String
类的
不可
变
性,以及为什么
String
是
不可
变
的。通过源码分析和案例展示了
String
的内部结构和内存布局,强调了
String
的
不可
变
性指的是对象引用的不
变
性而非内容。通过反射可以改
变
String
的内容,但这并不推荐在常规编程中使用。最后,总结了保持
String
不可
变
的重要性以及如何实现
不可
变
性。
Java SE
62,622
社区成员
307,255
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章