A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© lvwenwen88 黑马帝   /  2012-1-12 22:47  /  1937 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 lvwenwen88 于 2012-1-15 21:42 编辑

Integer与int的区别

评分

参与人数 1技术分 +1 收起 理由
吴上储 + 1

查看全部评分

7 个回复

倒序浏览
本帖最后由 李娟 于 2012-1-12 23:01 编辑

Integer是对象,用一个引用指向这个对象
int是基本数据类型,直接存数值。
举个例子
Arraylist a = new Arrylist();
int n1= 11;
Interger n2 = new Interger(n1);
a.add(n1);//报错
a.add(n2);//正确
因为 这个集合只能存放对象,所以第4行报错

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
int 是基本类型,Integer是与之对应的引用类型(包装类型),可以这么说,Integer比 int 更高级更复杂,方法也更多。
ArrayList a = new ArrayList();
int n1= 11;
Integer n2 = new Integer(n1);
a.add(n1);
a.add(n2);
上面代码,由于JDK5后能自动装箱解箱---可自动转换类型,所以不报错(报警告,使用了未经检查或不安全的操作)。但旧版本会报错的,n1只是基本类型,不是对象。

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
黄秋 发表于 2012-1-13 04:17
int 是基本类型,Integer是与之对应的引用类型(包装类型),可以这么说,Integer比 int 更高级更复杂,方 ...

谢谢,说的很详细,学习了
回复 使用道具 举报
补充一个:int的默认初始化值是0,而Integer的默认初始化值为null,当你new一个integer,且Integer的值在-128-127之间时会在内存的缓冲区内。
回复 使用道具 举报
int 是基本数据类型
Integer是其包装类,注意是一个类。
为什么要提供包装类呢???
一是为了在各种类型间转化,通过各种方法的调用。否则 你无法直接通过变量转化。
比如,现在int要转为String
int a=0;
String result=Integer.toString(a);
在java中包装类,比较多的用途是用在于各种数据类型的转化中。
我写几个demo

//通过包装类来实现转化的
                int num=Integer.valueOf("12");
                int num2=Integer.parseInt("12");
               
                double num3=Double.valueOf("12.2");
                double num4=Double.parseDouble("12.2");
                //其他的类似。通过基本数据类型的包装来的valueOf和parseXX来实现String转为XX
               
                String a=String.valueOf("1234");//这里括号中几乎可以是任何类型
                String b=String.valueOf(true);
                String c=new Integer(12).toString();//通过包装类的toString()也可以
                String d=new Double(2.3).toString();

再举例下。比如我现在要用泛型
List<Integer> nums;
这里<>需要类。如果你用int。它会报错的
回复 使用道具 举报
王_涛 发表于 2012-1-13 19:33
int 是基本数据类型
Integer是其包装类,注意是一个类。
为什么要提供包装类呢???

谢谢,学习了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马