扫码关注微信公众号
回复“面试手册”,获取本站PDF版
回复“简历”,获取高质量简历模板
回复“加群”,加入程序员交流群
回复“电子书”,获取程序员类电子书
在 Java 8 中,String
内部使用 char
数组存储数据。并且被声明为final
,因此它不可被继承。
public final class String implements java.io.Serializable, Comparable<String>, CharSequence {
private final char value[];
}
为什么String
要设计成不可变的呢(不可变性的好处):
1.可以缓存 hash
值( )
因为 String
的hash
值经常被使用,例如String
用做 HashMap
的 key
。不可变的特性可以使得 hash
值也不可变, 因此只需要进行一次计算。
2.常量池优化
String
对象创建之后,会在字符串常量池中进行缓存,如果下次创建同样的对象时,会直接返回缓存的引用。
3.线程安全
String
不可变性天生具备线程安全,可以在多个线程中安全地使用。
本站链接:https://www.mianshi.online,如需勘误或投稿,请联系微信:lurenzhang888
点击面试手册,获取本站面试手册PDF完整版