int与Integer的区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了int与Integer的区别相关的知识,希望对你有一定的参考价值。

Java中为什么要为基本类型提供封装类呢?

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。它会报错的
参考技术A

1、Integer默认值是null,而int默认值是0;

2、声明为Integer的变量需要实例化,而声明为int的变量不需要实例化;

3、Integer是对象,用一个引用指向这个对象;而int是基本类型,直接存储数值。

Java两种数据类型分类:

原始数据类型,分为boolean、byte、in、char、long、short、double、float 。

引用数据类型 ,分为数组类、接口。

为了编程的方便还是引入了基本数据类型,但是为了能够将这些基本数据类型当成对象操作,Java为每 一个基本数据类型都引入了对应的包装类型,int的包装类就是Integer,从Java 5开始引入了自动装箱/拆箱机制,使得二者可以相互转换。

Int是将一个数值向下取整为最接近的整数的函数。INT是数据库中常用函数中的取整函数,常用来判别一个数能否被另一个数整除。

参考技术B java.lang.integer是一个类.对它的操作要通过类的方法
int是java缺省的8中基本数据类型之一.不是类的对象.
int是基本数据类型,integer是对int进行了封装的一个类。
声明为int的变量不需要实例化,声明为interger的变量需要实例化
int是基本类型,integer是包装类,也就是类。
integer是比int更高级的数据类型为什么java中使用int而不像vb中那样使用integer
int是面向机器底层的数值类型,是primitive类型的数据类型,而integer是int的warpper类,是面向对象的即oop的对象类型。int一般只用在数值计算中,而integer是用在java的其它要使用对象的地方,比如map的key与value,list与set的element若要保存数值信息都要把int包装成integer对象使用。
java提供两种不同的类型:引用类型和原始类型(或内置类型)。int是java的原始数据类型,integer是java为int提供的封装类。java为每个原始类型提供了封装类。
原始类型封装类
booleanboolean
charcharacter
bytebyte
shortshort
intinteger
longlong
floatfloat
doubledouble
引用类型和原始类型的行为完全不同,并且它们具有不同的语义。引用类型和原始类型具有不同的特征和用法,它们包括:大小和速度问题,这种类型以哪种类型的数据结构存储,当引用类型和原始类型用作某个类的实例数据时所指定的缺省值。对象引用实例变量的缺省值为null,而原始类型实例变量的缺省值与它们的类型有关。
参考技术C 1、Java 中的数据类型分为基本数据类型和复杂数据类型
int是前者,integer 是后者(也就是一个类)。
2、初始化时
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不能够互用,因为他们两种不同的数据类型;
参考技术D 这个问题我觉得出发点不太对,java作为一个面向对象的语言,你应该说为什么要提供基本类型呢?直接用封装类型不就好了,何必多次一举呢?
其实完全可以没有,但是这样我们使用起来就不方便了,因此基本数据类型相当于是java给我们留下的语法糖。这个和字符串+操作类似,完全可以不让我们直接进行字符串的+操作,为什么还要留下呢,就是让咱们好处理字符串。其实在编译的时候直接把这个+操作用stringBuilder来实现了,我觉得对此java开发人员肯定是不情愿的,因为这一点也不优雅。

java int与integer的区别

https://my.oschina.net/u/1861837/blog/335581

 

摘要: java int与integer的区别

int与integer的区别从大的方面来说就是基本数据类型与其包装类的区别:

int 是基本类型,直接存数值,而integer是对象,用一个引用指向这个对象

1.Java 中的数据类型分为基本数据类型和复杂数据类型

int 是前者而integer 是后者(也就是一个类);因此在类进行初始化时int类的变量初始为0.而Integer的变量则初始化为null.

2.初始化时:

  int i =1;Integer i= new Integer(1);(要把integer 当做一个类看);但由于有了自动装箱和拆箱   (http://www.cnblogs.com/shenliang123/archive/2012/04/16/2451996.html),

  使得对Integer类也可使用:Integer i= 1;       

  int 是基本数据类型(面向过程留下的痕迹,不过是对java的有益补充),Integer 是一个类,是int的扩展,定义了很多的转换方法

  类似的还有:float Float;double Double;string String等,而且还提供了处理 int 类型时非常有用的其他一些常量和方法

  举个例子:当需要往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);//可以

  并且泛型定义时也不支持int: 如:List<Integer> list = new ArrayList<Integer>();可以  而List<int> list = new ArrayList<int>();则不行

 

总而言之:如果我们定义一个int类型的数,只是用来进行一些加减乘除的运算or作为参数进行传递,那么就可以直接声明为int基本数据类型,但如果要像

对象一样来进行处理,那么就要用Integer来声明一个对象,因为java是面向对象的语言,因此当声明为对象时能够提供很多对象间转换的方式,与一些常用

的方法。自认为java作为一们面向对象的语言,我们在声明一个变量时最好声明为对象格式,这样更有利于你对面向对象的理解。

 

以上是关于int与Integer的区别的主要内容,如果未能解决你的问题,请参考以下文章

int 与 Integer 的区别

Integer与int的区别

integer与int区别以及integer.values()方法详解

int 和 Integer 的区别

java int与integer的区别

Integer 与 Int 的区别