Integer.parseInt()和Integer.valueOf()区别
Integer.paserInt(s) | Integer.valueOf(s) |
---|---|
将字符串s转换成为有符号的int基本类型 | 将字符串s解析成为Integer对象 |
Integer.valueOf(s)
Integer.valueOf(s)多次解析同一个字符串对象时,有时得到的是同一个对象,有时得到的是不同的对象,这与s对应的数值范围有关。
s对应的数值范围在-128-127之间,得到的是同一对象,在此范围之外的就不是同一对象。
原因是-128-127之间的整数值使用非常频繁,每次创建的Integer在这个范围之间的之间从缓存中获取。在此数值之外的,就会重新创建。
int和Integer之间的联系
int会自动包装成Integer,Integer会自动解包装为int
//将Int包装为Integer
Integer i = 1000;
//将Integer解包装为Int
int n = new Integer(100);