/** * This is some code to illustrate the difference between equals and * ==. Interning is also illustrated. * * * @author Benjamin Shults */ public class Equals { public static void main(String[] args) { // String greet2 = "Hello"; String greet = new String("Hello"); String salute = new String("Hello"); String temp = salute; System.out.println("Initially:"); System.out.println(greet + ((greet == salute) ? " == " : " != ") + salute); if (greet.equals(salute)) System.out.println(greet + " equals " + salute); else System.out.println(greet + " not equals " + salute); salute = greet; // Add stuff here about Boolean.valueOf, Integer.valueOf, and the // interning/efficiency issues related to that. System.out.println("After salute = greet:"); if (greet == salute) System.out.println(greet + " == " + salute); else System.out.println(greet + " != " + salute); salute = temp.intern(); System.out.println("After salute = temp.intern():"); // This shows that there are actually three different String // objects floating around. if (greet == salute) System.out.println(greet + " == " + salute); else System.out.println(greet + " != " + salute); greet = greet.intern(); System.out.println("After greet = greet.intern():"); if (greet == salute) System.out.println(greet + " == " + salute); else System.out.println(greet + " != " + salute); if ("Hello" == salute) System.out.println("Hello == " + salute); else System.out.println("Hello != " + salute); if ("Hello" == temp) System.out.println("Hello == " + salute); else System.out.println("Hello != " + salute); if ("Hello" == "Hello") System.out.println("Hello == Hello"); else System.out.println("Hello != Hello"); if ("Hello".equals("Hello")) System.out.println("Hello equals Hello"); else System.out.println("Hello is not equal to Hello"); } } // Equals