(轉)Java進階java int與Integer的區別

Java進階java int與Integer的區別

前言     

     int與Integer的區別從大的方面來講就是基本數據類型與其包裝類的區別:java

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

     1.Java 中的數據類型分爲基本數據類型和複雜數據類型對象

     int 是前者而Integer 是後者(也就是一個類);所以在類進行初始化時int類的變量初始爲0.而Integer的變量則初始化爲null。blog

     2.初始化時:get

     int i =1;容器

     Integer i= new Integer(1);(要把Integer 當作一個類看);但因爲有了自動裝箱和拆箱(始於jdk1.5),使得對Integer類也可以使用:Integer i= 1;       泛型

     int 是基本數據類型(面向過程留下的痕跡,不過是對java的有益補充),Integer 是一個類,是int的擴展,定義了不少的轉換方法。變量

    相似的還有:float Float;double Double;boolean Boolean等,並且還提供了處理 int 類型時很是有用的其餘一些常量和方法擴展

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

     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基本數據類型,但若是要像對象同樣來進行處理,那麼就要用Integer來聲明一個對象,由於java是面向對象的語言,所以當聲明爲對象時可以提供不少對象間轉換的方式與一些經常使用的方法。自認爲java做爲一門面向對象的語言,咱們在聲明一個變量時最好聲明爲對象格式,這樣更有利於你對面向對象的理解。

注  基本類型與包裝類型的異同

     一、在Java中,一切皆對象,但八大基本類型(char,byte,int,double,float,short,long,boolean)卻不是對象。

     二、聲明方式的不一樣,基本類型無需經過new關鍵字來建立,而封裝類型需new關鍵字。

     三、存儲方式及位置的不一樣,基本類型是直接存儲變量的值保存在堆棧中能高效的存取,封裝類型須要經過引用指向實例,具體的實例保存在堆中。

     四、初始值的不一樣,封裝類型的初始值爲null,基本類型的的初始值視具體的類型而定,好比int類型的初始值爲0(整數:包括int,short,byte,long ,初始值爲0),boolean類型爲false,浮點型:float,double ,初始值爲0.0,字符:char ,初始值爲空格,即'' ",若是輸出,在Console上是看不到效果的。

     五、使用方式的不一樣,好比與集合類合做使用時只能使用包裝類型。

 

  
原文地址:https://blog.csdn.net/sunhuaqiang1/article/details/51958714
相關文章
相關標籤/搜索