int与integer的使用,该如何解决
int与integer的使用
jdk1.5之后有l auto-boxing
这样是可以正常run的
我看到现在项目里面的id都是Integer类型的
我想问,为什么不用int呢
用Integer好处在哪
这段代码跑可以,但是有没有什么问题?
------解决方案--------------------
int是形式变量,比如用一个void函数操作int,在原函数中值是不会变的,比如:
public static void main(String[] args){
int i = 1;
changeNum(i);
System.out.println(i);
//输出还是1
}
public static void changeNum(){
i++;
}
所以你已经发现,int只是基本数据类型,只能在生命周期内有效,他不是一个对象。
但是Integer作为一个对象存在,是实实在在的。
举个例子,你手里有一本书,别人撕掉一页,就少了一页。
但是你脑中有一本书,别人再怎么撕,因为他是不存在的,不是对象,别人只能操作对象,所以书还是原来的书。
------解决方案--------------------
输出:(按下Ctrl+A查看)
Integer("1") != Integer("1")
1 == 1
128 != 128
1
2
3
说明:
上面的示例的第30行使用基本数据类型int会发生错误,这应该是用Integer的最大的好处。
但是使用Integer也有很多需要注意的细节,请参考示例的输出。
jdk1.5之后有l auto-boxing
String s="33";
int i=Integer.parseInt(s);
这样是可以正常run的
我看到现在项目里面的id都是Integer类型的
我想问,为什么不用int呢
用Integer好处在哪
String s="33";
int i=Integer.parseInt(s);
这段代码跑可以,但是有没有什么问题?
------解决方案--------------------
int是形式变量,比如用一个void函数操作int,在原函数中值是不会变的,比如:
public static void main(String[] args){
int i = 1;
changeNum(i);
System.out.println(i);
//输出还是1
}
public static void changeNum(){
i++;
}
所以你已经发现,int只是基本数据类型,只能在生命周期内有效,他不是一个对象。
但是Integer作为一个对象存在,是实实在在的。
举个例子,你手里有一本书,别人撕掉一页,就少了一页。
但是你脑中有一本书,别人再怎么撕,因为他是不存在的,不是对象,别人只能操作对象,所以书还是原来的书。
------解决方案--------------------
import java.util.*;
public class IntegerTest {
public static void main(final String[] args) {
Integer integer1 = new Integer("1");
Integer integer2 = new Integer("1");
if (integer1 == integer2) {
System.out.println("Integer(\"1\") == Integer(\"1\")");
} else {
System.out.println("Integer(\"1\") != Integer(\"1\")");
}
Integer integer3 = 1;
Integer integer4 = 1;
if (integer3 == integer4) {
System.out.println("1 == 1");
} else {
System.out.println("1 != 1");
}
Integer integer5 = 128;
Integer integer6 = 128;
if (integer5 == integer6) {
System.out.println("128 == 128");
} else {
System.out.println("128 != 128");
}
// List<int> list = new ArrayList<>(); // 编译错误
List<Integer> list = new ArrayList<>();
list.add(1);
list.add(2);
list.add(3);
for (Integer element : list) {
System.out.println(element);
}
}
}
输出:(按下Ctrl+A查看)
Integer("1") != Integer("1")
1 == 1
128 != 128
1
2
3
说明:
上面的示例的第30行使用基本数据类型int会发生错误,这应该是用Integer的最大的好处。
但是使用Integer也有很多需要注意的细节,请参考示例的输出。