Java基本类型和包装类什么情况下判断相等(“==“或“equals“)?

发布时间 2023-03-22 21:09:12作者: littlewrong

Java中判断两个变量是否相等有两种方式:一种是利用 == 运算符,另一种是利用equals方法。如果变量是基本类型,那么使用 == 和使用equals会得到相同的结果,都是判断变量的值是否相对。

如果变量是引用类型,== 运算符判断变量是否指向同一引用对象,equals判断变量"值"是否相等。

Java值类型对应的包装类(Boolean、Byte、Short、Integer、Long、Float、Double、Charcater)可以利用 == 运算符进行值判断。

int inta = 65;
float floata = 65.0f;
Integer intb = 65;
Float floatb = 65.0f;
//inta == floata根据值判断,结果是true
System.out.println("inta == floata:" + (inta == floata));		
//inta == intb根据值判断,结果是true
System.out.println("inta == intb:" + (inta == intb));
//inta == floatb根据值判断,结果是true
System.out.println("inta == floatb:" + (inta == floatb));
 
String stra = "测试";
String strb = new String("测试");
String strc = new String("测试");
String strd = "测试";
//stra和strb指向不同的对象,结果是false
System.out.println("stra == strb:" + (stra == strb));
//stra和strd指向同一个对象,结果是true
System.out.println("stra == strd:" + (stra == strd));
//strb和strc指向不同的对象,结果是false
System.out.println("strb == strc:" + (strb == strc));
//strb和strc的值一样,结果是true
System.out.println("strb equals strc:" + (strb.equals(strc)));
//stra和strb的值一样,结果是true
System.out.println("stra equals strb:" + (stra.equals(strb)));