作為 Java 開發人員,你可能知道 Java 編程語言支持兩種不同類型的數據,這些包括原始數據類型和對象。在最近的 Java 版本中,引入了一種名為 ValueType 的新類型,雖然在代碼中處理對象和值類型的方式不應該有任何區別,但 ValueTypes 在底層確實存在顯著差異。簡而言之:ValueTypes 看起來像對象,但它們的行為類似于原語。本 Java 編程教程討論了 Java 中新引入的 ValueType。感興趣的同學可以通過參加java培訓來獲得相關技能。
Java中有哪些數據類型?
布爾數據類型:Java 中的布爾數據類型只能用于存儲兩個值:真或假。
字符數據類型:字符數據類型可以存儲任何 Unicode 字符。例如:a、A、z、1、4、$、# 和 !都是字符數據類型的示例(只要它們用引號括起來)。
短數據類型:短數據類型可以存儲 -32768 到 32767 之間的任何數值。
整數數據類型:整數數據類型可以存儲任何數字整數值。這是 Java 中原始的原始數據類型,用于存儲整數。
Long 數據類型:long 數據類型可以存儲更大的整數。
浮點數據類型:浮點數據類型可以存儲最多三位精度的實數。這非常適合存儲 0.5 或 32.72 等數字。也稱為小數點數。
雙精度數據類型:雙精度數據類型可以存儲最多六位精度的實數。這是存儲 23.198 或 -32.45 等數字的好選擇。
Java 中的 ValueType 是什么?
ValueType 是一種表示值的類型。這類似于 Java 中原始類型的表示方式。主要區別在于 ValueType 是引用類型,這意味著它可以存儲在變量中或作為參數傳遞給方法。在java培訓中,有理論知識+實踐項目課程,雙管齊下,學以致用,讓你深入淺出地學習java。
ValueType 是 Java 8 中的一個新特性,它使得定義行為類似于原語的自定義類型成為可能。例如,你可以為二維坐標系中的點創建 ValueType。這使得處理復雜的數據結構變得容易,而無需使用類或數組。
在 Java 8 中,引入了新的 ValueType 以提高性能并使代碼更加簡潔。ValueType 是不可變且無法更改的對象的包裝器。這使得它非常適合在不需要更改對象的情況下使用,例如在方法的返回值中。
Java中新的ValueType的特點是什么?
Java ValueType 是不可變的
不變性是 Java 編程語言的另一個內置特性。一旦創建,不可變對象就無法更改;也就是說,你不能在創建不可變對象后修改它的內容。請注意,在 Java 中,所有包裝類(如 String、Integer、Boolean、Byte 和 Short)都是不可變的。不可變對象可幫助你以更干凈、線程安全的方式編寫代碼。
ValueType 是不可變的,這意味著一旦定義了它,就不能更改它的值。這使得它們非常適合用于哈希表和集合等數據結構。通過java培訓學習,有系統規范的課程和明確清晰的學習路線,讓你快速掌握java更多知識和技能。
Java ValueType 沒有標識
ValueType 的實例沒有標識,(即,只有當它們各自的內部狀態相同時,它們才被認為是相同的)。當我們可以在沒有身份的情況下反對時,這意味著重要的是對象的價值。例如,值為 100 的 int 與代碼中具有相同值的任何其他 bint 相同。
Java ValueType 沒有任何引用或對象標頭
當你將 ValueType 的實例作為參數傳遞給方法時,它們會被完全復制。此外,它缺少對象頭或標識,因此缺少跨值類型的繼承。
Java ValueType 不支持繼承或多態
值類型與對象的區別在于對值類型的不可變引用。因此,它也缺乏繼承和多態性。其中有幾個,比如沒有對象頭,是實現細節;其他是設計選擇。
ValueType 的多態性沒有任何意義,因為 ValueType 不包含任何類信息并且直接存儲。因此,Java 虛擬機 (JVM) 必須能夠從程序而不是對象中推斷出對象的類型。
結語
值通常以塊的形式從主內存讀入 CPU 緩存,這比頁面小得多。一個頁面的大小可以小到 4096 字節(4KB),也可以大到 2MB(64K 到 2MB); 一個高速緩存行可以小到 16 或 32 個字節。在java培訓中,有很多關于ValueType的培訓課程,在專業老師的教學指導下,可以很全面地掌握相關知識和技能。