在网上查看了int和integer的一些区别,也知道int是基本数据类型,Integer是对象类型,可是,知道这些还是不懂什么时候用int,什么时候用integer
Integer i=0;
i是一个对象
int i=3;
i是一个基础变量
如果说区别的话,我举一个例子:
往ArrayList里面add元素,必须add的是Object
而int不是对象,就只能把Integer添加进去
ArrayList list = new ArrayList();这个写法是错误的,
ArrayList list = new ArrayList(); 这样才是正确的
当然可能还有些底层的区别,但是平时用的,基本就是上面的举例
Integer可以取到null,int只能是0,转json或者插入数据库的时候是有区别的
http://blog.sina.com.cn/s/blog_8f7ab9d50100v9ey.html
int 會自動賦值為0 而integer不會還是null
各賦值為大於127 會不相等。
[url]http://www.ticmy.com/?p=110[/url]
能用基本类型就用基本类型,有些地方一定要用对象的只能用对象
比如:List
这个问题,在springmvc中,如果方法签名中定义为int,如果为空,则会报nullPointer,为Integer映射则没这问题,默认为null
其实也没必要特意区别到底什么时候使用int和integer,因为现在jdk已经支持自动装箱和拆箱了,如果非要区分的话,个人觉得如果是要映射字段的话建议使用包装类型,因为可以判断是否为null,这样会方便一些
什么时候用,什么时候不用,可以有很多理由。
现提供一个比较常用Integer代替int的小小例子。
[color=blue]【预备知识】[/color]
int默认值为0,Integer默认值为null(若放在页面,则表现为空字符串)。
[color=red]【实际场景】[/color]
若入库单对象Instock包含采购数量、入库数量、确认数量等字段,且全部用int表示。当你在JSP中用列表显示几十行入库单时,想象下,会是什么场景?无数个0在客户面前飘荡,想眼睛不花都困难~。
如果你坚持使用int,你也可以这样写:
[code="java"]
if (确认数量 == 0) {
out.print("");// 当确认数量=0时,则前台页面对应字段显示为空。
}
[/code]
int是对应 现实世界中的数值概念的。
integer 是对应java世界中的对象概念的。
所以 对外业务处理用int,对程序内部的处理如果需要对象化的话就用integer