![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
effective java
文章平均质量分 61
href_2007
这个作者很懒,什么都没留下…
展开
-
创建和销毁对象
第1条:考虑用静态工厂方法代替构造函数好处:1。静态工厂方法的第一个好处是,与构造函数不同,静态方法具有名字2.静态工厂方法的第二个好处是与构造函数不同,它们每次被调用的时候,不要求非得创建一个新的对象3.静态工厂方法的第三个好处是与构造函数不同,它们可以返回一个原返回类型的子类型的对象。这样我们在选择返回对象的类型时就有了更大的灵活性。缺点1.静态工厂方法的主要缺点是...原创 2011-02-14 21:53:06 · 74 阅读 · 0 评论 -
对于所有对象都通过的方法
第7条:在改写equals的时候请遵守通用约定在改写equals方法的时候,你必须要遵守通过约定1.自反性:对于任意的引用值x,x.equals(x)一定为true2。对称性:对于任意的引用x和y,当且仅当y.equals(x)返回true时,x.equal(y)也一定返回true3.传递性:对于任意的引用值x,y,z如果x.equal(y)返回为true,y.equal(z)返回...原创 2011-02-15 22:08:21 · 146 阅读 · 0 评论 -
类和接口
第12条:使类和成员的可访问能力最小化要想区别一个良好的模块与一个设计不好的模块,最重要的因素是,这个模块对于外部的其他模块而言,是否隐藏了内部的数据和其他的实现细节。一个设计良好的模块会隐藏所有的实现细节,把它的api与实现清晰的隔离开来,然后模块之间只通过他们的api进行通信,一个模块不需要知道其他模块的内部工作情况。(被称为信息隐藏,或者封装)。信息隐藏之所以非要重要,理由源于:...原创 2011-02-16 22:25:11 · 78 阅读 · 0 评论 -
C语言结构的替代
第19条:用类代替结构如果一个公有类暴露了它的数据域,那么要想在将来改变该类内部数据表示是不可能得,因为公有类的客户代码已经遍布各处了。然而,如果一个类是包级私有的,或者是一个私有嵌套类,则直接暴露其数据域并没有本质的错误(该些情况没有对外公开)。(正确做法,私有域,公有的get,set方法)。第20条:用类层次来代替联合。第21条:用类来代替enum结构(指c里的enum)。...原创 2011-02-23 21:52:03 · 228 阅读 · 0 评论 -
方法
第23条:检查参数的有效性极大多数方法和构造函数都会对于传递给他们的参数值有某些限制。你应该在文档中清除的指明这些限制,并且在方法体的起始处对参数进行检查,以强迫施加这些限制。如果一个无效的参数值被传递给一个方法,而这个方法在执行之前首先对参数进行检查,则它很快会失败,并且清除的以一个适当的异常指明错误原因。如果这个方法没有进行参数检查,有可能会发生几种情形。处理过程中失败,并且尝试一...原创 2011-02-24 21:59:43 · 117 阅读 · 0 评论 -
通用程序设计
第29条:将局部变量的作用域最小化将局部变量的作用域最小化,可以增加代码的可读性和可维护性,并降低出错的可能性。使一个局部变量的作用域最小化,最有力的技术是在第一次使用它的地方声明。如果一个变量在使用之前就已经声明了,那么这只会带来混乱---对于试图理解程序功能的读者来说,这种做法只会分散他们的注意力。如果一个变量是在使用它的块的之外被声明的,那么程序退出该块之后,该变量仍然是...原创 2011-02-28 22:00:01 · 98 阅读 · 0 评论 -
异常
第39条:只针对不正常的条件才使用异常try{int i=0;while(true) a[i++].f();}catch(ArrayIndexOutOfBoundsException e){}三个错误:1.异常机制的设计初衷是用于不正常的情形,所以很少会有jvm实现试图对它们的性能做优化。所以,创建,抛出和捕获异常的开销是昂贵的。。2.把代码放在try-ca...原创 2011-03-01 22:05:29 · 88 阅读 · 0 评论 -
线程
多线程程序设计比单线程程序设计要困难的多。所以如果一个库中的类能够帮助你从底层的多线程程序设计中解脱出来,那么一定要使用这个类。第48条:对共享可变数据的同步访问synchronized关键可以保证在同一个时刻,只有一个线程在执行一条语句,或者一段代码块。同步是一种互斥的方式,即当一个对象被一个线程修改的时候,可以阻止另一个线程观察到内部不一致的状态。同步不仅可以阻止一...原创 2011-03-03 22:04:17 · 79 阅读 · 0 评论