当代码被工具标黄色高亮时,代表需要优化或重构了
==
是值相等。对于Integer这样的数据类型而言,意义是两个Integer对象的内存地址相等。也就是说如果你有两个不同的Integer的对象,
如果是两个数字对象用==比较,比较的是对象地址(是否同一个对象,而不是”数值“)
哪怕他们的值一样,用==
判断也是不相等的。
如果是基本类型int,用equals也是可以的。因为编译器会自动把int装箱为Integer。
Integer a = new Integer(10); Integer b = new Integer(10); System.out.println(a.equals(b)); ===> TRUE System.out.println(a == b); ===> FALSE
结论,Integer对象尽量使用equals,避免报警告