2016-03-31 22 views
1

Bir işlenen kümesinin ve yerel değişken tablo slotunun minimum slot büyüklüğü 'int'dir. SonraBayt yararı, kısa tip

nasıl ilan değişkenin yarar alıyorsanız olduğunca kısa, bayt vb A new byte[SIZE] 1/4'üncü bir new int[SIZE] boyutunu alacak

cevap

8

ve JVM bir sınıf ortaya koyan düzen (yani, bellek içi temsilciliği, depolaması gereken alanlar göz önüne alındığında), onları benzer şekilde sıkıştırır.

JB Nizet'in belirttiği gibi, semantik endişesi de var. Bir çok işlem temel olarak bayt üzerinde çalışmaktadır (ikili dosyaları okuma, soket okuma, şifreleme vb.). Bu durumlarda, bir tür byte açıkça bir bayt üzerinde çalıştığınızı gösterir; aksi halde, yüksek 24 biti unset (ya da olmasalar da bir çalışma zamanı istisnası atmak), ya da onları bırakın ve neden kütüphane kullanıcıları bırakarak neden 256, 512, -2816 ve bir sürü bir sürü merak Diğer sayıların hepsi aynı sonucu veriyor gibi görünüyor.

+0

Thnx. Ben bu şekilde anladım: “JVm tarafından int olarak işlenecek/çalışacak olsa bile, bayt/kısa olarak saklanacak ve belleği saklayacaktır”. Doğrumuyum? – nantitv

+1

@nantitv Yup, oldukça fazla. (Ve hatta bitler, 64 bit makinelerde uzun süre işlenebilir!) – yshavit

+1

@nantitv, bir bayt [] 'lı bir başkasına kopyalarsanız, bir defada 8 bayt kopyalayabilir ve uzun bir süre kullanabilirsiniz. Bu, bayt yerine "uzun" olduklarından 8 kat daha hızlı yapar. –