java的引用理解

1.引用含义

存储对象的内存地址

2.java中new 出来的对象都是强引用

原因:强引用提供了最可靠、最可预测的对象生命周期控制

Object obj = new Object(); // 创建对象
obj = null; // 需要手动明确释放对象

3.实例对象的理解

Person p1 = new Person("张三"); // p1实例存储对象地址
Person p2 = p1;                // p2实例复制了p1的引用,但是都是指向同一个对象!!!
// 比较实例对象
System.out.println("实例比较: " + (p1 == p2 ));  // true
// 创建两个实例
Book book1 = new Book();
Book book2 = new Book();

// 比较实例对象
System.out.println("实例比较: " + (book1 == book2));  // false

4.反射创建对象和new创建的实例对象是一个意思,但是class就只有一个内存地址,所有创建的实例对象的class对象都是一个内存地址,但是每个实例对象对象地址不一样

//实例对象比较
Dog dog = (Dog.class).newInstance();    //java8之前
Dog dog2 = new Dog();
System.out.println("实例比较: " + (dog == dog2 ));  // false

//class对象比较
Book book1 = new Book();
Book book2 = new Book();
Class<?> c1 = book1.getClass();
Class<?> c2 = book2.getClass();
Class<?> c3 = Book.class;
System.out.println("Class比较1: " + (c1 == c2));  // true
System.out.println("Class比较2: " + (c1 == c3));  // true
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值