STU8080 2021-08-22 10:31 采纳率: 100%
浏览 99
已结题

Java String工具类中的equals方法原理

JAVA的String工具类提供了equals方法,public boolean equals(Object anObject),入参是Object类,但是使用时入参可以直接是String类的对象,是什么原因?

package cn.it.test2;

public class StudentDemo {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        String s1 = "HelloWorld";
        String s2 = "Hello";
        System.out.println(s1.equals(s2));
    }
}

输出:false

问题:
s1和s2都是String类的对象,语句System.out.println(s1.equals(s2))中,使用了String类中的equals方法,String工具类中的equals方法入参是Object类对象,为什么入参是String类对象时也可以?传String类对象时向上转型为Object类了吗?

  • 写回答

3条回答 默认 最新

  • 全栈极简 博客专家认证 2021-08-22 10:38
    关注

    Object是所有类型的基类,所以给string没问题。比较的逻辑是按照顺序,一个字符一个字符比较。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 8月30日
  • 已采纳回答 8月22日
  • 修改了问题 8月22日
  • 创建了问题 8月22日

悬赏问题

  • ¥15 对于squad数据集的基于bert模型的微调
  • ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
  • ¥20 steam下载游戏占用内存
  • ¥15 CST保存项目时失败
  • ¥15 树莓派5怎么用camera module 3啊
  • ¥20 java在应用程序里获取不到扬声器设备
  • ¥15 echarts动画效果的问题,请帮我添加一个动画。不要机器人回答。
  • ¥15 Attention is all you need 的代码运行
  • ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗
  • ¥15 使用esm_msa1_t12_100M_UR50S蛋白质语言模型进行零样本预测时,终端显示出了sequence handled的进度条,但是并不出结果就自动终止回到命令提示行了是怎么回事: