码迷,mamicode.com
首页 > 其他好文 > 详细

equal与==使用实例

时间:2016-03-23 06:10:41      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:

public class CreateObj {
    int id=0;
    Person person;
    //覆盖默认的构造器
    public CreateObj(int id,Person p){
        this.id=id;
        this.person=p;
    }
    public static void main(String[] agrs){
        CreateObj obj1 =new CreateObj(2,new Person(10));
        CreateObj obj2 =new CreateObj(2,new Person(10));
        CreateObj obj3 =new CreateObj(2,obj1.person);
        //使用“==”比较两个对象的引用——地址值 是否相等:
        System.out.println(obj1==obj2);
        //比较两个实例对象时,无论用“equal”还是用“==”,比较的都是引用,即地址值
        System.out.println(obj1.equals(obj2));
        //比较两个实例对象中的基本数据类型的成员变量
        System.out.println(obj1.id==obj2.id);
        //比较两个实例对象中的引用数据类型的成员变量
        System.out.println(obj1.person==obj2.person);
        System.out.println(obj1.person==obj3.person);
    }
}
class Person{
    int age =0;
    public Person(int age){
        this.age =age;
    }
}

比较结果:

 

false
false
true
false
true

总结:①每new一个对象,堆中便开辟一块内存用来存储该类实体的地址值,new几个,创建几个,所以地址值皆不同

         ②比较引用对象时,无论用equal还是==,比较的都是类实体的地址值

equal与==使用实例

标签:

原文地址:http://www.cnblogs.com/sk-hy/p/5309457.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!