String 类型不可变 如何理解?

来源知乎:https://www.zhihu.com/question/20618891

摘取如下:

怎么不可变?

String 不可变时因为其String类和内部的CHAR型数组都用的final去修饰,

String用final修饰时为了不能被继承

char型数组用final修饰,使得其指针不得修改指向的堆地址,但是在堆内部的数组里面时可以变换数值的。


不可变的好处:

1安全,作者举了String 和StringBuilder的例子,在平常的运用中,要牢记StringBuilder这种时传递引用的,会导致内容发生改变。

2线程安全。作者强调了HashSet'做键值的一定要还是不可变的!



又重温了一边JAVA里面堆和栈的作用。堆相当于存常量的地方,而栈是存引用的地方。


今晚决定把笔记记录在ONENOTE里面,但是在Ubuntu下面要使用onenote记录笔记的时候,因为翻不了墙,临时决定找一些能用的HOST

又因为host经常需要手动更新,所以还是在找到一个能用的host之后,连接到谷歌插件商店,去安装了科学上网插件,如今学个东西不容易啊!

/$ sudo mv /home/zs/Desktop/hosts /etc

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值