“==”,比较的是引用 “equals方法”比较的是具体内容

package com.java1234.chap03.sec08;

public class Demo2 {
    public static void main(String[] args) {
        //“==”,比较的是引用    “equals方法”比较的是具体内容
        String name1="张三";//直接复制方式
        String name2=new String("张三");//new的方式
        String name3=name2;//c中见指针,Java叫传递引用
        //比较的是引用
        System.out.println("name1==name2:"+(name1==name2));
        System.out.println("name1==name3:"+(name1==name3));
        System.out.println("name2==name3:"+(name2==name3));
        //“equals方法”比较的是具体内容
        System.out.println("name1.equal(name2):"+name1.equals(name2));
        System.out.println("nam1.equal(name3):"+name1.equals(name3));
        System.out.println("name2.equal(name3):"+name2.equals(name3));

    }
}
时间: 2024-08-05 03:44:18

“==”,比较的是引用 “equals方法”比较的是具体内容的相关文章

JAVA学习(二) String使用equals方法和==分别比较的是什么?(转)

String使用的equals方法和==的区别 equals方法和==的区别 首先大家知道,String既可以作为一个对象来使用,又可以作为一个基本类型来使用.这里指的作为一个基本类型来使用只是指使用方法上的,比如String s = "Hello",它的使用方法如同基本类型int一样,比如int i = 1;,而作为一个对象来使用,则是指通过new关键字来创建一个新对象,比如String s = new String("Hello").但是它的内部动作其实还是创建

JAVA面试题:equals()方法和== 区别

http://bbs.csdn.net/topics/390000725 总结: equals在没重写之前和==一样,重写之后,equals只要内容一样即为true equals跟==一般情况下是等价的,但是对于String类型,它重写了equals方法,比较的是内容.默认情况下两个都是比较的引用地址,除非你重写equals方法. equals源码: public boolean equals(Object anObject) { if (this == anObject) { return t

Object.equals() 方法

Object.equals() 方法: 1 public class EqualsTest1 { 2 public static void main(String[] args) { 3 //Cat c1 = new Cat(); 4 //Cat c2 = new Cat(); 5 //System.out.println(c1 == c2);//result:false 6 Cat c3 = new Cat(1,2,3); 7 Cat c4 = new Cat(1,2,3);//在重写equa

java重写equals方法(重点讲解)

为什么equals()方法要重写? 判断两个对象在逻辑上是否相等,如根据类的成员变量来判断两个类的实例是否相等,而继承Object中的equals方法只能判断两个引用变量是否是同一个对象.这样我们往往需要重写equals()方法. 我们向一个没有重复对象的集合中添加元素时,集合中存放的往往是对象,我们需要先判断集合中是否存在已知对象,这样就必须重写equals方法. 怎样重写equals()方法? 重写equals方法的要求: 1.自反性:对于任何非空引用x,x.equals(x)应该返回tru

【宋红康学习日记11】Object类与equals方法

1 == (1)当对象是基本数据类型时,比较值: (2)当对象是引用型时,比较的是地址值!!1 2 equals():只处理引用型数据:Object类中的equals方法依然比较的是地址值! 但在String,File,Date类重写了equals方法,比较的是值: 3 String类内存解析 Person p1=new Person("花花",20); Person p2=new Person("曹操",40); syso(p1==p2);//false syso

java equals 方法

package com.mydemo.controller; public class TestEquals { public static void main(String[] args) { Dog d1 = new Dog(1, 2, 3); Dog d2 = new Dog(1, 2, 3); // d1 永远不等于 d2,比较的是两个对象的引用 System.out.println(d1 == d2); // Object 的equals 方法默认比较两个对象的引用 System.ou

重写equals方法需要注意的几点

为什么equals()方法要重写? 判断两个对象在逻辑上是否相等,如根据类的成员变量来判断两个类的实例是否相等,而继承Object中的equals方法只能判断两个引用变量是否是同一个对象.这样我们往往需要重写equals()方法. 我们向一个没有重复对象的集合中添加元素时,集合中存放的往往是对象,我们需要先判断集合中是否存在已知对象,这样就必须重写equals方法. 怎样重写equals()方法? 重写equals方法的要求:1.自反性:对于任何非空引用x,x.equals(x)应该返回true

java 数组的 toString 方法和 equals 方法以及 java.lang.Object 对象的 toString 方法和 equals 方法

1 public class Test { 2 public static void main(String[] args) { 3 int[] a = {1, 2, 4, 6}; 4 int[] b = a; 5 int[] c = {1, 2, 4, 6}; 6 7 //下面这个方法打印的是a数组的引用地址 8 System.out.println(a.toString()); 9 //下面这个方法比较的是两个数组的引用是否相等 10 System.out.println("a.equals

05_动手动脑之String.equals()方法

Question: 请查看String.equals()方法的实现代码,注意学习其实现方法. Answer: java中的String.equals()方法的实现代码: equals()法是根类Object中的方法.源代码如下: public boolean equals(Object obj){return (this == obj);} 可见默认的equals方法,直接调用==,比较对象地址. 不同的子类,可以重写此方法,进行两个对象的equals的判断.String类源码中重写的equal