黑马程序员技术交流社区

标题: Integer与int的区别 [打印本页]

作者: 刘丽娜    时间: 2012-10-30 19:55
标题: Integer与int的区别
本帖最后由 刘丽娜 于 2012-10-31 19:49 编辑

Integer与int的区别都有哪些?
作者: 奋斗的青春    时间: 2012-10-30 20:04
本帖最后由 吴愿涛 于 2012-10-30 20:05 编辑

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-10-30 20:42
我的理解是java是面向对象的,但是其中也会用到面向过程,而int作为局部变量和控制逻辑,一方面体现了面向过程的思想,但是由于java是面向对象的,所以很多的方法的设计都体现了面向对象的思想,而面向对象有一个基类Object。所以Integer是对int进行了封装的Object的子类。希望对你有用。
作者: 崔政    时间: 2012-10-30 20:52
int 是基本数据类型
Integer是其包装类,注意是一个类。
为什么要提供包装类呢???
一是为了在各种类型间转化,通过各种方法的调用。否则 你无法直接通过变量转化。
比如,现在int要转为String
int a=0;
String result=Integer.toString(a);
在java中包装类,比较多的用途是用在于各种数据类型的转化中。

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

复制代码
再举例下。比如我现在要用泛型
List<Integer> nums;
这里<>需要类。如果你用int。它会报错的
作者: 樊鹏飞    时间: 2012-10-30 20:53
Java 提供两种不同的类型:引用类型和原始类型(或内置类型)。Int是java的原始数据类型,
Integer是java为int提供的封装类。Java为每个原始类型提供了封装类。
作者: 静等花开    时间: 2012-10-30 22:21
首先,int是基本类型,直接存数值,integer是对象,用一个引用指向这个对象。



1.Java 中的数据类型分为基本数据类型和复杂数据类型

int是前者>>integer 是后者(也就是一个类)

2.初始化时>>

int i =1;

Integer i= new Integer(1);(要把integer 当做一个类看)

int 是基本数据类型(面向过程留下的痕迹,不过是对java的有益补充)

Integer 是一个类,是int的扩展,定义了很多的转换方法

类似的还有:float Float;double Double;string String等
举个例子:当需要往ArrayList,HashMap中放东西时,像int,double这种内建类型是放不进去的,因为容器都是装object的,这是就需要这些内建类型的外覆类了。

Java中每种内建类型都有相应的外覆类。



Java中int和Integer关系是比较微妙的。关系如下:
1.int是基本的数据类型;

2.Integer是int的封装类;

3.int和Integer都可以表示某一个数值;

4.int和Integer不能够互用,因为他们两种不同的数据类型;

举例说明

ArrayList al=new ArrayList();   int n=40;   Integer nI=new Integer(n);   al.add(n);//不可以   al.add(nI);//可以  
作者: 齐连涛    时间: 2012-10-31 15:34
静等花开 发表于 2012-10-30 22:21
首先,int是基本类型,直接存数值,integer是对象,用一个引用指向这个对象。

al.add(n); 可以吧 自动装箱呢
作者: 刘丽娜    时间: 2012-10-31 19:49
谢谢给位的回复




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