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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘丽娜 中级黑马   /  2012-10-30 19:55  /  2165 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 刘丽娜 于 2012-10-31 19:49 编辑

Integer与int的区别都有哪些?

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1

查看全部评分

7 个回复

倒序浏览
本帖最后由 吴愿涛 于 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。它会报错的

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1

查看全部评分

回复 使用道具 举报
我的理解是java是面向对象的,但是其中也会用到面向过程,而int作为局部变量和控制逻辑,一方面体现了面向过程的思想,但是由于java是面向对象的,所以很多的方法的设计都体现了面向对象的思想,而面向对象有一个基类Object。所以Integer是对int进行了封装的Object的子类。希望对你有用。

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1

查看全部评分

回复 使用道具 举报
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。它会报错的

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1

查看全部评分

回复 使用道具 举报
Java 提供两种不同的类型:引用类型和原始类型(或内置类型)。Int是java的原始数据类型,
Integer是java为int提供的封装类。Java为每个原始类型提供了封装类。

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1

查看全部评分

回复 使用道具 举报
首先,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);//可以  

评分

参与人数 1技术分 +1 收起 理由
刘芮铭 + 1

查看全部评分

回复 使用道具 举报
静等花开 发表于 2012-10-30 22:21
首先,int是基本类型,直接存数值,integer是对象,用一个引用指向这个对象。

al.add(n); 可以吧 自动装箱呢
回复 使用道具 举报
谢谢给位的回复
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马