package day20161009; public class EqualTest { public static void main(String[] args) { int it = 65; float fl = 65.0f; System.out.println("65和65.0f是否相等?" + (it == fl)); char ch = 'A'; System.out.println("65和'A'是否相等?" + (it == ch)); String str1 = new String("hello"); String str2 = new String("hello"); String a = "abc"; String b = "abc"; System.out.println("a和b是否相等?"+(a == b)); System.out.println("str1和str2是否相等?" + (str1 == str2)); System.out.println("str1是否equals str2?" + (str1.equals(str2))); // s1直接引用常量池中的"黑客攻击" String s1 = "黑客攻击"; String s2 = "黑客"; String s3 = "攻击"; // s4后面的字符串值可以在编译时就确定下来 // s4直接引用常量池中的"黑客攻击" String s4 = "黑客" + "攻击"; // s5后面的字符串值可以在编译时就确定下来 // s5直接引用常量池中的"黑客攻击" String s5 = "黑" + "客" + "攻击"; // s6后面的字符串值不能在编译时就确定下来, // 不能引用常量池中的字符串 String s6 = s2 + s3; // 使用new调用构造器将会创建一个新的String对象, // s7引用堆内存中新创建的String对象 String s7 = new String("黑客攻击"); System.out.println(s1 == s4); // 输出true System.out.println(s1 == s5); // 输出true System.out.println(s1 == s6); // 输出false System.out.println(s1 == s7); // 输出false } } /*65和65.0f是否相等?true 65和'A'是否相等?true a和b是否相等?true str1和str2是否相等?false str1是否equals str2?true true true false false*/
http://cakin24.iteye.com/blog/2329004