比较操作
- 双等号==比较基本数据类型,只比较数值,与精度和类型无关
- 双等号==比较引用数据类型,比较的是内存地址,并不适用
- 比较字符串可以用.equals方法,比较的是字符串的内容
- 双等号==比较包装类也比较的是内存地址。如果是缓存中预留的数值,不用创建新包装类对象,数值相等的包装类对象用双等号比较为true,如果超出缓存,包装类会自动new一个新的包装类对象,此时数值相等的包装类对象用双等号比较为false
- 为了避免这种奇异,包装类对象的比较一般用.equals方法
String s1 = "abc";
String s2 = "abc";
System.out.println(s1 == s2);
String s3 = new String("abc");
System.out.println(s1 == s3);
System.out.println(s1.equals(s3));
Integer i1 = 128;
Integer i2 = Integer.valueOf(128);
System.out.println(i1 == i2);
System.out.println(i1.equals(i2));