int和Integer区别

一、int是java中的基本数据类型,而Integer是int的包装类java

二、Integer变量必须实例化以后才能使用,而int则不须要对象

三、Integer实际是对象的引用,而int是直接存储数据值blog

四、Integer的默认值是null,int的默认值是0内存

实例:class

package com.lsj.test;


public class test {
	public static void main(String[] args) {

		Integer a=new Integer(100);
		Integer b=new Integer(100);
		Integer c=100;
		Integer i=100;
		Integer j=128;
		Integer k=128;
		int d=100;
		System.out.println(a==b);
		System.out.println(a==c);
		System.out.println(a==d);
          System.out.println(c==d); System.out.println(c==i); System.out.println(j==k); } }

  运行结果:test

1.false
2.false
3.true
4.true
5.true
6.false

  分析:一、Integer实际是对对象的引用,new生成两个Integer变量,因为内存地址不一样,故始终不会相等,即结果为false;变量

     二、不是经过new生成的Integer变量和经过new生成的Integer变量进行比较时,结果为false,由于非new生成的Integer变量会存放在常量池中,而经过new建立的Integer变量会存放在堆中。数据类型

     三、int变量和Integer变量比较,其实是值的比较,只要两个值相等,结果就为true。由于此时java会自动拆包装为int。引用

     四、同上述3的分析同样数据

     五、对于两个非new生成的Integer对象时,只要两个变量的值在-128和127区间内,且值相等的话,结果就为true。换句话说,只要二者值不在-128-127区间以内,结果均为false。

     六、见上述5

相关文章
相关标签/搜索