2016-03-31 44 views
1

操作數堆棧和局部變量表槽大小的最小插槽大小爲'int'。字節,短型的好處

然後我們如何獲得變量聲明的益處如短,字節等

回答

8

new byte[SIZE]一個將要採取1 /第四一個new int[SIZE]的大小,並且當JVM勾畫出一個類的佈局(也就是說,它的內存中表示,給定了它需要存儲的字段),它可以類似地壓縮它們。

正如JB Nizet指出的那樣,還有一個語義的擔憂。許多操作從根本上處理字節(讀取二進制文件,從套接字讀取,加密等)。在這些情況下,一種類型的byte清楚地表明您正在處理一個字節;否則,你必須檢查高24位是否未設置(如果不是,則拋出一個運行時異常),否則將它們丟棄並讓你的庫的用戶不知道爲什麼256,512,-2816和一大堆其他數字似乎都會產生相同的結果。

+0

Thnx。我通過這種方式瞭解它「即使它將通過jvm處理/操作爲int,它將以字節/短的形式存儲並保存內存」。我對麼? – nantitv

+1

@nantitv Yup,非常。 (甚至整數可能會在64位機器上被處理爲long)! – yshavit

+1

@nantitv如果你將一個byte []拷貝到另一個byte拷貝中,它可以一次拷貝8個字節。這比使用'long'而不是字節快8倍。 –