Java 习题 (20)

题目:
编写一个接收两个字符串参数的方法,用各种布尔值的比较关系来比较这两个字符串,然后把结果打印出来。做 == 和 != 比较的同时,用equals() 做测试。在 main() 里面用几个不同的字符串对象调用这个方法。

解答:

import java.util.*;

public class chapterThree {
    static void method(String a, String b){
        System.out.println("fvalue == svalue: " + (a == b));
        System.out.println("fvalue != svalue: " + (a != b));
        System.out.println("fvalue.equals(svalue): " + (a.equals(b)));
    }

    public static void main(String[] args){
        method("Hello", "Hello");
        System.out.println("-------");

        String s = new String("Hello");
        method("Hello",s);
        System.out.println("-------");

        String s1 = new String("Hello");
        String s2 = new String("Hello");
        method(s2,s1);
        System.out.println("-------");

        method("Hello", "Bye");
    }
}

结果如下:
在这里插入图片描述
其实第二种和第三种情况是属于一类的。
在第三种情况里,创建了两个引用 (s1 和 s2),在做“==”运算时,是比较引用的,而不是比较值 (对象,Hello). 所以输出是false. 但,由于equals() 本来是比较引用的,但是查看了String 类之后:
在这里插入图片描述
发现equals() 在 String里已经修改成比较值 (对象,Hello). 由于两个引用 s1 和 s2 所对应的对象 (值) 是一样的,所以返回true.

第二种情况也是这么理解。


如果觉得不错的话,就用点赞或者关注来代替五星好评吧!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值