發(fā)布日期:2020-06-25 18:00
包裝數(shù)據(jù)類型與傳統(tǒng)數(shù)據(jù)類型之間的差別
包裝數(shù)據(jù)類型
我們知道Java中有八種基本數(shù)據(jù)類型,它們對應于八種打包類型。 因此,回想一下,當您在代碼中使用基包裝數(shù)據(jù)類型或打包類型時,選擇標準是什么? 有沒有標準? 今天,讓我們來看看包裝類型。
基本類型屬于原始數(shù)據(jù)類型,并且原始值存儲在變量中。 包裝類型是參考數(shù)據(jù)類型,并且變量存儲存儲原始值的地址的參考。 讓我們不要考慮將內(nèi)存空間的不同區(qū)域用于不同目的的不同用途,將其作為一個整體來考慮,并考慮以下語句的內(nèi)存分配過程。
其實答案很簡單,考慮一下緩存的含義,您可以想到,為了使緩存真正有效,您應該放置一些最常用的數(shù)據(jù) 在緩存中。 但是,對于小數(shù),選擇一個元素數(shù)量不受限制的集合。 因此,Java在考慮此問題時可能無法考慮該問題。 應該使用包裝數(shù)據(jù)類型的什么標準來判斷,哪些元素應該放置在緩存中,所以我放棄了,只是沒有緩存。
方法的返回值取決于它是否可以為null以確定是使用包裝器類還是使用基本類。 當方法的返回值不能為null時,建議使用基本類作為返回值。 這樣,當調(diào)用者獲得此方法的返回值時,無需擔心它為null。 基本類型在方法內(nèi)部使用(局部變量)。 在時間效率和效率方面,基本類型優(yōu)于包裝。 因此,在該包裝數(shù)據(jù)類型的方法內(nèi),可以盡可能使用基本類型而不使用包裝類。
包裝器類創(chuàng)建一個對象,該對象具有方法和字段。 對象的調(diào)用是通過引用對象的地址,并且該引用存在于堆棧存儲器中。 基本類型直接存儲在堆內(nèi)存中,直接存儲Value。 另一個區(qū)別是包裝類是通過引用傳遞的,而基本類型是通過值傳遞的。 變量的值存儲在堆棧中,而對象存儲在堆中。 相比之下,堆棧效率更高,這也是java保留基本類型的原因。 包裝數(shù)據(jù)類型創(chuàng)建的對象可以使用api提供的一些有用方法。 更加強大。
有一個有趣的字段Integer.TYPE Integer關于包裝類,例如。 該字段返回后面是對Class對象的引用,Integer.TYPE和int.class表示相同。 順便說一下,String實際上不是char的純數(shù)組,而是引用類型。 應用程序類型是用戶自己定義的某些類,或者Java等提供的某些類通常是使用構(gòu)造函數(shù)構(gòu)造的。 還有一個常用的引用類型:BigInteger,通常將其當作一個大數(shù)字來處理,其字節(jié)大小取決于JVM可用的大小。 由于Java中的重載運算符只是+ =和+,因此您無法進行基本包裝數(shù)據(jù)類型之類的操作。 相反,您可以使用BigInteger的函數(shù)進行操作。
包裝類是具有方法和字段的對象,并且通過引用對象的地址來調(diào)用該對象; 基本類型不是包裝類型是引用的傳遞; 基本類型是值的傳遞。 聲明方法不同:基本數(shù)據(jù)類型不需要new關鍵字; 打包類型需要new才能在堆內(nèi)存中分配新內(nèi)存。
存儲位置不同:基本數(shù)據(jù)類型直接將值保存在值堆棧中; 打包類型是將對象放在堆上,然后通過引用該對象來調(diào)用它們。 初始值不同:int的初始值為0,布爾的初始值為false,包裝類型的初始值為null。 使用方式不同:直接分配和使用基本包裝數(shù)據(jù)類型; 包裝類型用于CoolectionMap等集合中。
基本數(shù)據(jù)類型通常在堆棧上分配。 如果要在堆上分配它們,則只能使用基本數(shù)據(jù)類型包裝器類。 讓我們以Double double為例,基本數(shù)據(jù)類型包裝數(shù)據(jù)類型可以調(diào)用一系列方法。 例如,通常在包裝類方法的底層調(diào)用常用的力傳遞。
Java不是純粹的面向?qū)ο笳Z言。 Java是一種面向?qū)ο蟮恼Z言,但是Java的基本數(shù)據(jù)類型不是面向?qū)ο蟮摹?但是,在實際使用中,我們經(jīng)常需要將基本數(shù)據(jù)轉(zhuǎn)換為對象以便于操作。 例如:在集合的操作中,這是我們需要將基本數(shù)據(jù)類型轉(zhuǎn)換為對象的地方。
自動裝箱:將基本類型轉(zhuǎn)換為包裝類型; 自動拆箱:將包裝類型轉(zhuǎn)換為基本類型注意:使用時,Integer x = null; 該代碼將出現(xiàn)NullPointerException。 建議在使用前確定它是否為空。
基本類型屬于原始數(shù)據(jù)類型,并且原始值存儲在變量中。 包裝類型是參考包裝數(shù)據(jù)類型,并且變量存儲存儲原始值的地址的參考。