equal重写

string类内存解析

sting s1 = “aa”              string s2 = “aa”         string s3 = new string(“aa”)

s1 和 s2 的内存地址其实是一样的,都是先从字符串常量池中去找。 new出来的东西都放在堆空间

==和equals操作是不同的

 ==操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同。       equals操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相同,重写后其实就是单纯比较内容,即逻辑上。

比较两个order对象的属性是否完全相同。

public boolean equals(object obj){
if(this == obj){
//地址如果都一样,属性肯定也一样
return true;
}else if(obj instanceof Order){
Order o1 = (Order)obj;
return this.orderID == o1.orderID && this.orderName.equals(o1.orderName);
//int直接用==  string则用equals
}else{
return false;
}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值