填坑系列——Java中String创建与对比
程序员文章站
2022-04-26 16:30:35
...
我们知道创建String类型的变量一般有两种:
String str1 = "我好帅啊!";
String str2 = new String("我好帅啊!");
面试题:用""直接创建的字符串使用new关键字创建的字符串,当使用 == 和 equals 比较时,会返回 true 还是 false ?
我们测试一下
public static void main(String[] args) {
String a = new String("我好帅");
String b = new String("我好帅");
System.out.println(a == b);
System.out.println(a.equals(b));
String c = "我好帅";
String d = "我好帅";
System.out.println(c == d);
System.out.println(c.equals(d));
}
结果为:
false
false
true
true
解析:
使用new创建的c、d两个字符串,equals为true很简单时因为equals永远比较的是值,而 == 为false说明两个字符串的引用不一样。用new创建的字符串每次都会在JVM堆中创建,所以c、d都对应两个不同的字符串。
上一篇: c语言怎么转换成汇编语言
下一篇: 解决外部程序**conda环境