基本概念理解与辨析

2018-11-14  本文已影响0人  边无海

final, finally, finalize 的区别

包装类

自动将基本类型转为引用类型的过程称为装箱,装箱的实质是调用包装器的valueOf方法实现;自动将引用类型转为基本类型的过程为拆箱,拆箱的实质是调用包装器的xxxValue方法(xxx代表对应的基本数据类型)实现。

装箱 Integer num = Integer.valueOf(3);
拆箱 int     num = new Integer(3).intValue();

特别注意:

  1. 装箱和拆箱发生在编译时期。
  2. 自动装箱规范要求boolean、byte、char 127,介于-128~127之间的short和 int被包装到固定的对象中,否则创建一个新对象。
  3. 对于自增操作,要先拆箱,再计算,最后装箱。
Integer n = 3;
 n++;

重载(overload)与重写(override)

将方法名和参数列表称为方法签名

override(重写):方法签名相同,返回值相同

  1. 方法名、参数、返回值相同。
  2. 子类方法不能缩小父类方法的访问权限。
  3. 子类方法不能抛出比父类方法更多的异常(但子类方法可以不抛出异常)。
  4. 存在于父类和子类之间。
  5. 方法被定义为final不能被重写。

overload(重载):方法名相同,参数不同

  1. 参数类型、个数、顺序至少有一个不相同。
  2. 不能重载只有返回值不同的方法名。
  3. 存在于父类和子类、同类中。
    注:重载解析:编译器根据各个方法给出的参数类型与特定方法调用所使用的值类型进行匹配来挑选出相应的方法
上一篇 下一篇

猜你喜欢

热点阅读