EffectiveJava-4

1、基本类型优先于装箱基本类型java

  Java的基本数据类型也叫作内置类型是java语言自己提供的数据类型,是引用其余类型的基础。Java的基本数据类型分为:整数类型、浮点类型、字符类型、布尔类型这四个类型。而每个基本类型又各自对应了一个引用类型,称为包装类型,装箱基本类型中对应于int 、double、和boolean的是Integer、Double、Boolean。函数

  1.基本类型与装箱类型的主要区别:spa

    (1)基本类型只有值,而装箱基本类型则具备它们的值不一样的同一性,即两个装箱基本类型能够具备相同的值和不一样的同一性。code

    (2)基本类型只有函数值,而每一个装箱基本类型则都有一个非函数值,除了它对应基本类型的全部函数值以外,还有个null。对象

    (3)基本类型一般比装箱类型更节省时间和空间。blog

  2.对装箱基本类型运用==操做符几乎老是错误的。接口

  3.当在一项操做中混合使用基本类型和装箱基本类型时,装箱基本类型就会自动拆箱。若是null对象引用被自动拆箱,就会抛出一个NullPointerException异常。io

  4.使用装箱基本类型的情景:class

    (1)做为集合中的元素、键和值不可使用基本类型,所以必须使用装箱基本类型。基础

    (2)在参数化类型和方法中,必须使用装箱基本类型做为类型参数,由于Java不容许使用基本类型。例如,你不能讲变量声明为ThreadLocal<int>类型,所以必须使用ThreadLocal<Integer>代替。

    (3)在进行反射的方法调用时,必须使用装箱基本类型。

 2、经过接口引用对象

  1. 若是有合适的接口类型存在,那么对于参数、返回值、变量和域来讲,就都应该使用接口类型声明。这样会使程序更加灵活

//合理,使用接口做为类型
Set<Son> SonSet = new LinkedHashSet<>(); //不合理,使用类做为类型
LinkedHashSet<Son> sonSet = new LinkedHashSet<>();

  2. 若是没有合适的接口存在,彻底能够用类而不是接口来引用对象。

  总结:能使用接口就使用接口,若没有合适的接口,就使用类层次结构中提供了必要功能的最小的具体类来引用对象。

《EffectiveJava》P229~P234,P234~P236

相关文章
相关标签/搜索
本站公众号
   欢迎关注本站公众号,获取更多信息