建设旅游网站的好处,网站推广计划包含的主要内容,wordpress作者插件,做网站3年什么是不可变类
不可变类是指一旦创建对象后#xff0c;其状态(属性值)就不能被修改的类。
一个不可变类具有以下特征#xff1a;
类的实例变量声明为私有的#xff0c;并且没有提供修改这些变量值的公共方法。类是final的#xff0c;防止被继承。类的实例变量声明为fin…什么是不可变类
不可变类是指一旦创建对象后其状态(属性值)就不能被修改的类。
一个不可变类具有以下特征
类的实例变量声明为私有的并且没有提供修改这些变量值的公共方法。类是final的防止被继承。类的实例变量声明为final一旦被初始化后就不能再修改。没有提供修改状态的公共方法。
不可变类的优点是
线程安全由于不可变类的状态不变所以不需要额外的同步机制来保护对象的一致性。缓存优化由于不可变类的对象是不可变的可以在需要时进行缓存以提高性能。安全性不可变类可以保证对象的一致性避免了意外的状态修改。
常见的不可变类包括String、Integer包装类、BigDecimal等。这些类都具有不可变性即一旦创建后它们的值将不会被修改。
为什么 Java 中 String 是不可变类
1、String 类中包含 char 数组 value、整形的 offset 和 count 三个属性这三个属性都是 private 的且没有提供方法修改数值因此在初始化后无法从外部改变。 2、String 类中的这三个属性都是被 final 修饰的无法从内部进行改变 3、方法区有一块特殊存储区域 String Pool字符串常量池当创建 String 时如果在 String Pool 中找到相同的字符串值则会返回一个已存在 String 的引用而不会新建一个对象。假设 String 是可变的则会导致其他引用这个字符串值的 String 的值发生变化。