Java中String类是不可变的意思是当String对象被创建后,这个对象的状态就不能被改变,包括对象内的成员变量等都不能被改变。
Java把String设计为不可变,有以下优点:
当创建一个字符串常量时,判断该字符串是否在常量池中,如果存在,返回已经存在的字符串引用,如果不存在,新建一个字符串返回其引用。例如String a=“abc”;String b=“abc”;。变量a和b其实引用的是同一个字符串对象abc,如果String是可变的,有需要再创建一个新的变量。
在Java中常常要用到Hash值,String不可变总能保值Hash值不变,并缓存起来,不用每次都计算Hash值。
正因为String是不可变的,他们可以在多个线程中共享,是线程安全的。
为什么吧string设计成不可更改的常量
最新推荐文章于 2021-05-17 03:14:57 发布