动力节点首页 全国咨询热线:400-8080-105

绑定手机号,登录
手机号

验证码

微信登录
手机号登录
手机号

验证码

30天自动登录
微信登录与注册
微信扫码登录与注册

扫码关注微信公众号完成登录与注册
手机号登录
首页 > 文章

Java中equals()与==联系和区别的总结

03-29 13:05 371浏览
举报 T字号
  • 大字
  • 中字
  • 小字

1.==的使用

==为运算符,可以用在基本数据类型和引用数据类型变量当中。

基本数据类型包括数值型(整数类型(byte,short,int,long),浮点类型(float,double)),字符型(char)和布尔型(boolean)

(1)基本数据类型变量的比较:

public class Test {
    public static void main(String[] args) {
        int i=1;
        int j=1;
        System.out.println(i==j);//true
        float k=1.0f;
        System.out.println(i==k);//true
        double l=1.0;
        System.out.println(i==l);//true
        System.out.println(k==l);//true
        char b=1;
        System.out.println(i==b);//true
        char c=97;
        char c1='a';
        System.out.println(c==c1);//true
    }
}

代码运行结果如图所示:

(2)引用数据类型的比较:

引用数据类型包括类(class),接口(interface)和数组([ ])。

public class Test {
    public static void main(String[] args) {
        //实例化对象,创建内存
        Person p1=new Person("小莹",18);
        Person p2=new Person("小莹",18);
        System.out.println(p1==p2);//false,二者地址值不同
        String str1=new String("小贾");
        String str2=new String("小贾");
        System.out.println(str1==str2);//false,与上面类似
    }
}
class Person {
    String name;
    int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
}

代码运行结果如图所示:

得出结论:

  • 基本数据类型变量的比较,比较的是变量保存的数据是否相等,而并不一定要求类型相同。
  • 引用数据类型变量的比较,比较的是两个对象的地址值是否相等,比较的是两个变量是否来自同一个对象实体。

2.equals()的使用

equals()为一种方法,而非运算符,只能适用于引用数据类型。

public class Test {
        public static void main(String[] args) {
            Person p1=new Person("小莹",18);
            Person p2=new Person("小莹",18);
            System.out.println(p1.equals(p2));//false

            String str1=new String("小贾");
            String str2=new String("小贾");
            System.out.println(str1.equals(str2));//true


        }
}
class Person{
    String name;
    int age;
    public Person(String name,int age){
        this.name=name;
        this.age=age;
    }
    public Person(){

    }
}

代码运行结果如图所示:

得出结论:

  • Object类中的equals()方法的作用和"=="是相同的,比较的是两个对象的地址值是否相同。
  • String,Date,File等都重写了Object中的equals()方法,重写后比较的是两个对象的内容是否一致。

3.总结

  • ==既可以比较基本数据类型也可以比较引用数据类型变量,其中基本数据类型变量间比较的是数值,对于引用数据类型变量间比较的是内存地址。
  • equals()方法若没被重写默认和==一样,String,Date,File,包装类等的equals()方法是被重写过的,作用为比较对象的内容。
0人推荐
共同学习,写下你的评论
0条评论
代码小兵516
程序员代码小兵516

7篇文章贡献20045字

相关课程 更多>

作者相关文章更多>

推荐相关文章更多>

Java面试题及答案整理

代码小兵66904-21 20:01

6道经典算法面试题

杨晶珍05-12 16:39

简述Spring MVC的核心组件

代码小兵49806-11 16:26

SpringMVC 中的组件

代码小兵49806-11 16:28

Spring常见面试题

代码小兵92504-17 16:07

发评论

举报

0/150

取消