簡體   English   中英

Java中的byte []如何實際存儲數據

[英]How does a byte[] in java actually store data

如果我有以下內容:

byte[] byteArray = new byte[] {87, 79, 87, 46, 46, 46};

我知道每個元素的大小將是一個字節。 但是我似乎不明白,整數87將如何存儲在一個字節中? 或者, byte[]如何存儲數據?

編輯:我看到您可以在Java中的一個字節中存儲-128到127。 那么,這是否意味着沒有辦法在byte[]存儲大於或小於這些數字的任何內容? 如果是這樣,這是否限制了此方法的使用? 還是不了解使用byte[]的確切位置。

字節為8位。 2^8是256,這意味着8位可以存儲256個不同的值。 在Java中,這些值是-128到127之間的數字,因此87是有效字節,因為它在該范圍內。

類似地,嘗試執行類似byte x = 200 ,您會看到錯誤,因為200 不是有效字節。

一個byte只是一個8位整數值。 這意味着它可以保存-2 ^ 7到2 ^ 7-1之間的任何值,包括{87,79,87,46,46,46}中的所有數字。

Java中的一個integer ,僅是一個4字節的整數,允許它容納-2 ^ 31至2 ^ 31-1

Java字節是具有最小值-128和最大值127(含)的原語。 87在允許的范圍內。 字節數據類型對於在大數組中節省內存非常有用,因為內存節省實際上很重要。

byte []是一個存儲許多這些原語的對象。

我認為簡短的答案是byte []存儲字節。 數組上方的數字87是一個字節,而不是int。 如果將其更改為700(或大於127的任何值),則會出現編譯錯誤。 試試吧。

您可以使用byte在其中存儲8位值,其(有符號)范圍為-128127

使用byte[]您可以執行一些特殊操作,例如從給定的字節流中構建String ,並使用所需的Charset對其進行解碼,並且某些函數將為您提供byte[]作為其返回值。

我對JVM的內部了解不足,但它可能會節省內存。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM