Integer和int的區別,包裝類,基本資料型別,區別
int 是基本資料型別。
Integer是其包裝類,注意是一個類。
https://zhidao.baidu.com/question/322364721.html
----
包裝類,和資料型別,使用上,有什麼區別?下面舉個例子:
int test0;
TestBean test2;//TestBean是我自定義的類 test2.getName();//報錯The local variable aa may not have been initialized
Integer test1; test1.byteValue();//報錯The local variable aa may not have been initialized
1基本資料型別,不是類,即不是物件,即不能進行new這樣來建立物件。所以其也就不能使用"物件.function()",其也就少了好多處理函式,很不方便。因此才有了封裝類,沒有封裝類,好多資料都不能處理,很不方便。
比如我現在要用泛型 |
2類的物件必須初始化,即new才可以訪問成員函式,否則訪問成員函式報錯。而基本資料型別,不是類,不能new,否則報錯。
int bb=new int();//Syntax error on token "int", invalid ClassType
Integer test1;
test1.byteValue();//報錯The local variable aa may not have been initialized
----
這裡就牽扯出來另幾個問題,①java基本資料型別有哪些?
http://www.cnblogs.com/simplefrog/archive/2012/07/15/2592011.html
②String是不是基本資料型別?
不是。因為基本資料型別不能new,更不可能有“物件.function”這種用法。
String test = new String();//編譯通過,不報錯
----------在此總結,java的變數,有幾種型別?
1基本資料型別,int、float等8種。不用new,new會報錯。
2Class,即類。可以使用Test test=new Test();這種“對稱”初始化的方式,進行new。
3Interface,即介面。不可以使用Test test=new Test();這種“對稱”初始化的方式,進行new。會報錯。
必須非對稱,要用介面的實現類,給介面new。
5陣列。其new的方式也比較特殊,有如下三種,
所以,綜上所述,是根據什麼區分各種變數的型別的?是new的方式。
其實,我們發現,class、interface、陣列這三者都要new,因此可以將interface、陣列當成特殊的class看待,因此三者都可以當成是class。