Equal与==

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

猜你喜欢

转载自hermosa-young.iteye.com/blog/2329420