String Pool Demo: == versus equals()
javaJavabeginnerinterview-prepjava
A short program that shows which strings share the pooled object, which are new objects, and what intern() does.
public class StringPoolDemo {
public static void main(String[] args) {
String literal1 = "java";
String literal2 = "java";
String created = new String("java");
String built = "ja" + "va".toString(); // not a compile-time constant, so a new object
System.out.println(literal1 == literal2); // true same pooled object
System.out.println(literal1 == created); // false new String creates a separate object
System.out.println(literal1.equals(created)); // true same characters
System.out.println(literal1 == built); // false built at run time
System.out.println(literal1 == built.intern()); // true intern() returns the pooled instance
}
}