黑马程序员技术交流社区

标题: int和Integer有什么区别? [打印本页]

作者: Spring up    时间: 2012-12-17 15:21
标题: int和Integer有什么区别?
int和Integer有什么区别?
视频也看了,感觉还是不知道他们的用法?希望能得到容易理解的答案。 谢谢!!
作者: 孙辉辉    时间: 2012-12-17 15:44
int 是基本类型,直接存数值

  integer是对象,用一个引用指向这个对象

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

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

     Integer 是对象类型 int是原始类型 适用场合有很大的不同 之所以要把int封装成Integer 型 是因为很多方法参数就只接收对象类型(Object) 还比如 范型 就只支持 对象类型

例如往ArrayList里面add,必须add的是Object而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);//可以



补充

  String str = "1";
        Integer i = Integer.valueof(str);

(1)调用Integer类中的静态方法valueOf(String)
        (2)valueOf方法将传入的参数String转化为int型值
        (3)返回该值,如果String并不是纯粹由数字构成即无法转化为数字,则抛出NumberFormatException..
作者: filter    时间: 2012-12-17 15:44
int是基本数据类型,Integer是基本数据类型
Integer num = 3;就创建了一个Integer对象,和普通的类没什么区别,数据会自动拆箱和装箱
但是Integer num1 = 130;这个对象就有区别了,在-128到127之间的数,只要数值相同都是一个Integer对象
绝对值大于128的即使数值相同也不是一个对象了
张老师的基础加强里面讲的很详细
作者: Kevin123    时间: 2012-12-17 16:03
简单地说就是:
int 是简单数据类型
Integer 是类 java.lang.Integer

楼主可以参考以下资料进一步了解:

Java 提供两种不同的类型:引用类型和原始类型(或内置类型)。Int是java的原始数据类型,Integer是java为int提供的封装类。Java为每个原始类型提供了封装类。
原始类型封装类
boolean -->Boolean
char --->Character
byte -->Byte
short -->Short
int -->Integer
long -->Long
float -->Float
double -->Double
引用类型和原始类型的行为完全不同,并且它们具有不同的语义。引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为 null,而原始类型实例变量的缺省值与它们的类型有关。同时为了面向对象操作的一致性,这些基本类型都有相应的封装类型:Integer、Short、Long、Byte、Float、Double、Character等。
因为封装类型是对象,所以可以进行相应的很多对象能力函数操作,这样就可以提供很多基本类型难以完成的工作的完成和实现。
你可以通过以下方式来声明该类型。




int 和 Integer 问题

java提供两种不同类型:简单类型和引用类型

int是java的简单类型,Integer是 java为int 提供的封装类(wrapper)。

java为每个简单类型提供了封装类:

boolean-Boolean byte-Byte short-Short  char-Char

long-Long float-Float int-Integer double-Double

引用类型和简单类型行为完全不同,并且它们具有不同的语义。

引用类型和简单类型具有不同的特征和用法,这包括大小和速度问题。

引用类型和简单类型有不同的默认值:引用类型默认值为null,简单类型的默认值于本身的类型有关。基本数据类型本身就是一个值

作者: 凊係柈泩    时间: 2012-12-17 17:12
int是java提供的8种基本数据类型之一,这8种数据类型包括了
byte,int,short,long,char,boolean,float,double
这8种数据类型不是面向对象的,为了解决这个不足,java为每一个基本数据类型都
定义了对应的包装类,Integer就是java为int提供的包装类,提供对应图标如下
boolean -->Boolean
char --->Character
byte -->Byte
short -->Short
int -->Integer
long -->Long
float -->Float
double -->Double
int默认是0,而Integer默认是null,
包装类是引用数据类型,方便涉及到对象的操作,包装类包含每种基本数据类型的相关属性,
比如最大值和最小值与相关的操作方法
作者: 依然AI    时间: 2012-12-18 17:19
int 和 Integer 问题

java提供两种不同类型:简单类型和引用类型

int是java的简单类型,Integer是 java为int 提供的封装类(wrapper)。

java为每个简单类型提供了封装类:

boolean-Boolean byte-Byte short-Short  char-Char

long-Long float-Float int-Integer double-Double

引用类型和简单类型行为完全不同,并且它们具有不同的语义。

引用类型和简单类型具有不同的特征和用法,这包括大小和速度问题。

引用类型和简单类型有不同的默认值:引用类型默认值为null,简单类型的默认值于本身的类型有关。基本数据类型本身就是一个值
作者: 郭金龙    时间: 2012-12-18 18:06
Java 提供两种不同的类型:引用类型和原始类型(或内置类型)。Int 是java 的原始数据类
型,Integer 是java 为int 提供的封装类。Java 为每个原始类型提供了封装类。
原始类型封装类
booleanBoolean
charCharacter
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
引用类型和原始类型的行为完全不同,并且它们具有不同的语义。引用类型和原始类型具有
不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当
引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值
为 null,而原始类型实例变量的缺省值与它们的类型有关。
作者: yuchen208    时间: 2012-12-18 18:50
int是基本类型,是关键字
Integer是引用类型,是类,int的包装类

作者: 高境    时间: 2012-12-19 09:45
大神,都是牛人




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