Java中String类的运用分析,双等号比较字符串对象

Posted 始于2019

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中String类的运用分析,双等号比较字符串对象相关的知识,希望对你有一定的参考价值。

public class Test {
public static void main(String[] args) {
String a = null;
String b = null;
String c = "";
String d = "";
String e = new String("abc");
String f = "abc";

System.out.println("a == b:" + (a == b));
System.out.println("c == d:" + (c == d));
System.out.println("e == f:" + (e == f));
}
}

控制台输出:

a == b:true
c == d:true
e == f:false

第一个a与b的比较,都是null,所以是a跟b相等。

第二个“”字符串是一个匿名对象,然后c和d都会指向这个匿名对象,堆内存地址是一样的,所以c跟d相等。

第三个e其实创建了2个String对象,一个是“abc”的匿名对象,一个是通过new关键字开辟出来的堆内存空间对象,然后e指向的其实是new开辟的那个String对象,而f指向的其实是“abc“这个匿名对象,所以f和e不相等。

String g = new String(null); 这种方式是不行的,编译时会报错。
















以上是关于Java中String类的运用分析,双等号比较字符串对象的主要内容,如果未能解决你的问题,请参考以下文章

double类型大小比较的方法

double类型大小比较的方法

String题目解析1

JAVA: String详解

根据你的理解,简要说明使用双等号(==)和equals()方法判断两个字符串是不是相等有啥区别

字符串比较--小问题大智慧