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 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥15 stable diffusion
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误