基本数据类型和引用数据类型的区别和介绍:https://www.cnblogs.com/bekeyuan123/p/7468845.html
1.int是基本数据类型,integer是引用数据类型,是int的包装类,int只是一个值,而integer是一个类,那么就具有很多方法和属性
2.在存储方式上也有许多不同,int是直接存储在栈中,而引用数据类型的值是存储在堆中的,然后在栈中开辟一个内存对象指向堆,integer a=new integer(100),这个a就是存储在栈中的引用,而100是存在堆里的,这个a是指向100的地址。
3.int默认是0,而integer默认是null
4.
如果我们定义一个int类型的数,只是用来进行一些加减乘除的运算or作为参数进行传递,那么就可以直接声明为int基本数据类型,但如果要像
对象一样来进行处理,那么就要用Integer来声明一个对象,因为java是面向对象的语言,因此当声明为对象时能够提供很多对象间转换的方式,与一些常用
的方法。自认为java作为一们面向对象的语言,我们在声明一个变量时最好声明为对象格式,这样更有利于你对面向对象的理解。
比如:Arraylis<integer> a=new ArrayList<>();这种;里面存储的是类,用int就是不可以的
5.(补充)== 和 equals的区别,我个人理解目前是,==比较的是地址,而equals比较的是值得大小 ;
对于==,如果作用于基本数据类型的变量,则直接比较其存储的 “值”是否相等; 如果作用于引用类型的变量,则比较的是所指向的对象的地址 2)对于equals方法,注意:equals方法不能作用于基本数据类型的变量 如果没有对equals方法进行重写,则比较的是引用类型的变量所指向的对象的地址; 诸如String、Date等类对equals方法进行了重写的话,比较的是所指向的对象的内容。
1.Int和Integer比较大小
public static void main(String[] args) {
int i = 10;
Integer i1 = new Integer(10);
System.out.println(i == i1);
}
true
Integer和int比较会进行自动拆箱,比较的是大小
Integer变量和int变量比较时,只要两个变量的值是向等的,则结果为true(因为包装类Integer和基本数据类型int比较时,java会自动拆包装为int,然后进行比较,实际上就变为两个int变量的比较)
Integer i = new Integer(100);
int j = 100;
System.out.print(i == j); //true