java String不可变问题

weixin_44479985 2019-01-17 12:55:35
String为什么被设计成不可变?
关于这个问题,我在网上查了资料,但网上说的不详细。比如说String被用作数据库或接口的参数,可变会带来安全问题。我不理解这句话的含义。最好举例说明
...全文
332 5 打赏 收藏 转发到动态 举报
写回复
用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的值随之改变。 一般来讲配置参数都必须不可变的,但是万一程序中调用啥函数的时候,进行了操作,若是不可变类型,不会影响其本身,否则配置文件会出错

62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧