`

effective java 第一版的一些编程规则

 
阅读更多

 

effective java 第一版中的规则

 

1、考虑用静态工厂方法代替构造函数

 

 

2、使用私有的构造函数强化singleton属性

 

 

3、通过私有构造函数强化不可实例化的能力

 

 

4、避免创建重复的对象 可以通过放在static代码块中来重复利用

 

5、消除过期的对象引用  主要针对的是像数据库连接池这样的需要自己来管理内存的程序

 

6、避免使用终结函数 finalizer 

 

7、改写equals的时候要遵守通用的规定 规定的等价关系

 自反性、对称性、传递性、一致性

 

8、改写equals的时候总要改写hashCode 方法 固定2个对象相等,那么它们的hashCode一定要相等

 

9、总是要改写toString方法 便于println打印该类的基本信息,而不是它的内存地址

 

10、谨慎的改写clone 要确保clone出来的对象不会影响原来的对象,一般通过实现 Clonable接口

 

11、考虑实现Comparable接口 

 

12、使类和成员的可访问性最小 确保所有的共有的静态域不会被修改

 

13、支持非可变性  

 

14、组合优于继承

 

15、要么专门为继承而设计、并给出文档说明,要么禁止继承

 

16、接口优于抽象类 抽象类的演化比接口的演化容易的多。设计接口的时候一定要非常谨慎,

以为如果修改接口中的方法的时候,所有实现了该接口的类都要实现这个方法。骨架即抽象类,实现的是继承的接口的最基本的一些功能。

 

17、接口只是被用于定义类型

 

18、优先考虑静态成员类

 

19、用类替代借口

 

20、用类层次来代替联合

 

21、用类替代enum结构

 

22、用类和接口替代函数指针

 

23、检查参数的有效性

 

24、需要时使用保护性拷贝

 

25、谨慎设计方法的原型

 

26、谨慎的使用重载

 

27、返回0长度的数组,而不是null

 

28、为所导出的API元素编写文档注释

 

29、将局部变量的作用域最小化

 

30、了解和使用库

 

31、如果要求精确的结果,请避免使用float和double  推荐使用BigDecima,或者long来进行货币的运算

 

32、如果其他类型更合适,则劲量避免使用字符串

 

33、了解字符串连接的性能

 

34、通过接口引用对象

 

35、接口优于反射机制

 

36、谨慎的使用本地化方法

 

37、谨慎的进行优化

 

38、遵守普遍的命名规范

 

39、只针对不正常的条件才使用异常

 

40、对于可恢复的条件使用编译时的异常,对了程序错误使用运行时的异常

 

42、劲量使用标准的异常

 

43、抛出的异常要适合于对应的抽象

 

48、对共享可变数据的同步访问

 

49、避免过多的同步

 

50、不要在循环的外面调用wait

 

51、不要依赖于线程调度器


分享到:
评论

相关推荐

    Effective C++ 中文版

     《Effective C++中文版(第3版改善程序与设计的55个具体做法)》不是读完一遍就可以束之高阁的快餐读物,也不是用以解决手边问题的参考手册,而是需要您去反复阅读体会的,C++是真正程序员的语言,背后有着精深的...

    java学习书籍及建议.docx

    《Java核心技术卷Ⅰ》:这是一本实用的Java教程,详细介绍了Java语言的核心概念和技术,包括基础知识、面向对象编程、输入输出、异常处理和线程等。 《Effective Java》:这本书是Java编程的经典参考书,由Java之父...

    javaeye热点阅读

    这是JavaEye论坛热点推荐_-_2009年2月_-_总第9期,个人认为对于JAVA学习的程序员了解当前的一些知识及行业动态非常有帮助。 1.0 Java 1.1 分享开源表达式解析器IK-Expression2.0 1.2 jbpm3与jbpm4实现对比 1.3 Java...

    软件工程工具书.docx

    (C语言之父不是谭浩强) C Primer Plus 第五版 C++ Primer Plus 第五版 C++编程思想 总感觉没有Java编程思想那样出色。 提高: C陷阱与缺陷 C与指针 如果C程序员只能选择两本书,第二本就是这个了。 第一本?第一本...

    javaweb网上购书源码-awesome-books:开发者推荐阅读的书籍

    Java技术手册(第6版) Maven实战 Netty实战 Netty IN ACTION Spring Boot实战 Spring Cloud微服务实战 Spring揭秘 实战Java高并发程序设计 深入理解Java虚拟机(第2版) JVM高级特性与最佳实践 C++ 书名 豆瓣评分 ...

    books:编程电子书目录带下载地址

    第一个纸质的书籍较贵,尤其是想认真学习的学生党负担不起 第二个每次重操作同样的事情,并且还不能很及时 根据以上2点,我就索性建立一个java的电子书共享群,将所有的电子书整理归档,并且做了一个思维导图,将...

    AndroidTraining

    第一节 分享 Java学习 入门,推荐《Head First Java》,即使没有学过编程的人也可以通过这本书入门。 进阶,推荐《Effective Java》,连Java之父都需要的书,Java最佳实践。 Android学习 推荐官方教程,最新最好的...

    推荐C++书目.doc推荐C++书目.doc

    《 C Primer Pius 》(第五版) Stephen Prata 一本既好又全的C基础讲义 2、《The C++ Programming Languague》特别版(Bjarne Stroustrup) 3、《C++ primer》第三版(Stanley Lippmans) 4、《Inside The C++ Object...

    Kotlin中局部方法的深入探究

    2011年7月推出的Kotlin项目深受《Effective Java》的影响,直到2016年2月15日第一个官方稳定版本Kotlin v1.0才正式发布,2017年Google I/O开发者大会中,Google宣布Kotlin成为Android开发的一级语言,Kotlin “转正...

    asp.net知识库

    Web标准和ASP.NET - 第一部分 XHTML介绍 在ASP.NET页面中推荐使用覆写(Override)而不是事件处理(Event Handler) 常用编码工具类,支持base64,md5,des,crc32 也谈谈技术面试 在C#里把ArrayList转换为Array 或 把...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    第一章 绪论 1 1.1 研究背景与意义 1 1.2国内外相关研究现状 2 1.2.1 在线认证检测平台开发现状 2 1.2.2 HTML5 3 1.2.3 Android 3 1.2.4 Android移动Web项目开发的三种解决方案:Native, Web和Hybrid优缺陷分析 4 ...

Global site tag (gtag.js) - Google Analytics