Java中==和equals()的区别

本文详细介绍了Java中==和equals()的区别。==用于比较基本类型时的值,以及引用类型时的对象内存地址。而equals()方法默认比较对象的内存地址,但在重写后可以用于比较对象内容。通过多个案例展示了equals()在不同场景下的应用,包括字符串比较和用户输入判断等。
摘要由CSDN通过智能技术生成

Java中==和equals()的区别

==:

  1. 比较基本类型时:比较的是是否相同
  2. 比较引用类型时:比较对象的内存地址是否相同

equals() :

  1. equals方法常用来比较对象的内容是否相同

  2. equals() 方法继承于Object类 而Object类是所有类的直接或间接父类

  3. 默认情况下,比较的是地址,用于比较两个对象是否相等 比较 2 个对象的内存地址是否相等.

  4. 重写该方法后比较对象的变量值是否相同 其本质还是基于 “==”

案例:equals比较

 public static void main(String args[]){
                Integer x = 5;
                Integer y = 10;
                Integer z =5;
                Short a = 5;

                System.out.println(x.equals(y)); //false 
                System.out.println(x.equals(z)); //true
                System.out.println(x.equals(a)); //false
        }

案例:equals比较2

public class Name14 {
    public static void main(String[] args) {
        System.out.println("请输入:");
        Scanner scanner = new Scanner(System.in);
        String a =scanner.next();
        String b = "恰北北";
        String c = "1";
        if(a.equals(b)){ //输入a=恰北北   b = "恰北北"
            System.out.println("相同ab:equals"); //相同ab:equals
            System.out.println(a.hashCode());//24405840
        }else {
            System.out.println("不相同ab:equals");
            System.out.println(a.hashCode());
            System.out.println(b.hashCode());
        }

        System.out.println("================");

        if(a.equals(c)){//输入a=恰北北   c = "1"
            System.out.println("相同ac:equals");
            System.out.println(a.hashCode());
        }else {
            System.out.println("不相同ac:equals");//不相同ac:equals
            System.out.println(a.hashCode()); //24405840
            System.out.println(c.hashCode()); //49
        }
    }
}

案例:if判断输入的是否为想要的

public class name2  {
    public static void main(String[] args) {

        Scanner a = new Scanner(System.in);
        String b = "恰北北";
        String c = a.next();
        if (c.equals(b) ){  //判断字符串是否相等  equals() 括号里放对比对象名称 用于引用类型对比   其根本还是基于 “==”  
            System.out.println("绝绝子");
        }else
        System.out.println("其他");

    }
    }

案例:if单选择结构

public class Name1 {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.println("请输入内容:");
        String s = scanner.nextLine();
        
        //equals()判断字符串是否相等
        if (s.equals("Hello")){
            System.out.println(s);
        }

        System.out.println("End");
        //凡是属IO流的类如果不关闭会一直占用资源.要养成好习惯用完就关掉
        scanner.close();
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值