安全发布对象-发布与逃逸
发布对象:使一个对象能够被当前范围之外的代码所使用
对象逃逸:一种错误的发布。当一个对象还没有构造完成的,就使它被其他线程所见
安全发布对象(单例模式:列一下)
- 在静态初始化函数中初始化一个对象引用
- 将对象的引用保存到volatile类型或者AtomicReference对象中
- 将对象的引用保存到某个正确构造对象的final类型域中
- 将对象的引用保存到锁保护的域中
不可变对象
- 对象创建之后其状态就不能修改
- 对象所有域都是final类型
- 对象是正确创建的(在创建期间,this引用没有逃逸)
final关键字:类、方法、变量
修饰类:不能被继承
修饰方法:1、锁定方法不能被继承类修改;2、效率
修饰变量:基本数据类型变量、引用类型变量
其他不可变对象:
Collections.unmodeifiableXXX:Collection,List,Set,Map,,,
Guava:ImmutableXXX:Collection、List、Set、Map
原文地址:https://www.cnblogs.com/nickup/p/9695386.html
时间: 2024-07-31 09:47:39