部分引用:https://blog.csdn.net/weixin_42845574/article/details/84983808
Integer a1= Integer.valueOf("1");
int a2= Integer.parseInt("1");
Integer.parseInt()返回值为基本数据类型,即int
Integer.valueOf()返回值为包装类型,即Integer对象
我在这里记录一个问题:
同一个项目,一个运行在java1.7,一个运行在java1.8,
当时有一个比较是使用 Integer.valueOf(a1) > Integer.valueOf(a2)【a1为25,a2为30】,死活过不了,用idea的“计算表达式”计算的结果为false,
但是直接在7.4和8.2的NetBeans写比较又能正常,后来改成parseInt后,就正常了。
所以比较对象最好还是转成基本类型,可能这个问题是编译器的问题。对象型的比较最好还是用equal,正常的时候还是转成基础数据类型比较好