首页 > 编程语言 >Java判断两个字符串(对象是否相等)

Java判断两个字符串(对象是否相等)

时间:2023-02-15 18:45:01浏览次数:34  
标签:相等 Java str2 str1 Object equals System 字符串

Java判断两个字符串(对象是否相等)

在Java中,常见的判断两个字符串(对象)是否相等的方法有两个,一个是.equals()方法,还有一个是"=="操作符,这两个的主要区别如下:

  • .equals()方法比较的是两个字符串(对象)的内容是否相等;
  • “==”操作符比较的是两个字符串(对象)的地址是否相等。

例如:

public class Demo {
    public static void main(String[] args) {
        String str1=new String("Hello,World!");
        String str2=new String("Hello,World!");

        System.out.println("str1.equals(str2):"+str1.equals(str2));
        System.out.println("str1==str2:"+(str1==str2));

        System.out.println("str1's address:"+System.identityHashCode(str1));
        System.out.println("str2's address:"+System.identityHashCode(str2));
    }
}

结果如下:

str1.equals(str2):true
str1==str2:false
str1's address:440434003
str2's address:1032616650

Process finished with exit code 0

当然,在Java里,默认的类都是继承Object类的,我们翻看一下Object类的equals()方法:

public class Object{
    public boolean equals(Object obj) {
        return (this == obj);
    }
}

从代码中可以看出,Object类的equals()方法默认采用的是“==”操作符,假如子类没有重写Object的equals()方法,那么当子类的对象在进行比较的时候也会默认采用equals()方法,因此有时候我们有必要重写equals()方法。

标签:相等,Java,str2,str1,Object,equals,System,字符串
From: https://www.cnblogs.com/xiaomitu/p/17124282.html

相关文章

  • Caused by: java.lang.ClassNotFoundException: org.apache.commons.fileupload.FileI
    今天复习javaweb的时候遇到tomcat部署运行不了的问题。这个时候请注意,注意是否jar成功导入。显然我这里是有的,但tomcat就不一定了显然tomcat并没有找到需要的jar包这......
  • java 正则踩坑
    1.String.replaceAll(Stringregex,Stringreplacement)方法问题默认替换会把regex字符串当作一个正则表达式解析,这样的话如果想直接替换就不能出现正则语义。否则会......
  • JAVA线上参数设置及常见问题
    常用配置参数jar包启动配置命令java-Xmx8g-Xms8g-XX:+UseG1GC-jar/home/pgcp/pgcp-0.0.1-SNAPSHOT.jartomcat启动配置参数在/bin/catalina.sh中/cygwin=false前......
  • java 之 UncaughtExceptionHandler异常处理机制
    1.java1.5版本出现的 UncaughtExceptionHandler当线程由于未捕获异常突然终止时调用的处理程序的接口。当一个线程由于未捕获异常即将终止时,Java虚拟机将使用thread......
  • JavaWeb的前期准备
    一、概念1.什么是javaWebJavaWeb指的是,java语言编写的可以通过浏览器访问的程序,统称为JavaWeb,它基于请求和响应。2.什么是请求请求指的是客户端向服务器发送数据,叫请......
  • 字符串问题选讲
    [国家集训队]最长双回文串Manacher板子题,先跑出每个点为中心的最长回文串,然后求出每个点为左右端点的最长回文串,之后枚举分界点统计答案即可。submission「JZOI-1」拜......
  • Java main方法所在类初始化顺序
    目录1、main方法特性2、与所在类的关系1、main方法特性访问权限是publicmain()是static静态,因此如果在main方法中调用本类的其他方法也必须是静态方法,否则需要先实例化......
  • java 按照自定义顺序枚举实体类的属性值
    工具类/***按照字段顺序进行拼接**@paramobj对象,需要在字段上添加FieldOrder注解*@paramfix拼接符号*@param<T>*@ret......
  • java selenuim 对canvas进行截图
    之前通过jsoup爬取一些静态的数据都可以 最近要爬一张动态渲染的地图   jsoup爬不出来 只能用selenuim 打开浏览器截图了 selenuim按照过程有点小坑......
  • java 代码优化
    代码优化的目标是:1.减小代码的体积2.提高代码运行的效率1、尽量指定类、方法的final修饰符带有final修饰符的类是不可派生的。在Java核心API中,有许多应用final的例子......