(面试)基本数据类型与引用数据类型的区别

【基本数据类型】

基本数据类型:声明时直接在栈内存中开辟空间,并直接在当前内存中存放数据,赋值时传递的是变量中的值,

总的来说,基本数据类型传的是值

 

【引用数据类型】 

声明引用数据类型(数组或对象),会将实际的数据存放在堆内存中,同时,在栈内存中声明一个数组名或对象名,

存放着在堆内存中的首地址;

所以,当使用数组名赋值时,传递的是地址。总的来说,引用数据类型传的是地址

 

下面这张图详细解释了两者关系

(面试)基本数据类型与引用数据类型的区别_第1张图片

 

 

再说说int与integer的区别

  int 是基本数据类型,默认值为0,不需要进行实例化

  integer 是引用数据类型,是int的封装类型,默认值为null,创建该类型需要进行实例化。

  integer 会将常用的值(-128 to 127)cache起来,可以直接使用,如果是new(100)这种情况下会开辟新的堆内存。

(面试)基本数据类型与引用数据类型的区别_第2张图片

 

数据类型图解:

(面试)基本数据类型与引用数据类型的区别_第3张图片

你可能感兴趣的:(面试)