第2章 Java编程基础——FAQ2.11 int和Integer都可以作为整数类型, 那么它们有什么区别?
2010-01-16 21:02
896 查看
FAQ2.11 int和Integer都可以作为整数类型, 那么它们有什么区别?
答:
————————————————————————————————————————————————————————————————————————————————————————
Java 提供两种不同的类型:引用类型和原始类型(或内置类型)。
int是java的原始数据类型,Integer是java为int提供的封装类。Java为每个原始类型提供了封装类。
原始类型
封装类
boolean
Boolean
char
Character
byte
Byte
short
Short
int
Integer
long
Long
float
Float
double
Double
所有的封装类都是不能改变的,任何变动都将生成一个新的类。
对于数字特殊,系统为了提高效率,对于小于128的数字进行了内部缓冲,所以2个120的数字Integer有可能地址相等。
引用类型和原始类型的行为完全不同,并且它们具有不同的语义。引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为 null,而原始类型实例变量的缺省值与它们的类型有关。
从JDK5.0开始,原始类和包装类可以自动进行转换,我们可以在绝大部分int的地方使用Integer了
————————————————————————————————————————————————————————————————————————————————————————
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 提供两种不同的类型:引用类型(或者封装类型,Warpper)和原始类型(或内置类型,Primitive)。Int是java的原始数据类型,Integer是java为int提供的封装类。Java为每个原始类型提供了封装类。
原始类型 封装类
boolean Boolean
char Character
byte Byte
short Short
int Integer
long Long
float Float
double Double
引用类型和原始类型的行为完全不同,并且它们具有不同的语义。引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的 数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为 null,而原始类型实例变量的缺省值与它们的类型有关。
int 是基本类型,(int)(Math.Random()*100)就是一个数,可以进行加见乘除。 Integer是class ,那么 new Integer(temp)就是一个对象了,可以用到Integer这个class的方法,例如用intvalue()可以返回这个int的值。
————————————————————————————————————————————————————————————————————————————————————————
int 是基本类型,直接存数值
integer是对象,用一个引用指向这个对象
1.Java 中的数据类型分为基本数据类型和复杂数据类型
int 是前者>>integer 是后者(也就是一个类)
2.初始化时>>
int i =1;
Integer i= new Integer(1);(要把integer 当做一个类看)
int 是基本数据类型(面向过程留下的痕迹,不过是对java的有益补充)
Integer 是一个类,是int的扩展,定义了很多的转换方法
类似的还有:
原始类型 封装类
int Integer
boolean Boolean
char Character
byte Byte
short Short
long Long
float Float
double Double
举个例子:当需要往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);//可以
答:
————————————————————————————————————————————————————————————————————————————————————————
Java 提供两种不同的类型:引用类型和原始类型(或内置类型)。
int是java的原始数据类型,Integer是java为int提供的封装类。Java为每个原始类型提供了封装类。
原始类型
封装类
boolean
Boolean
char
Character
byte
Byte
short
Short
int
Integer
long
Long
float
Float
double
Double
所有的封装类都是不能改变的,任何变动都将生成一个新的类。
对于数字特殊,系统为了提高效率,对于小于128的数字进行了内部缓冲,所以2个120的数字Integer有可能地址相等。
引用类型和原始类型的行为完全不同,并且它们具有不同的语义。引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为 null,而原始类型实例变量的缺省值与它们的类型有关。
从JDK5.0开始,原始类和包装类可以自动进行转换,我们可以在绝大部分int的地方使用Integer了
————————————————————————————————————————————————————————————————————————————————————————
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 提供两种不同的类型:引用类型(或者封装类型,Warpper)和原始类型(或内置类型,Primitive)。Int是java的原始数据类型,Integer是java为int提供的封装类。Java为每个原始类型提供了封装类。
原始类型 封装类
boolean Boolean
char Character
byte Byte
short Short
int Integer
long Long
float Float
double Double
引用类型和原始类型的行为完全不同,并且它们具有不同的语义。引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的 数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为 null,而原始类型实例变量的缺省值与它们的类型有关。
int 是基本类型,(int)(Math.Random()*100)就是一个数,可以进行加见乘除。 Integer是class ,那么 new Integer(temp)就是一个对象了,可以用到Integer这个class的方法,例如用intvalue()可以返回这个int的值。
————————————————————————————————————————————————————————————————————————————————————————
int 是基本类型,直接存数值
integer是对象,用一个引用指向这个对象
1.Java 中的数据类型分为基本数据类型和复杂数据类型
int 是前者>>integer 是后者(也就是一个类)
2.初始化时>>
int i =1;
Integer i= new Integer(1);(要把integer 当做一个类看)
int 是基本数据类型(面向过程留下的痕迹,不过是对java的有益补充)
Integer 是一个类,是int的扩展,定义了很多的转换方法
类似的还有:
原始类型 封装类
int Integer
boolean Boolean
char Character
byte Byte
short Short
long Long
float Float
double Double
举个例子:当需要往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);//可以
相关文章推荐
- 第2章 Java编程基础——FAQ2.21 ==和equals()都可用于比较两个操作数是否相等, 它们有什么区别吗?
- 第2章 Java编程基础——FAQ2.14 变量之间传值时可分为值传递和引用传递, 那么它们有何区别?
- 第2章 Java编程基础——FAQ2.22 创建String对象时, 使用String s=new String (“abc”)和String s=“abc”语句有什么区别?
- 第2章 Java编程基础——FAQ2.03 用public. protected和private修饰方法有什么区别?
- 第2章 Java编程基础——FAQ2.17 在执行与运算时, 运算符&和&&有什么区别?
- 第2章 Java编程基础——FAQ2.23 break和continue语句有什么区别?
- 第2章 Java编程基础——FAQ2.18 在实现x递增加1操作时, x++和++x有什么区别?
- 第2章 Java编程基础——FAQ2.13 成员变量和局部变量有什么区别?
- Java基础之int和Integer有什么区别
- 第2章 Java编程基础——FAQ2.04 this关键字有什么含义?在哪些情况下应用?
- Java基础知识学习巩固2--int和Integer有什么区别及扩展
- 第2章 Java编程基础——FAQ2.06 static关键字有什么含义?具体如何应用?能修饰构造方法吗?
- 第2章 Java编程基础——FAQ2.09 Java中有哪些数据类型?
- [厉害了,我的JAVA基础](四)int 和 Integer 有什么区别?Integer的值缓存范围
- 第2章 Java编程基础——FAQ2.05 super关键字有什么含义?在哪些情况下应用?
- 第2章 Java编程基础——FAQ2.07 final关键字有什么含义?具体如何应用?
- 第2章 Java编程基础——FAQ2.16 在实现x和y相加时, x+=y和x=x+y两种实现方式有区别吗?
- 第2章 Java编程基础——FAQ2.19 x?y:z格式的语句表示什么意思?
- 第2章 Java编程基础——FAQ2.01 Java中的标识符如何命名?可以用中文吗?
- 第2章 Java编程基础——FAQ2.08 instanceof关键字有什么含义?如何应用?