發(fā)布日期:2020-07-30 14:30
包裝java中它的包裝類有哪些為什么會(huì)出現(xiàn)
包裝java
Java中的基本數(shù)據(jù)類型沒有方法和屬性,包裝類是允許包裝java具有方法和屬性并實(shí)現(xiàn)對象交互。
Java設(shè)計(jì)提供了8種基本數(shù)據(jù)類型和8種相應(yīng)的包裝數(shù)據(jù)類型。 我們知道Java是用于面向?qū)ο缶幊痰母呒?jí)語言,因此包裝器類型只是解決基本數(shù)據(jù)類型而無法提供的面向?qū)ο缶幊獭?nbsp;
盡管Java語言是一種典型的面向?qū)ο蟮木幊陶Z言,但八種基本數(shù)據(jù)類型不支持面向?qū)ο蟮木幊?,并且基本?shù)據(jù)類型不具有“對象”的特征-沒有屬性 ,否可以調(diào)用該包裝java的方法。 它們僅用于迎合人類根深蒂固的習(xí)慣,并且確實(shí)可以簡單有效地執(zhí)行常規(guī)數(shù)據(jù)處理。
這種訴諸非面向?qū)ο蠹夹g(shù)的方法有時(shí)會(huì)帶來不便。 例如,引用類型數(shù)據(jù)繼承了Object類的特性,并且很容易轉(zhuǎn)換為String類型(通常是必需的),只需調(diào)用Object類中定義的toString 即可,但是轉(zhuǎn)換基本類型則麻煩得多。 數(shù)據(jù)類型轉(zhuǎn)換為String類型。 為了解決此類問題,Java為每種基本數(shù)據(jù)類型設(shè)計(jì)了一個(gè)相應(yīng)的類,稱為包裝器類。 還有一些教科書,稱為覆蓋類或數(shù)據(jù)類型類。
包裝類的每個(gè)對象都可以封裝相應(yīng)的基本數(shù)據(jù)類型,并提供其他一些有用的方法。 創(chuàng)建包裝對象后,其內(nèi)容(封裝的基本類型數(shù)據(jù)值)將無法更改。 基本類型和相應(yīng)的包裝類可以互換:從基本類型到相應(yīng)的包裝類的轉(zhuǎn)換稱為裝箱,例如,將int包裝到Integer類的對象中; 包裝java的包裝類到相應(yīng)基本類型的轉(zhuǎn)換稱為拆箱,例如將Integer類的對象簡化為int。
自J2SE 5.0起提供了基本數(shù)據(jù)類型的自動(dòng)裝箱和拆箱。 通常,當(dāng)我們要?jiǎng)?chuàng)建類的對象時(shí),我們將執(zhí)行以下操作:當(dāng)我們創(chuàng)建Intege時(shí)對于r對象,可能是這樣的:實(shí)際上,當(dāng)執(zhí)行以上代碼時(shí),系統(tǒng)會(huì)為我們執(zhí)行:Integer i; 這是基本數(shù)據(jù)類型的自動(dòng)裝箱功能。
因?yàn)?/span>Java中的數(shù)字不是對象。 Java語言中有兩種類型的數(shù)據(jù)類型:一種是簡單類型,也稱為原始類型,另一種是引用類型(Reference)。 簡單類型變量存儲(chǔ)特定值,而引用類型變量存儲(chǔ)對象引用。 Java確定每種簡單類型的大小。 這些尺寸不會(huì)隨著機(jī)器結(jié)構(gòu)的改變而改變。 這種不變的大小是包裝java的程序具有強(qiáng)大可移植性的原因之一。
Java有兩種類型,原始類型和引用類型。 基本類型(如boolean,int,double)和引用類型(如String,List)。 每個(gè)基本類型都有對應(yīng)的Wrapper類,例如Integer for int。
在許多情況下,基本類型優(yōu)于裝箱的基本類型,因?yàn)椋涸?/span>JDK 1.5和更高版本中已添加自動(dòng)裝箱和拆箱功能。 但是,對基本類型和包裝類型的不適當(dāng)并行使用可能會(huì)導(dǎo)致大量的隱式裝箱和拆箱操作。 例如,在以下for語句中,由于循環(huán)變量是基本類型,而sum是包裝類型,它將導(dǎo)致頻繁的自動(dòng)裝箱和拆箱操作,從而導(dǎo)致包裝java的性能下降。
對于包裝類型,使用“ ==”進(jìn)行比較可能無法獲得預(yù)期的結(jié)果。 如:new Integer(42)== new Integer(42)將返回false。 應(yīng)該使用equals方法比較裝箱類型。
最后,如何確定對象的類型:一個(gè)常見的典型錯(cuò)誤是object.getClass.isPrimitive()許多人依靠它來確定對象是數(shù)字還是布爾值。 實(shí)際上,返回的是對象的類型,例如java.lang.double,而不是該包裝java的類型的基本類型,所以這是錯(cuò)誤的。
我是用C / C ++開發(fā)應(yīng)用程序。 我更喜歡這兩種語言,并且喜歡成為C ++開發(fā)人員。 我想知道如何創(chuàng)建一個(gè)包含所有C ++代碼的Java程序。 我的意思是,我想將我所有的C ++代碼(已經(jīng)開發(fā))放入Java類中。 但是不知道該怎么做。
java中有8種基本數(shù)據(jù)類型,每種類型都對應(yīng)于一個(gè)包裝類。 Java是一種純粹的面向?qū)ο笳Z言。 Java中的所有內(nèi)容都可以以對象的形式表示,包括Java中的基本數(shù)據(jù)類型。 除了包裝類中的Integer和Character外,其他包裝類均以包裝java中基本數(shù)據(jù)類型的大寫字母命名。
每個(gè)包裝類都有一個(gè)靜態(tài)方法將java的基本數(shù)據(jù)類型轉(zhuǎn)換為包裝類。 該靜態(tài)方法接受相應(yīng)的基本類型參數(shù),并返回對包裝類的引用。
基本數(shù)據(jù)類型到包裝類型的轉(zhuǎn)換被稱為裝箱,包裝類型到基本類型的轉(zhuǎn)換被稱為拆箱。 在Java5之后,包裝java引入了自動(dòng)裝箱和拆箱。 我們可以在代碼中直接將基本數(shù)據(jù)分配給包裝類,而Java編譯器將幫助我們調(diào)用相應(yīng)的valueOf方法和xxxValue方法。