Java编程基础知识——引用

博客主要介绍了Java中堆上对象的相关知识。包括声明引用变量、创建对象并赋值,分析不同操作下引用数和对象数的变化,如对象的引用赋值、抛弃对象可被垃圾收集器处理等。还讲解了创建Dog数组,强调Java数组类型的严格性,只能装入声明类型的元素。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ne
接下来了解堆上的生:
Book b = new Book();
Book c = new Book();
声明两个Book的引用变量并创建两个Book对象,然后将Book对象赋值给引用变量。现在这两个Book对象生活在堆上
此时:
引用数:2
对象数:2
在这里插入图片描述
Book d = c;
声明新的Book引用变量,但不创建新的Book对象而将变量c的值赋值给变量d。这代表“将c的字节组合拷贝给变量d”。
此时:
引用数:3
对象数:2
c与d引用到同一个对象。相同值得两份拷贝(一台电视机两个遥控器)。
在这里插入图片描述
c=b;
把变量b的值赋给变量c。现在知道这代表什么了。变量b的字节组合被拷贝一份给了c。
此时:
引用数:3
对象数:2
b和c两者都引用了相同的对象。
重点关注红色的框框内:
在这里插入图片描述
好的,再看堆上的死:
Book b = new Book();
Book c = new Book();
声明两个Book的引用变量并创建两个Book对象,然后将Book对象赋值给引用变量。现在这两个Book对象生活在堆上
此时:
引用数:2
对象数:2
在这里插入图片描述
b = c;
把变量c的值赋给变量b。两者带有相同的值。
对象1被抛弃且能够作垃圾收集器(GC);
此时:
引用数:2
对象数:2
被抛弃的对象数:1
对象1已经没有引用,变成无法存取的了。
在这里插入图片描述
c = null;
将null赋值给c。这代表它不再引用任何事物,但还是个可以被指定引用其他Book的引用变量。
对象2还引用到,所以不能够作垃圾收集器(GC)。
此时:
作用中的引用数:1
null的引用数:1
可存取对象数:1
被抛弃对象数:1
在这里插入图片描述
创建Dog数组
声明一个Dog数组变量:
Dog [] pets;
创建大小为7的Dog数组,并赋值给前面所声明的Dog[]类型变量pets:
pets = new Dog [7];
大家有没有发现少了什么?我们虽然有了Dog的引用,但是缺少实际的Dog对象!
pets [0] = new Dog();
pets [1] = new Dog();
Java注重类型:一旦数组被声明出来,你就只能装入声明类型的元素(编译器会根据数组所声明的类型来防止错误)!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值