第六章

不可变对象
final关键字:类,方法,变量
修饰类:不能被继承
修饰方法:1.锁定方法不能被继承类修改。2.效率
修饰变量:基本数据类型变量,引用类型变量
修饰基本类型变量,赋值之后不能被修改,包括String。
修饰对象后,不能修改对象的引用,但是能修改对象的属性。

Java提供Collections.unmodifiableXXX:Collection,set,map.list...
Guava提供 ImmutableXXX:Collection,set,map.list...

安全共享对象的安全策略
线程限制:一个被线程限制的对象,有线程独占,并且只能被占有它的线程修改
共享只读:一个共享只读的对象,在没有额外同步的情况下,可以被多个线程并发访问,但是任何线程都不能修改它。
线程安全对象:一个线程安全的对象或者容器,在内部通过同步机制来保证线程安全,所以其他线程无需额外的同步就可以通过接口随意访问它。
被守护对象:被守护对象只能通过获取特定的锁来访问。

实现:不可变对象,线程封闭,同步容器,并发容器

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,806评论 1 32
  • 在一个方法内部定义的变量都存储在栈中,当这个函数运行结束后,其对应的栈就会被回收,此时,在其方法体中定义的变量将不...
    Y了个J阅读 9,875评论 1 14
  • 一、基础知识:1、JVM、JRE和JDK的区别:JVM(Java Virtual Machine):java虚拟机...
    杀小贼阅读 7,053评论 0 4
  • 一:java概述: 1,JDK:Java Development Kit,java的开发和运行环境,java的开发...
    慕容小伟阅读 5,801评论 0 10
  • 如果“善”有原因,它不再是善;如果“善”有它的结果,那也不能称为““善”,“善”是超乎因果联系的东西。 ...
    S香草冰淇淋阅读 1,105评论 0 0