引用类型与基本数据类型区别

199 阅读2分钟

引用类型与基本数据类型区别

引用类型:

​ 类 接口 数组

简单来说 只要不是基本数据类型 都是引用数据类型

区别:

1.从概念方面来说

<1>基本数据类型:变量名指向具体的数值

<2>引用数据类型:变量名不是指向具体的数值,而是指向存数据的内存地 址,也及时hash值

2.从内存的构建方面来说(内存中,有堆内存和栈内存两者)

<1>基本数据类型:被创建时,在栈内存中会被划分出一定的内存,并将数 值存储在该内存中

<2>**引用数据类型:**被创建时,首先会在栈内存中分配一块空间,然后在堆 内存中也会分配一块具体的空间用来存储数据的具体信息,即hash值, 然后由栈中引用指向堆中的对象地址

举例

//基本数据类型作为方法参数被调用
public class Main{
	public static void main(String[] args){
	//基本数据类型
	int i=1;
	int j=1;
	double d=1.2;
	
	//引用数据类型
	String str="Hello";
	String str1="Hello";
	}
}

QQ图片20220824181318.png

3.从使用方面来说:

1.**基本数据类型:**判断数据是否相等,用==和!=判断

2.**引用数据类型:**判断数据是否相等,用equals()方法,==和!=是比较数值 的,而equals()方法是比较内存地址的

注:数据类型选择的原则:

  • ​ 如果要表示整数就使用int,表示小数就使用double;
  • ​ 如果要描述日期时间数字或表示文件(或内存)大小用long;
  • ​ 如果要实现内容传递或者编码转换使用byte;
  • ​ 如果要实现逻辑的控制,可以使用boolean;
  • ​ 如果要使用中文,使用char避免中文乱码;
  • ​ 如果按照保存范围:byte<int<long<double;