基础第一阶段day08——==号注意事项 、 String类的equals比较相关方法、equals方法习题重点

本文详细探讨了Java中的==号在比较基本类型和引用类型时的不同行为,以及String类中equals()和equalsIgnoreCase()方法的用法。强调在使用equals()方法时,应将字符串常量放在前面以防止空指针异常。同时,通过一道习题解释了equals(Object obj)方法的使用,指出在自定义equals方法时,未传入参数会导致编译错误。
摘要由CSDN通过智能技术生成

==号:

(1)==号比较基本类型,比较的是变量中的具体值是否相等;

	    int a=1;
        int b=1;
        float c=2.0f;
        
        //==比较基本类型,比较的是具体值是否相等
        System.out.println(a==b);//true
        System.out.println(a==c);//false
        System.out.println(b==c);//false

(2)==号比较引用类型,比较的是变量中的地址值是否相等。

	    String str1="a";
        String str2="a";
        String str3=new String("a");
        
        //==比较引用类型,比较的是地址值是否相等
        System.out.println(str1==str2);//都在池中,地址值相同true
        System.out.println(str1==str3);//str1池中,str3堆中,地址值不同false
        System.out.println(str2==str3);//str2池中,str3堆中,地址值不同false

========================================================================================================================================================

String类的equals比较相关方法:

(1) String类中的 boolean equals(Object obj),比较俩个字符串是否相等;

(2)String类中的 boolean equlasIgnoreCase(String str),比较俩个字符串是否相等,忽略大小写。**

	    String str1="a";
        String str2="a";
        String str3=new String("a");
        String str4="b";
        
        //equlas(),比较的是内容是否相等
        System.out.println(str1.equals(str2));//俩个字符串内容相同,true
        System.out.println(str1.equals(str3));//俩个字符串内容相同,true
        System.out.println(str1.equals(str4));//俩个字符串内容不同,false

(3)注意:
当字符串常量和变量在进行比较的时候,推荐把字符串常量写在前面,避免空指针异常。

String str1=null;
String str2="a";

System.out.println(str1.equals(str2));
//Exception in thread "main" java.lang.NullPointerException

========================================================================================================================================================

equals(Obiect obj)习题

第一题:
编译并运行以下程序,以下描述哪个选项是正确的()

在这里插入图片描述
A、编译通过运行无异常
B、编译通过但运行时出错
C、行2出错,不能成功编译
D、不能成功编译,行3出错

解析:

public boolean equanls(Object);

equals 方法 的参数是Object,返回值是boolean

注意下,第二行是正确的,他是自定义的equals方法,equals并不是关键字所以定义方法名是可以的。

第三行调用了super类的equals方法,需要有参数,,但是没有写参数,所以第三行编译出错,选D。

============================================================================

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值