java高效编程指南

java高效编程指南

ID:14722169

大小:919.00 KB

页数:8页

时间:2018-07-30

java高效编程指南_第1页
java高效编程指南_第2页
java高效编程指南_第3页
java高效编程指南_第4页
java高效编程指南_第5页
资源描述:

《java高效编程指南》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、JAVA高效编程指南ZTERCOSS开发部GUOJUNJAVA高效编程指南1创建和销毁对象1.1考虑用静态工厂方法替代构造函数如:publicstaticBooleanvalueOf(booleanb){return(b?Boolean.TRUE:Boolean.False);}优势:它们具有自己的名字不需要在每次调用时都去创建一个新的对象可以返回任何子类型的对象1.2使用私有构造函数强化singleton属性singleton类就是一种只能被实例化一次的简单类。这种类型典型地被用来表示那些本性上具有唯一特性的

2、系统组件,如:JNDI的name查找器。具体例子参见:com.zte.resmaster.helpers.NamingHelper1.3用私有构造函数强化不可实例化能力有些工具类不希望被实例化:对它进行实例化没有意义。如:java.lang.Math。然而在类中缺少显式构造函数的时候,编译器会自动地提供一个公共的无参数的缺省构造函数。在类中包含显式的私有类型构造函数来实现类的不可实例化特性。因为构造函数是私有的,所以它在类的外部不可访问。如果构造函数不会被类自身从内部调用,即能保证类永远不会被实例化。1.4避免

3、创建重复对象Strings=newString("guojun");//永远不要这么干!Strongs="guojun";//可以接受的改进1.5消除对过期对象的引用第8页共8页JAVA高效编程指南ZTERCOSS开发部GUOJUN一旦一个对象的引用被不小心地保留,不仅这个对象被排除在垃圾回收之外。而且所有被这个对象引用的对象也不会被垃圾收集,并顺延下去。一旦对象过期,清除资源以及对它们的引用。尤其自己的程序管理某些对象时,尤其如此。如类中使用对象数组,HashMap等等。1对象定义1.1重载equals时要遵

4、守的约定满足下面的条件就不要重载:l每个类实例本质上是唯一的l不关心类是否提供了“逻辑意义的等同“测试l超类已经重载了equals,而超类继承的行为适合该类l类是私有的或是或是包内私有的,而且可以确定它的equals方法永远不会被调用。当类有逻辑上的等同意义而不仅仅是对象意义上的等同,而且超类没有重载equals方法以实现期望的行为,这时需要重载。这种情形通常是数值类型的类(ValueObject)。这时,equals的重载不仅对满足程序员的需要是必须的,它也能使类实例通过可预知的,期望的行为来做map关键字或

5、set元素,以及Collection中的访问。1.2重载equals时永远重载hashCode在EntityBean中的关键字对象,必须这么做,否则程序会出现编译错误。1.3永远重载toString()推荐所有的子类重载这个方法,当对象传递给println方法/串的连接操作(+)时,toString()方法会自动调用。附加效果:有利于调试。如:定义一个人井对象,在toString()中返回人井名称或是编码,那么当调用参数或是返回值为人井对象时,你无需做其他编码,就能在Jbuilder中看到EJB调用时的人井的t

6、oString()产生的信息。1.4谨慎重载clone2类和接口第8页共8页JAVA高效编程指南ZTERCOSS开发部GUOJUN1.1最小化类和成员的可访问能力隐藏模块的内部数据和实现细节,仅仅把该暴露的部分暴露给调用者。这也是OO三概念之一:封装。如果把某些不应该暴露的方法暴露给调用者,一旦某个调用者使用了它,那么为了保证程序兼容,你就得继续提供对该方法的支持。访问性:l私有(private)仅在类内部可访问l缺省的(default)对包内的所有类可访问(注意:没有default的关键字,当没有指明任何修饰

7、符时,就是这种类型)l受保护的(protected)该类的子类和包内所有类可访问l公共的(public)访问不受限制子类重载父类的方法,子类中方法的访问能力不能低于父类中该方法的访问能力;否则编译器产生编译错误。1.2组合优于继承当确实需要继承时才采用继承,否则使用类组合来完成。1.3接口优于抽象类两种机制最明显的区别是抽象类容许包含某些方法的实现,而接口不行。如:com.zte.resmaster.helpers.AbstractDAOImpl,就是抽象类,它具有得到数据库连接和清除数据库资源的方法,但是怎么

8、实现具体的DAO操作必须是其子类实现。如果设计成抽象类,一旦子类要求继承其他类时就没有办法实现,因为Java中不能多重继承(extends),但是可以多重实现(implements)。换句话说就是接口是定义混合类型的理想选择。接口允许非层次类型框架的构造。接口通过封装类方式,能够获得安全、强大的功能。当然抽象类有另一个优势:改进抽象类比改进接口更加容易。一旦某个方法的实现发生了变化,仅

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。