本文是《Effective Java》一书的整理笔记
1 优先使用 for-each 代替for循环
- for-each性能并不比for差,有时稍有性能优势
- for-each可以减少出Bug的几率
- for-each比for简洁
2 尽量使用标准库
- 减少重复造轮的时间
- 标准库的代码经过严格测试,在性能、稳定性方面有着非常大的优势
3 如果需要精确的答案,避免使用float和double
float
和double
没有提供完全精确的结果- 使用
int
、long
或者BigDecimal
来计算精确结果,尤其是在货币计算中- 如果数值范围没有超过9位十进制,可以使用
int
;小于18位则用long
;超过18位则必须使用BigDecimal
4 最小化局部变量作用域
- 在第一次使用它的地方声明局部变量
- 使用for循环将循环变量的作用域限制在循环体内
- 拆分方法,使方法小而集中
- 最小化局部变量1、有助于读者理解代码;2、减少Bug发生
5 基本类型优先于装箱基本类型
- 基本类型的性能优于装箱基本类型
- 装箱基本类型允许出现
null
值,因此在进行运算符操作时有可能抛出异常。例如Integer i; i < 0 ;
- 装箱基本类型的比较结果有时与基本类型不一致。
6 避免使用字符串的情况
- 字符串不适合代替其他类型的值,例如当一串数据从文本、网络等传入程序中后,应当将其转化为适合的类型。
- 字符串不适合代替枚举类型
- 字符串不适合代替聚集类型,例如用一个字符串表示多个对象的ID,并用
#
隔开,最好使用一个简单的类代替,通常是私有的静态类。
7 当心字符串连接符的性能
- 在大规模的场景中,应该使用
StringBuilder
代替字符串连接符
8 优先使用接口作为引用对象
- 使程序更加灵活,当需要做出更改时
9 慎用本地方法
- JVM越来越快,使用本地方法来提高性能不值得推荐
- 本地语言是不安全的
- 本地语言难以调试
10 谨慎优化
- 不要因为性能而牺牲合理的结构
- 不要费力去编写快速的程序,应当编写好的程序
欢迎大家访问我的博客,转载请注明出处
http://blog.youkuaiyun.com/abyss521