据我所知,由于Java自动装箱,我可以这样做:
Integer i = 10;
Integer j = 10;
boolean b = i == j;
或者这个:
int ii = 10;
int jj = 10;
Integer i = ii;
Integer j = jj;
boolean b = i == j;
在这两种情况下,b都是 TRUE 。 然后,如果Integer.parseInt()函数在理论上返回一个int,我可以这样做:
Integer i = Integer.parseInt("10");
Integer j = Integer.parseInt("10");
boolean b = i == j;
在这种情况下,b也是 TRUE 。 如果我这样做,那么b也应该是真的:
Integer i = Integer.parseInt("200");
Integer j = Integer.parseInt("200");
boolean b = i == j;
实际上这里b FALSE 。任何人都知道发生了什么?感谢。
答案 0 :(得分:1)
你永远不应该在整数之间使用==它有时只是因为某些值(我认为低于128)由于性能原因而被Integer.valueOf()缓存。