long和Long类型比较大小
Long是包装类,不能直接用==做比较,==比较的是地址。
public static void main(String[] args) { Long a1 = 127L; Long b1 = 127L; System.out.println(a1 == b1); System.out.println("----------------------------"); /** * long 是基本类型 * Long是对象类型,进行比较时:若验证相等则取地址,数值为(-128~127)则相等, * 因为这段数值取的是相同的地址,其余的则不相等,验证相等可用longValue(),可用equals(); */ Long a2 = new Long(128);; Long b2 = new Long(128); System.out.println(a2 == b2); System.out.println(a2.longValue() == b2.longValue()); System.out.println(a2.equals(b2)); System.out.println("----------------------------"); long a3 = 129L; long b3 = 129L; System.out.println(a3 == b3); }
结果:
true ---------------------------- false true true ---------------------------- true
Long和long比较的时候会不会自动拆包,不是很确定。安全起见,比较时有Long的都转为long就行了。
上一篇:
IDEA上Java项目控制台中文乱码