动手动脑
我们通过new()来初始化定义的对象变量
int型可以直接使用“==”判断两变量值是否相等,对象变量不可以使用“==”判断两变量值,通常使用equals();
执行类成员定义时指定的默认值或类的初始化块,到底执行哪一个要看哪一个“排在前面”。
静态初始化块只执行一次。
创建子类型的对象时,也会导致父类型的静态初始化块的执行
![](https://img2020.cnblogs.com/blog/2023143/202010/2023143-20201027200531974-238169359.jpg)
装箱,就是把基本类型用他们相对应的引用类型包装起来,使他们可以具有对象的特质。
拆箱,就是跟装箱的方向相反,将Integer及Double这样的引用类型的对象重新简化为值类型的数据。
在装箱的时候自动调用的是Integer的valueOf(int)方法。而在拆箱的时候自动调用的是Integer的intValue方法。
在通过valueOf方法创建Integer对象的时候,如果数值在[-128,127]之间,便返回指向IntegerCache.cache中已经存在的对象的引用;否则创建一个新的Integer对象。上面的代码中i1和ij1的数值为100,因此会直接从cache中取已经存在的对象,所以i1和j1指向的是同一个对象,而i2和j2则是分别指向不同的对象。