全面了解java基本類(lèi)型和封裝類(lèi)型的區(qū)別及應(yīng)用
1. 基本類(lèi)型只能按值傳遞,而每個(gè)基本類(lèi)型對(duì)應(yīng)的封裝類(lèi)是按引用傳遞的。
2. 從性能上說(shuō)java中的基本類(lèi)型是在堆棧上創(chuàng)建的,而所有的對(duì)象類(lèi)型都是在堆上創(chuàng)建的,(對(duì)象的引用在堆棧上創(chuàng)建)。比如
Integer i=new Integer(10); 其中new Integer()是在堆上創(chuàng)建的,而他的引用Integer i是在堆棧上。 封裝類(lèi)的出現(xiàn),是為了更方便的使用一些基本類(lèi)型不具備的方法,比如valueOf(),toString()等等。還有你如果想傳遞一個(gè)int對(duì)象的引用,而不是值,那只能用封裝類(lèi)。
在堆棧上分配內(nèi)存的調(diào)用效率和在堆上分配內(nèi)存的效率差太多了。雖然在堆棧上分配內(nèi)存效率高,不過(guò)在堆棧上分配內(nèi)存有內(nèi)存泄露的問(wèn)題。(這是一個(gè)平庸程序員基本解決不了的問(wèn)題...)java用了一種很天才的方法提高了在堆上分配內(nèi)存的效率,盡管如此,java還是慢。他不太可能達(dá)到向c++那么快,盡管他一直在承諾總有一天虛擬機(jī)會(huì)和機(jī)器碼速度一樣快。
JDK5.0開(kāi)始可以自動(dòng)封包了 ,也就是基本數(shù)據(jù)可以自動(dòng)封裝成封裝類(lèi),基本數(shù)據(jù)類(lèi)型的好處就是速度快(不涉及到對(duì)象的構(gòu)造和回收),封裝類(lèi)的目的主要是更好的處理數(shù)據(jù)之間的轉(zhuǎn)換,方法很多,用起來(lái)也方便。
當(dāng)然,封裝類(lèi)型的傳遞是引用傳遞,比如
Integer a = new Integer(1);
表示一個(gè)Integer類(lèi)型的引用a引用了一塊內(nèi)存,這塊內(nèi)存中的數(shù)據(jù)是1; 而a中所存的則是這塊內(nèi)存的引用(地址),把a(bǔ)傳給別的方法或?qū)ο髸r(shí),則是把a(bǔ)的引用傳遞過(guò)去了。
類(lèi)型之間的轉(zhuǎn)換:
String b = "123456";
int c = Integer.parseInt(b);
表示把字符串123456轉(zhuǎn)成整型數(shù)字,其中parseInt是靜態(tài)方法,可以直接使用
還有一點(diǎn),在某些場(chǎng)合,需要用到封裝類(lèi),比如一個(gè)集合List,它只能往里面添加對(duì)象,也就是Object,那么直接存數(shù)字肯定是不行 的,則需要將數(shù)字封裝成封裝類(lèi)型對(duì)象再存到該List中,如
List list = new ArrayList();
list.add(new Integer(1));
list.add(new Integer(2));
list.add(new Integer(3));
list.add(new Integer(4));
JDK5.0以后可以自動(dòng)封包,所以可以簡(jiǎn)寫(xiě)成
List list = new ArrayList();
list.add(1);
list.add(2);
list.add(3);
list.add(4);

以上這篇全面了解java基本類(lèi)型和封裝類(lèi)型的區(qū)別及應(yīng)用就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
淺談StringBuilder類(lèi)的capacity()方法和length()方法的一些小坑
這篇文章主要介紹了StringBuilder類(lèi)的capacity()方法和length()方法的一些小坑,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07
springMVC使用ajaxFailUpload上傳圖片的方法
這篇文章主要介紹了springMVC使用ajaxFailUpload上傳圖片的相關(guān)知識(shí),代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-06-06
SpringMVC上傳文件的三種實(shí)現(xiàn)方式
本篇文章主要介紹了SpringMVC上傳文件的三種實(shí)現(xiàn)方式,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-12-12
java list與數(shù)組之間的轉(zhuǎn)換詳細(xì)解析
以下是對(duì)java中l(wèi)ist與數(shù)組之間的轉(zhuǎn)換進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過(guò)來(lái)參考下2013-09-09
java集合Collection實(shí)現(xiàn)類(lèi)解析ArrayList?LinkedList及Vector
這篇文章主要為大家介紹了java集合Collection實(shí)現(xiàn)類(lèi)解析ArrayList?LinkedList及Vector,有需要的朋友可以借鑒參考下,希望能夠有所幫助2022-03-03
Java中兩個(gè)大數(shù)之間的相關(guān)運(yùn)算及BigInteger代碼示例
這篇文章主要介紹了Java中兩個(gè)大數(shù)之間的相關(guān)運(yùn)算及BigInteger代碼示例,通過(guò)biginteger類(lèi)實(shí)現(xiàn)大數(shù)的運(yùn)算代碼,具有一定參考價(jià)值,需要的朋友可以了解下。2017-11-11
14個(gè)編寫(xiě)Spring MVC控制器的實(shí)用小技巧(吐血整理)
這篇文章主要介紹了14個(gè)編寫(xiě)Spring MVC控制器的實(shí)用小技巧(吐血整理),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11
Java NIO 文件通道 FileChannel 用法及原理
這篇文章主要介紹了Java NIO 文件通道 FileChannel 用法和原理,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01
JDBC使用Statement修改數(shù)據(jù)庫(kù)
這篇文章主要為大家詳細(xì)介紹了JDBC使用Statement修改數(shù)據(jù)庫(kù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-08-08

