effective java 读书笔记---第8章 通用程序设计

45.将局部变量的作用域最小化
每一个局部变量几乎都需要一个初始化表达式
for 循环优先于 while 循环

46. for each 循环优先于传统的 for 循环

47.了解和使用类库
java.util java.lang java.io

48.如果需要精确计算,不要使用 float 与 double
float 与 double 尤其不适合于货币计算
如果数值范围不超过9位使用 int 不超过18位使用 long 否则使用 Bigdecimal

49.基本类型优先于封装类型
自动封装减少了使用封装类型的繁琐操作,但并没有减少它的风险,封装类型需要注意 null 异常

50.如果其他类型更加适合,避免使用字符串
字符串不适合代替其他类型
字符串不适合代替枚举类型
字符串不适合代替聚集类型
字符串不适合代替能力表

51.当心字符串连接的性能
为连接 n 个字符串而重复使用字符串连接操作符,需要n 的平方级的时间,这是由于字符串不可变,当两个字符串放在一起时,它们的内容都需要拷贝,请使用 StringBuilder 来代替 String

52.通过接口引用对象
使用接口作为类型的习惯,程序会更加灵活
如果没有合适的接口,完全可以用类而不是接口来引用对象

53.接口优先于反射机制
java.lang.reflect 提供了通过程序来访问关于已转载类的信息的能力
但使用反射 丧失了编译时类型检查的好处 执行反射的代码非常笨拙 损失性能
通常普通方法在运行时不应该以反射方式访问对象
如果以有限形式使用反射机制,虽然夜壶付出代价,但是可以获取许多好处

54.谨慎的使用本地方法
使用本地方法来提高性能的方法不值得提倡

55.谨慎的进行优化
要努力编写好的程序而不是快的程序
好的程序体现了信息隐藏的原则
努力避免那些限制性能的设计决策
要考虑api 设计决策的性能后果
为获取好的性能对api 进行包装,这是一种非常不好的想法,api 性能可能在下个版本中就不存在,但被包装的 api以及由它引起的问题会一直困扰着你

56.遵守普遍接受的命名惯例

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值