effective java 学习笔记(一)

           最近在豆瓣上看到一些书评,很有感想,其中有一本叫 effective java据说很好,下载了看看,果然大作,很多东西都读不懂,功力尚浅,还得继续努力。读的时候感觉很爽,比讲语法的书好看多了。

第一部分 对象的创建和销毁。

讲了5条原则

1.用静态的工厂方法代替构造函数。
好处:避免创建重复的对象,因为静态的方法不许要创建对象就可以使用,造成不必要的浪费。重复返回同一个对象。保证单态。
工厂方法可以取更加容易记的名字,而构造函数则不行。
工厂方法可以返回一个原返回类型的子类对象,适合于基于接口的框架结构。
缺点: 类如果不包含公有的或受保护的构造函数,就不能被子类化。对于公有的静态工厂所返回的非公有类,也同样如此。
命名习惯:valueOf(), getInstance()
2.使用私有的构造函数强化singleton。
singleton代表那些本质上具有惟一性的系统组件。
两种实现方法。一是定义公有的static final 的类对象。
二是用方法返回一个对象。还有就是序列化的时候应该注意以后在看这方面的内容。
3.通过私有构造函数强化不可实例化的能力。
对一些工具类,只包含静态的方法和静态的域,把构造函数定义为私有的,以提高系统的性能。
4.避免重复创建重复的对象。
在循环中创建对象的代价是非常昂贵的,所以应该尽量避免创建重复的对象,加入静态快 static{} 和定义一些final 的常量,这样可以减少重复对象的定义。提高性能。在对象池尤其是数据库的连接的时候应该注意重发对象的避免,高效的提高系统性能。
5.消除过期对象的引用。
讲了一个内存泄露的例子。很经典的栈,在栈的弹出时经常出现过期引用,因为栈自己管理内存。
一般而言,只要一个类自己管理内存,程序员就应该警惕内存泄露,一旦一个元素被释放掉,则该元素中所包含的任何的对象的引用应该被清空。
另一个来源是缓存。一旦一个对象的引用放在缓存里,就很容易被遗忘。

   水平有限,就把自己看懂的那点东西写了写。

你可能感兴趣的:(Java)