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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Spring up 中级黑马   /  2012-12-17 15:21  /  2239 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

int和Integer有什么区别?
视频也看了,感觉还是不知道他们的用法?希望能得到容易理解的答案。 谢谢!!

8 个回复

倒序浏览
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..

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
int是基本数据类型,Integer是基本数据类型
Integer num = 3;就创建了一个Integer对象,和普通的类没什么区别,数据会自动拆箱和装箱
但是Integer num1 = 130;这个对象就有区别了,在-128到127之间的数,只要数值相同都是一个Integer对象
绝对值大于128的即使数值相同也不是一个对象了
张老师的基础加强里面讲的很详细

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
简单地说就是:
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,简单类型的默认值于本身的类型有关。基本数据类型本身就是一个值

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
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,
包装类是引用数据类型,方便涉及到对象的操作,包装类包含每种基本数据类型的相关属性,
比如最大值和最小值与相关的操作方法

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
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,简单类型的默认值于本身的类型有关。基本数据类型本身就是一个值

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
Java 提供两种不同的类型:引用类型和原始类型(或内置类型)。Int 是java 的原始数据类
型,Integer 是java 为int 提供的封装类。Java 为每个原始类型提供了封装类。
原始类型封装类
booleanBoolean
charCharacter
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
引用类型和原始类型的行为完全不同,并且它们具有不同的语义。引用类型和原始类型具有
不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当
引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值
为 null,而原始类型实例变量的缺省值与它们的类型有关。

评分

参与人数 1技术分 +1 收起 理由
古银平 + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
int是基本类型,是关键字
Integer是引用类型,是类,int的包装类
回复 使用道具 举报
高境 金牌黑马 2012-12-19 09:45:05
9#
大神,都是牛人
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马