首先从最基本的说起,int属于基本数据类型,Integer属于类封装的对象,两者的定义本身就不同,但两者又是直接相关的,在java中,最核心的就是对象,万物皆对象,所以每个基本数据类型都与类相对应的,int对应的类是Integer,char对应的类是Character,float对应的类是Float等等。在Integer n=new Integer(1)中,n是一个对象,继承关系如下:
java.lang.Integer
所以n具有一系列的属性和方法。
而对于int n,n是一个整形变量,不具备任何属性和方法。
然而,两者可以相互转化,Integer变为int可以使用intValue()方法,而int类型也可以封装成Integer对象。
有时我们会看到Integer n=1;这样的代码,所以这就涉及到自动封箱、拆箱的问题了,在此不再赘述