String a = "devender";
String b = "devender";
String c = "dev";
String d = "dev" + "ender";
String e = c + "ender";
System.out.println(a == b); //case 1: o/p true
System.out.println(a == d); //case 2: o/p true
System.out.println(a == e); //case 3: o/p false
a и b оба указывают на тот же строковый литерал в пуле строковых констант. Итак, true
в случае 1
String d = "dev" + "ender";
должен быть внутренне использован что-то вроде -
String d = new StringBuilder().append("dev").append("ender").toString();
Как a и d указывают на одну и ту же ссылку, а не a и e?