相关读书笔记列表
NO.27 返回零长度的数组而不是null
如果返回null,对于每次调用到该方法的时候都需要做null判断,否则很容易抛出空指针异常,推荐返回一个零长度的数组,在通常情况下,这样的做法对性能几乎没有影响。
NO.28 为所有导出的API元素编写文档注释
需要增加注释的地方:类、接口、构造函数、方法和域声明,方法注释的内容:
调用该方法的前提条件;
调用后的后续处理(如捕获异常);
副作用(如方法启动线程后带来的安全性);
参数@param Describe;
返回@return Describe;
异常@throws if.....;
注意:注释中可以适用<p><code><tt>等HTML标签,但>,<等标签需要转义。
NO.29 讲局部变量的作用域最小化
在第一次适用局部变量的地方声明他;
要防止局部变量在“使用它的块”之外声明,这样会防止局部变量被意外使用;
几乎每一个局部变量的需要初始化,如果没有足够的信息来对一个变量进行有意义的初始化,那就推迟这个声明,直到可以初始化为止;
其他的方法如,把一个变量多的方法分成两个,每次操作一个方法,减少变量之间的干扰。
NO.30 了解和使用库
不要从头发明轮子,如果你要做的事情是很常见的,就去查下有没有这样的实现类,如果有,则使用它,这样会降低你实现相应功能的投入和代码的出错率。
NO.31 如果要求精确的答案,请避免使用 float和 double
float和 double不适合表示货币,在平时的使用中应该避免;如果希望系统来处理十进制的小数点,可以使用 BigDocimal,如果不考虑小数的处理,数值范围没有超过 9位的则可以用 int来处理,如果不超过 18位的,则可以用 long来处理,超过 18位的就必须用 BigDecimal处理。
NO.32 如果其他类型更适合,则尽量避免使用字符串
如果可以使用更加合适的数据类型,或者可以编写更加恰当的数据类型(如 DO、 POJO、枚举等),那么应该避免使用字符串来表示对象,若使用不当,字符串比其他类型更加笨拙,缺乏灵活性。
NO.33 了解字符串连接的性能
为连接 N个字符串而重复得地使用“ +”连接,要消耗 N的平方级别的时间。为了获得更高的性能,请使用 StringBuffer代替 String。
NO.34 通过接口引用对象
应该优先使用接口而不是类来引用对象,如果有合适的接口存在,那么对参数的返回值、变量和域的声明都应该使用接口类型,如 Vector是 List接口的实现,在声明时应该如下:
例外的情况:
① 当没有合适的接口存在,可以用类而不是接口来引用一个对象,如: String、 Integer;
② 当一个对象是基本类型的类,而不是接口时,应该用相关的基类引用这个对象,如: java.util.TimerTask;
③ 当一个类实现了一个接口,单它提供了接口中不存在的额外方法,如果程序依赖于这些额外的方法,那么这样的类应该只被用来引用它的实例,永远不应该被用作参数类型。
NO.35 接口优先于映像机制(反射机制)
反射机制是 Java一项强大的功能,对于一些特定复杂的程序设计中非常必要(如现在很流行的 spring框架),但在并非必须使用反射机制时,尽量避免使用反射,原因如下:
① 它在编译时不会进行类型检查;
② 实现代码冗长乏味,不易阅读;
③ 性能与一般的方法调用相比,要低下很多;
如果一个程序必须要与编译时未知的类一起工作,那么最好是用反射实例化对象,而访问对象时使用编译时刻已知的某个接口或者父类。
NO.36 谨慎地使用本地方法
尽量使用 Java自身提供的方法来代替本地方法(如用 Java提供的新功能来代替以前只有 C语言能实现个的功能),这样可以使系统变得更加安全,系统可移植性更高,也使代码变得更加容易阅读,如果一定要使用本地方法,请加强测试,并尽可能的少用。
NO.37 谨慎地进行优化
努力写好的程序而不是快的程序,程序要体现信息隐藏的原则,,性能问题应该是设计阶段就考虑,要避免那些限制性能的设计决定,如:应该用复合模式的公有类使用继承,则该类的性能永久的受其父类性能的影响,为了获得好的性能而对 API进行修改并非是一个好的做法,通常,这些做法对性能并没什么多大的影响,如果一个系统有了清晰、简明、结构良好的实现,请谨慎对其进行优化,因为 80%的性能问题存在于 20%的代码中,找出影响性能的代码才是问题的关键,可以借助一些性能分析的工具。
分享到:
相关推荐
"Effective Java读书笔记" Effective Java是一本关于Java编程语言的经典书籍,本笔记主要总结了Java语言的发展历程、静态工厂方法的应用、构造器模式的使用等重要知识点。 一、Java语言的发展历程 Java语言的发展...
《Effective Java》是Java开发领域的经典著作,作者Joshua Bloch深入浅出地阐述了编写高效、健壮的Java代码的技巧和最佳实践。以下是对该书部分内容的详细解释: 1. **产生和销毁对象** - Item1:静态工厂方法相比...
以下是对《Effective Java》笔记中可能涉及的关键知识点的详细解读: 1. **单例模式**:书中强调了如何正确实现单例模式,推荐使用`enum`来创建线程安全且唯一的实例,避免传统双重检查锁定的潜在问题。 2. **构造...
Effective Java 读书笔记 - 枚举与注解 本文总结了Effective Java 中关于枚举与注解的知识点,涵盖了枚举类型的优点、使用指南、避免使用 int 常量、使用 EnumSet 和 EnumMap 等。 枚举类型的优点 枚举类型提供了...
读书笔记:Effective Java中文版第3版笔记
《Effective Java》是Java...以上仅是《Effective Java》一书中部分核心知识点的概述,实际的读书笔记中会更详细地解释这些概念,并给出具体的示例代码。通过深入学习和实践,开发者可以极大地提升其Java编程的水平。
读书笔记:Effective Java中文版第二版示例、笔记
《Effective Java》是一本经典Java编程指南,作者是Joshua Bloch,这本书深入探讨了如何编写高质量、高效、可维护的Java代码。以下是对压缩包中各章节主要知识点的详细阐述: 1. **第2章 创建和销毁对象** - 单例...
读书笔记:Effective Java中文版学习项目
读书笔记:Java练习包括《Java编程思想》《算法》《Effective Java》等
读书笔记:Effective Java中文版 第2版
读书笔记:Effective Java中文版第二版示例代码
读书笔记:Effective Java 中文版(2版和3版)
读书笔记:读Effective Java中文版第3版阅读源码测试案列
读书笔记:Effective Java 中文版(第2版)总结 (美)Joshua Bloch 著
### Effective Java读书笔记(上) #### 第一章 引言 本书主要针对Java开发者提供了大量实用的编程指导建议,帮助读者提升代码质量和程序性能。在本章节中,我们将重点介绍对象的创建与销毁,以及一些重要的设计...
读书笔记:Effective.Java中文版(第3版)
除了课程内容,阅读官方文档、经典教材如《Head First Java》、《Effective Java》等,以及观看开源项目和在线教程,可以帮助巩固理论知识,提升实践能力。 总之,Java学习笔记旨在为初学者提供全面的学习路径,从...
“新建文本文档.txt”可能是一个简单的文本文件,用于记录学习过程中的笔记或者资源链接,或者可能是教程中的一部分内容,具体用途需打开文件查看。 总的来说,这份“Java学习PDF”是Java初学者宝贵的参考资料,...