==
- 对于基本数据类型,也称原始数据类型(byte,short,char,int,long,float,double,boolean)
==
比较的是他们的值 - 复合数据类型(类)
==
比较的一定是他们是否是同一个Object
特殊情况
- 对于基本类型,auto boxing会有缓存,缓存范围:true, false, a byte, a char in the range u0000 to u007f, or an int or short number between -128 and 127
- 对于字符串常量,String类会有缓存
所以
Integer a = 10;
Integer b = 10;
System.out.println(a == b); // => true
Integer c = new Integer(10);
System.out.println(a == c); // => false
Integer d = 128;
Integer e = 128;
System.out.println(d == e); // => false;
String s1 = "abc";
String s2 = "abc";
System.out.println(s1 == s2); // => true
String s3 = new String("abc");
System.out.println(s1 == s3); // => false
近期评论