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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 蒙武辉 黑马帝   /  2012-2-27 19:01  /  2064 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

int和Integer有什么本质的区别?可以举个例子说明下吗?

评分

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

查看全部评分

7 个回复

倒序浏览
Akm 黑马帝 2012-2-27 19:49:40
沙发
  Java 提供两种不同的类型:引用类型和原始类型(或内置类型)。Int是java的原始数据类型,Integer是java为int提供的封装类。Java为每个原始类型提供了封装类。原始类型封装类booleanBooleancharCharacterbyteByteshortShortintIntegerlongLongfloatFloatdoubleDouble引用类型和原始类型的行为完全不同,并且它们具有不同的语义。引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为 null,而原始类型实例变量的缺省值与它们的类型有关。

评分

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

查看全部评分

回复 使用道具 举报
int是基本数据类型,直接存储数值;    Integer是对象,需要用一个引用指向这个对象 Integer是对int的封装类;
声明int的变量不需要实例化   声明Integer的变量需要实例化

评分

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

查看全部评分

回复 使用道具 举报
int:int为整数类型,在存储的时候,用4个字节存储,范围为-2,147,483,648到2,147,483,647,在变量初始化的时候,int类型的默认值为0。
Integer是java中一切都是对象这个大前提下的int的包装类型,可以使用方法,是个对象,是用new分配到堆上的。
jdk1.5后,引入了类似c#中的自动装、拆箱,使得Integer i = 1;这样的表达直接可行。
int是一种基本数据类型,而Integer是相应于int的类类型,称为对象包装。  

评分

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

查看全部评分

回复 使用道具 举报
int 是基本数据类型,Integer是应用型。java是面向对象的,万物皆对象,Integer就是int类型对应的包装类。
回复 使用道具 举报
(1)int 是原始类型,每一个原始类型都有针对它的封装类,而integer 就是针对int的封装类。
(2)int 可以直接实例化 既 int i=1;  按理说integer  jdk 1.5之前 是不能直接integer i =1;(这是错误的里面涉及到装箱和拆箱的问题)1.5之后可以自动装箱、拆箱所以 integer i=1;也是可以的。
回复 使用道具 举报
蒙武辉 黑马帝 2012-2-27 21:29:43
7#
明白了,谢谢各位楼主。
回复 使用道具 举报
刘峰 黑马帝 2012-2-27 21:38:57
8#
java中有两种类型:引用类型和原始类型,Int是java的原始数据类型,Integer是java为int提供的封装类。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马