JAVA-----引用(reference)和对象(object)

引用类型

1.认识引用(reference)和对象(object)

示例代码1:

String str = "Hello World"; 

int[] arr = { 1, 2, 3, 4, 5 };

这里的 str 的类型是 String 类型的引用;该引用指向了一个String 类型的对象。
这里的 arr 的类型是 int[] 类型的引用;该引用指向了一个元素类型是 int 的数组类型对象。

2.引用和对象之间的关系
通过引用可以对对象施加影响。我们通常把这个关系称为,该引用指向该对象。

3.引用指向对象的一些规则

  1. 只有引用指向对象;没有对象指向引用,也没有引用指向引用,更没有对象指向对象。
  2. 对象可以被多个引用指向。
  3. 操作引用,其实操作的是引用指向的对象。

4.null 的理解

示例代码2:

int[] arr = null; // a 不指向任何的对象

通常把这种情况称为:arr等于空,或者 arr 等于 null。表达的意思是 arr 这个引用不指向任何对象。

5. 引用的赋值操作符
引用的赋值运算,是让被赋值的引用指向该引用当前指向的对象。

示例代码3:

int[] a = { 1, 2, 3, 4, 5 };
int[] b = null;
b = a; 

b=a的含义是让 b 指向 a 目前指向的对象。

示例代码4:

int[] a = null; // a 不指向任何的对象
int[] b = { 1, 2, 3, 4, 5 };
b = a; 

b=a的含义是让 b 指向 a 目前指向的对象,由于 a 目前不指向任何的对象。所以 b 也不再指向任何的对象。

6. 引用的比较操作符
引用的相等与不相等的比较,是比较两个引用是否指向同一个对象。

示例代码5:

int[] a = { 1, 2, 3, 4, 5 };
int[] b = { 1, 2, 3, 4, 5 };
	a == b; 
	// 由于 a 和 b 指向不同的对象,所以结果是 false。
	
	a != b;
	// 由于 a 和 b 指向不同的对象,所以结果是 true。
	
	b = a;
	// 让 b 指向 a 目前指向的对象。
	a == b; 
	// 由于 a 和 b 指向相同的对象,所以结果是 true。
	a != b; 
	// 由于 a 和 b 指向相同的对象,所以结果是 false。
	
	a = null;
	a == b; 
	// 由于 a 不指向对象,b 指向对象,所以结果是 false。
	a != b; 
	// 由于 a 不指向对象,b 指向对象,所以结果是 true。
	
	b = null;
	a == b; 
	// 由于 a 和 b 都不指向对象,所以结果是 true。
	a != b; 
	// 由于 a 和 b 都不指向对象,所以结果是 false。

总结:

  1. 引用是一种数据类型,用来指向对象。
  2. 对引用进行的大部分操作实际上都是操作的该引用指向的对象。
  3. 当多个引用指向同一个对象时,通过哪个引用修改了对象,其他引用都可以看到变化。
  4. 当一个引用不指向对象时,要求访问其指向的对象,就会遇到 NullPointerException。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值