黑马程序员技术交流社区

标题: java基础 [打印本页]

作者: lvwenwen88    时间: 2012-1-12 22:47
标题: java基础
本帖最后由 lvwenwen88 于 2012-1-15 21:42 编辑

Integer与int的区别

作者: 李娟    时间: 2012-1-12 22:55
本帖最后由 李娟 于 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行报错
作者: 黄秋    时间: 2012-1-13 04:17
int 是基本类型,Integer是与之对应的引用类型(包装类型),可以这么说,Integer比 int 更高级更复杂,方法也更多。
ArrayList a = new ArrayList();
int n1= 11;
Integer n2 = new Integer(n1);
a.add(n1);
a.add(n2);
上面代码,由于JDK5后能自动装箱解箱---可自动转换类型,所以不报错(报警告,使用了未经检查或不安全的操作)。但旧版本会报错的,n1只是基本类型,不是对象。
作者: lvwenwen88    时间: 2012-1-13 09:26
黄秋 发表于 2012-1-13 04:17
int 是基本类型,Integer是与之对应的引用类型(包装类型),可以这么说,Integer比 int 更高级更复杂,方 ...

谢谢,说的很详细,学习了
作者: 丁青松    时间: 2012-1-13 11:00
补充一个:int的默认初始化值是0,而Integer的默认初始化值为null,当你new一个integer,且Integer的值在-128-127之间时会在内存的缓冲区内。
作者: 王_涛    时间: 2012-1-13 19:33
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。它会报错的
作者: lvwenwen88    时间: 2012-1-14 15:32
王_涛 发表于 2012-1-13 19:33
int 是基本数据类型
Integer是其包装类,注意是一个类。
为什么要提供包装类呢???

谢谢,学习了




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2