在Java中,"=="用于字符串连接的情况下。

14 浏览
0 Comments

在Java中,"=="用于字符串连接的情况下。

String a = "devender";
String b = "devender";
String c = "dev";
String d = "dev" + "ender";
String e = c + "ender";
System.out.println(a == b);     //情况1: 输出true
System.out.println(a == d);     //情况2: 输出true
System.out.println(a == e);     //情况3: 输出false

ab都指向字符串常量池中的相同字符串字面量。所以情况1为true

String d = "dev" + "ender";

实际上会被内部处理为:

String d = new StringBuilder().append("dev").append("ender").toString();

为什么ad指向相同的引用,而ae不指向相同的引用?

0