基本数据类型及其封装类的区别:
1).基本数据类型只能按值传递;封装类按引用传递。
2).基本数据类型在堆栈中创建,直接存储值;而对象类型,对象在堆中创建,对象的引用在堆栈中创建。
3).基本类型由于在堆栈中,效率高,但可能发生内存泄漏。
4).基本数据类型在声明时系统自动为其分配空间,而引用类型声明时只是分配了引用空间,必须通过实例化开辟数据空间后才能赋值。
5).基本数据类型跟封装类(引用类型)的默认值是不一样的,int是基本数据类型,Integer是int的封装类,是引用类型。int默认值是0,而Integer默认值是null,一旦java看到null,就知道这个引用还没有指向某个对象,在任何引用使用之前,都必须为其指定一个对象,否则报错。所以Integer能区分出0和null的情况。
注意:
1).基本类型所占的存储空间是不变的:这种不变性也是java具有可移植性的原因之一。
2).所有数值类型都有正负号,没有无符号的数值类型。
3).对基本数据类型封装之后,封装类可以有属性和方法,就可以利用这些属性和方法来处理数据,eg:Integer对象有parseInt(String str),就是将字符串转换为int类型。
4).数组对象也是一个引用对象,将一个数组赋值给另一个数组时只是复制了一个引用,所以通过某一个数组所做的修改另一个数组中也看得见。
2).所有数值类型都有正负号,没有无符号的数值类型。
3).对基本数据类型封装之后,封装类可以有属性和方法,就可以利用这些属性和方法来处理数据,eg:Integer对象有parseInt(String str),就是将字符串转换为int类型。
4).数组对象也是一个引用对象,将一个数组赋值给另一个数组时只是复制了一个引用,所以通过某一个数组所做的修改另一个数组中也看得见。