2013-06-05 113 views
7

我在JVM規範中讀到數據類型byte,short和char在內部被視爲int。 那麼,爲什麼有這些數據類型,如果我們沒有從他們的小尺寸的好處?爲什麼數據類型byte,char和short需要

+3

主要用於數組。一組短褲仍然使用相同尺寸的整數數組的一半內存。 – MTilsted

+3

我確定有很多算法取決於不同積分類型的值範圍,例如,期望積分值在某個點溢出。 –

+1

除了內存問題外,這些基本的數字類型在處理通信協議或與Java代碼之外定義的緊湊結構交互的代碼時通常很方便。當然,如果這個語言的設計者真的關心這個用例,他們會在語言中添加無符號類型,這樣我們就不需要像'b&0xFF'這樣的可怕技巧...... –

回答

8

在部分它是用於與C/C++的相容性,並且部分地是爲了節省內存 - 內部,短是存儲作爲短,但它的處理爲整數。 A new short[10]佔用內存的一半多new int[10]

+2

+1:數組,主要是。在堆棧或局部變量中,'byte'佔用的空間與'int'相同(如果願意,JVM可以優化它)。 –

1

這是爲了記憶的目的。每個變量都有一個內存空間。空間的大小取決於您使用的變量類型。

否則,在操縱字符串時,char類型非常有用。事實上,你可以使用string.charAt(index)

1

這個字符串中的一個字符給出的答案非常好,但我會指出另一種可能的用法。你可以做一些編譯時檢查數據類型。例如,你可以將一個人的年齡(以年爲單位)看作一個字節,並且可以進行編譯時檢查,以確保存儲在int或short中的較大值用於該字段。

相關問題