Java 里面的 == 和equals的坑是在是太多了,即使做了多年java开发的程序员也不一定就能准确说出 a == b 或 a.equals(b) 这样简单的问题的答案。
请看下面这26道关于Long 和 bigdecimal 的相等比较,看看你是否可以准确说出每行代码的输出结果呢?
答案在文末,请先看题:
关于Long的相等比较:
1、System.out.println(Long.valueOf(“9999999”).equals(new Long(9999999L))); 输出:true/false?
2、System.out.println(Long.valueOf(“9999999”) == new Long(9999999L)); 输出:true/false?
3、System.out.println(Long.valueOf(“1”) == new Long(1L)); 输出:true/false?
4、System.out.println(1L == new Long(1L)); 输出:true/false?
5、System.out.println(new Long(1L) == new Long(1L)); 输出:true/false?
6、System.out.println(999999L == new Long(999999L)); 输出:true/false?
7、System.out.println(999999L == Long.valueOf(“999999”)); 输出:true/false?