八股文——JAVA基础:基本数据类型与包装类的区别
基本数据类型包含八种,
1.用途不同,在目前编程而言,基本除了使用局部变量会使用基本数据类型外,都会去使用包装类。包装类能够适用泛型是目前企业编程使用包装类的主要原因,而基本类型不行。除此之外,包装类中还有较多的调用方法。
2.内存占用不同,包装类的占用会大一些。
3.存储方式不同,基本数据类型作为局部变量会被存放在栈中,如果作为引用类型会被存放在堆中。包装类只会被存储在堆中。
4.比较方式不同,对于基本数据类型来说,= =比较的是值。对于包装数据类型来说,= =
比较的是对象的内存地址。所有整型包装类对象之间值的比较,全部使用 equals()
方法。特殊的比如Integer,如果Integer的范围在-128,127之间也可以使用==比较。
对于这个内容终于弄清了:无论是基本数据类型还是包装类还是其他引用类型,首先都是从jvm中的栈去取值,而基本数据类型拿到的是数值,而引用类型和封装类(封装类就是引用类型)拿到的是地址,地址对应在堆中。
==用于比较地址,equals也是用于比较地址,只不过对于封装类会进行重写而已。
5.默认值不同:封装类默认为null,而基本数据类型有非null默认值