學(xué)習(xí)
17.7 點(diǎn)撥
- 對(duì)象引用相等
引用相等:指引用到堆上同一個(gè)對(duì)象的兩個(gè)引用是相等的。
如范例 17-5
Book bookA = new Book();
Book bookB = bookA;
bookA.title = "Java程序設(shè)計(jì)";
bookB.title = "Java Web開發(fā)";
若調(diào)用:
if (bookA == bookB) {
System.out.println(true);
} else {
System.out.println(false);
}
結(jié)果為true。
若調(diào)用:
if (bookA.equals(bookB)) {
System.out.println(true);
} else {
System.out.println(false);
}
結(jié)果為true。
對(duì)象bookA和bookB指向同一堆內(nèi)存,內(nèi)存地址及內(nèi)容一致,結(jié)果都為true。以上都只是判斷了引用相等。
Book bookA = new Book();
Book bookB = new Book();
bookA.title = "Java程序設(shè)計(jì)";
bookB.title = "Java Web開發(fā)";
bookA.price = 60.0;
bookB.price = 60.0;
if (bookA == bookB) {
System.out.println(true);
} else {
System.out.println(false);
}
if (bookA.equals(bookB)) {
System.out.println(true);
} else {
System.out.println(false);
}
對(duì)象bookA和bookB是兩個(gè)對(duì)立對(duì)象,堆內(nèi)存不同,結(jié)果都為false。若要判斷內(nèi)容相同,需要覆寫equals()。
- Java的垃圾回收機(jī)制
范例 17-14 java垃圾回收機(jī)制
package com.Javastudy2;
/**
* @author YangWang
* @date 2018年6月26日 下午11:37:50
* @Description TODO java垃圾回收機(jī)制
*/
public class P454_17_14 {
public static void main(String[] args) {
Book13 bookA = new Book13();
Book13 bookB = new Book13();
bookA.title = "Java程序設(shè)計(jì)";
bookB.title = "Java Web開發(fā)";
bookA.price = 39.8;
bookB.price = 59.6;
bookB = bookA; // 引用傳遞
bookB.title = "Android 開發(fā)";
bookA.printInfo(); // 此處方法使用對(duì)象調(diào)用,不是直接調(diào)用
}
}
class Book13 {
String title;
double price;
public void printInfo() {
System.out.println("title:" + this.title);
System.out.println("price:" + this.price);
}
}
運(yùn)行結(jié)果:

運(yùn)行結(jié)果

范例分析
小結(jié)
比較內(nèi)容相等還是得覆寫equals()。
記于2018年6月26日23:13:13
By Yvan