Java包装类自动拆箱和装箱

209 阅读1分钟

需要先掌握两个概念:

1、装箱就是自动将基本数据类型转换为包装器类型;拆箱就是自动将包装器类型转换为基本数据类型。

2、基础类型的==比较的是值是否相等。

下面介绍几种出现拆箱和装箱的情况

  1. 基础数据类型与封装类进行==、+、-、*、/运算时,会将封装类进行拆箱。
Long a = 900L;
int b = 800;
Long c = 100L;
Long d = 800L;
System.out.println(b == (a - c)); // true
System.out.println(b == (a - 100));// true
System.out.println(a == (b + 100));// true
System.out.println(a == (b + c));// true
System.out.println(a == b);// true

上面的代码中,第一个和第四个都是先对==右边的变量进行数学运算,然后自动拆箱成基本类型,因为有个 == ,左侧变量也会发生自动拆箱,所以最终都是两边进行基本类型值比较,最终结果都是true。

  1. 使用equals()方法并不会触发自动拆箱和装箱