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

相關文章
相關標籤/搜索