首页 > 编程语言 > 详细

eff java 15条

时间:2015-11-08 17:46:31      阅读:243      评论:0      收藏:0      [点我收藏+]

不可变类最小化

 

现状:没注意过,对不变类理解不深

原因:不知道为什么要把一个类定义为不可变的

 

不可变类,好处:

1.线程安全,类的所有属性都可以在多个线程共享,不用同步

2.可以缓存不可变类

3.加快jvm速度

 

String就是一个典型的不可变类。

 

设计不可变类的原则:

1.设计为final,个人理解final和不可变类没有必然的联系,这里申明为final,主要是怕在继承的时候破话语义,比如StringChild继承String,StringChild完全可以设计为可变的,下次String str = new StringChild("abc"),还认为str指向的string是不可变的,不就产生歧义了么。

2.私有变量,final。对于final int a,其实可以设计为public,但是若以后要a的类型,改为引用一个对象,那么就只能private了,因为对象内的属性是有可能修改的,所以都申明为private.

3.深度复制,不管创建对象还是输出对象属性

4.不提该修改属性的方法。

eff java 15条

原文:http://www.cnblogs.com/jsy306/p/4947668.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!