Java中的基本數據類型及其封裝類
阿新 • • 發佈:2018-02-01
實例化 too shadow color ant 基本類 實用 anti 泛型 Java中的數據類型有兩種,基本數據類型和引用數據類型,引用數據類型的創建是
需要去new一個對象,該對象的內存分配在堆區,同時棧區會保存一個指向該對象的引用,
但是對於一些簡單數據的創建,用new的方式就不是很有效了,因此JVM中定義了一套對於基本
數據類型的描述,它直接保存值到堆棧當中,而不需要在堆中創建對象。
Java需要確定每種基本數據類型所占空間的大小,而且他們所占空間的大小是固定不變
的,這也是java具有高移植性的一個原因,下面是java中所定義的9中基本數據類型及其封裝類:
由於基本數據類型是非面向對象的,因此java為基本類型提供了封裝類,使我們可以采用面向對象的方式操作基本數據類型,
同時這些類中也封裝了很多可以供我們使用的實用方法。
此時有的小夥伴會發現void也是原始數據類型??還有封裝類Void??下面來看看Void類的代碼:
package java.lang; /** *這段話的意思就是Void類是一個不可實例化的占位符類,它持有對標識Java關鍵字void的Class對象的引用。 * The {@code Void} class is an uninstantiable placeholder class to hold a * reference to the {@code Class} object representing the Java keyword * void. * * @author unascribed * @since JDK1.1 */ public final class Void { /** * * The {@code Class} object representing the pseudo-type corresponding to * the keyword {@code void}. *這句代碼可以理解為返回void基本數據類型的封裝類Void,這句代碼在其他封裝類的源碼中都有出現 *且getPrimitiveClass()方法是native的,不能java中實現,暫且如此理解 */ public static final Class<Void> TYPE = Class.getPrimitiveClass("void"); /* * The Void class cannot be instantiated. */ private Void() {} }
因此可以理解:Void類可能本身作用就只是不起任何作用,但是本身只是一個占位符類。即Void類本身只是一個占位符類,不能被實
例化,多用於泛型中作占位符使用。而對於基本數據類型void,它的含義應該就是‘沒有東西’,例如表示返回值,就表示沒有返回值。。。
應該可以這樣理解
Java中的基本數據類型及其封裝類