effective java 第六天

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

47.了解合使用类库

48.如果需要精确的答案,避免使用float合double

使用BigDecimal、int或者long来计算

49.基本类型优于装箱基本类型

区别:1.基本类型只有值;装箱类型具有和他们的值不同的同一性

           2.基本类型只有功能完备的值,而装箱类型还具有一个null值

           3.基本来行比装箱类型更节约时间和空间

在混合使用基本类型和装箱类型的时候,装箱类型会自动拆箱。

装箱类型的==比较是同一性比较。

50.如果其他类型更适合,则尽量避免使用字符串

1.字符串不适合代替其他的值类型

2.字符串不适合代替枚举变量的值

3.字符串不适合代替能力表capabilities

51.当心字符串连接的性能

为连接n个字符串而重复地使用字符串连接操作符,需要n平方级别的时间。由于字符串不可变,所以当两个字符串被连接在一起时,他们的内容都会被拷贝。

当字符串的数量庞大的时候,使用StringBuilder来替代String;或者将字符数组;或者每次只处理一个字符串。

52.通过接口引用对象

53.接口优于反射机制

反射的代价:

反射通常是在设计的时候用到,普通应用程序在应用的时候不应该以反射的方式访问对象。

54.谨慎地使用本地方法。

Java Native Interface  JNI  允许Java应用程序可以调用本地方法(native method),所谓的本地方法是指本地程序设计语言(C/C++等)来编写的方法。

本地方法在本地语言中可以执行任意的计算方法,并返回到Java程序设计语言。

现在的JVM实现得越来越快了,对于大多数任务,现在不适用本地方法也可以获得与之相当的性能。

本地语言不是安全的,因为本地语言是与平台相关的,使用本地方法的应用程序也不再是可自由移植的。

55.谨慎地进行优化

优化的弊大于利,尤其是不成熟的优化,产生的软件可能既不快速,也不正确。

不要因为性能而牺牲合理的结构:要努力编写好的程序而不是快的程序。

要努力避免那些限制性能的设计决策。一旦系统设计完毕,某些关系就很难改变,这要求我们谨慎地设计系统

要考虑API设计决策的性能后果

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

包名的确定:都已域名在前,并且顶级域放在前面。其余部分鼓励使用有意义的缩写形式。

类和接口的名称,包括枚举和注解的名称,都应该包括一个或多个多个单词,每个单词的首字母大写。

方法和域的名称与类和接口一样,但是第一个单词的首字母不用大写。常量域包含一个或多个大写字母,多个字母之间用_隔开

类型的表示:T:任意类型;E:集合的元素类型;K和V表示键和值;X表示异常。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值