java int與integer的區別

來源:互聯網
上載者:User

標籤:

java int與integer的區別

int與integer的區別從大的方面來說就是基礎資料型別 (Elementary Data Type)與其封裝類的區別:

int 是基本類型,直接存數值,而integer是對象,用一個引用指向這個對象

1.Java 中的資料類型分為基礎資料型別 (Elementary Data Type)和複雜資料類型

int 是前者而integer 是後者(也就是一個類);因此在類進行初始化時int類的變數初始為0.而Integer的變數則初始化為null.

2.初始化時:

  int i =1;Integer i= new Integer(1);(要把integer 當做一個類看);但由於有了自動裝箱和拆箱   (http://www.cnblogs.com/shenliang123/archive/2012/04/16/2451996.html),

  使得對Integer類也可使用:Integer i= 1;       

  int 是基礎資料型別 (Elementary Data Type)(面向過程留下的痕迹,不過是對java的有益補充),Integer 是一個類,是int的擴充,定義了很多的轉換方法

  類似的還有:float Float;double Double;string String等,而且還提供了處理 int 類型時非常有用的其他一些常量和方法

  舉個例子:當需要往ArrayList,HashMap中放東西時,像int,double這種內建類型是放不進去的,因為容器都是裝 object的,這是就需要這些內建類型的外覆類了。

  Java中每種內建類型都有相應的外覆類。

  Java中int和Integer關係是比較微妙的。關係如下:

  1.int是基本的資料類型;

  2.Integer是int的封裝類;

  3.int和Integer都可以表示某一個數值;

  4.int和Integer不能夠互用,因為他們兩種不同的資料類型;

  舉例說明

  ArrayList al=new ArrayList();

  int n=40;

  Integer nI=new Integer(n);

  al.add(n);//不可以

  al.add(nI);//可以

  並且泛型定義時也不支援int: 如:List<Integer> list = new ArrayList<Integer>();可以  而List<int> list = new ArrayList<int>();則不行

 

總而言之:如果我們定義一個int類型的數,只是用來進行一些加減乘除的運算or作為參數進行傳遞,那麼就可以直接聲明為int基礎資料型別 (Elementary Data Type),但如果要像

對象一樣來進行處理,那麼就要用Integer來聲明一個對象,因為java是物件導向的語言,因此當聲明為對象時能夠提供很多個物件間轉換的方式,與一些常用

的方法。自認為java作為一們物件導向的語言,我們在聲明一個變數時最好聲明為對象格式,這樣更有利於你對物件導向的理解。

java int與integer的區別

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.