int与integer的区别?

int与integer的区别
1、int是基本数据类型。integer是int的包装类。
2、Integer变量必须实例化后才能使用,而int变量不需要 。
3、Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象;而int则是直接存储数据值 。
4、Integer的默认值是null,int的默认值是0。
5、一般接收参数是基本数据类型应该使用包裹类进行接收。

  1. 基本类型只能按值传递,而每个基本类型对应的封装类是按引用传递的。

  2. 从性能上说java中的基本类型是在堆栈上创建的,而所有的对象类型都是在堆上创建的,(对象的引用在堆栈上创建)。比如

Integer i=new Integer(10); 其中new Integer()是在堆上创建的,而他的引用Integer i是在堆栈上。 封装类的出现,是为了更方便的使用一些基本类型不具备的方法,比如valueOf(),toString()等等。还有你如果想传递一个int对象的引用,而不是值,那只能用封装类。
在堆栈上分配内存的调用效率和在堆上分配内存的效率差太多了。虽然在堆栈上分配内存效率高,不过在堆栈上分配内存有内存

泄露的问题。

	注意:integer -127——128以内的值,自动装箱时会重用,128以上的不能用==或!=比较,用equals比较.
	https://blog.csdn.net/ma451152002/article/details/9076793

猜你喜欢

转载自blog.csdn.net/Smile_Sunny521/article/details/89632755
今日推荐