JAVA中Integer直接赋值和重构方法赋值的区别是什么?

问题描述:
遇到一道上机题:
Integer n =[空] ;//定义n的值为3;
int result = n.intValue();
System.out.println( result * result );

我的答案是:Integer n = 3;
标准答案是:Integer n = new Integer(3);
实际操作中,两种方法都可以用,没有报错。
想问,这两种操作区别是什么?如果我写错了,程序为什么没有报错?

  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;
  等等,可以说Java为每一个基本数据类型都提供相应的对象(外覆类)
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-15
Integer 是int这个数据类型的封装类具备的面向对象的基本特征 而int没有
所以int = 后面必须写一个整形 而Integer是一个封装类需要调用自己的方法来获取值所以Integer n = new Integer(3);这么写
不推荐Integer n = 3;这么写 会把概念弄混淆的本回答被提问者采纳
第2个回答  2015-05-29
初始化时>>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);//可以
相似回答