2013-02-12 4 views
1

Un seul byte reprend quatre octets de l'espace intérieur de la machine virtuelle Java (32 du processeur de bits). Oui, nous pouvons utiliser un tableau d'octets qui occuperait seulement la quantité d'espace dont il a réellement besoin. Mais je veux utiliser un seul octet pas un tableau d'octets.Représentation d'un seul octet

Alors, est-il de type dans Java pour représenter une donnée 8 bits.

+1

* « Un seul octet prend quatre octets d'espace dans la machine virtuelle Java. » * - [citation nécessaire] –

+0

@MichaelMyers hmm..right..am pas sûr de this..i suppose que cela dépend entièrement de la processeur cible .. – Anirudha

+0

Oui, le type représentant une référence de 8 bits est appelé "octet". Comment le stocker efficacement est à la JVM, y compris le JIT. Si votre application nécessite un contrôle strict sur le placement des données, vous ne devriez probablement pas l'écrire en Java. –

Répondre

4

A uniquebyte peut être alloué plus d'un seul octet de stockage, pour des raisons d'alignement de la mémoire.

Ne vous inquiétez pas pour le processeur cible. Un tableau de 10000 byte s sera stocké dans environ 10000 octets d'espace.

+0

Lire sur l'alignement de la structure de données pour l'arrière-plan (http://en.wikipedia.org/wiki/Data_structure_alignment). Java est un peu plus intelligent sur la façon dont il effectue l'alignement que C. Java va réorganiser les champs afin de prendre moins d'espace. Néanmoins, les exemples C sont très instructifs. –

+1

qui était vraiment utile .. xxx – Anirudha

1

Y at-il un type en Java pour représenter une référence de 8 bits.

Oui, cela s'appelle byte. La quantité réelle d'un seul byte dépend uniquement de la machine virtuelle Java.

0

Un octet représente une donnée de 8 bits. Pourquoi vous souciez-vous du nombre d'octets qu'une implémentation d'un VM utilise pour le stocker?

+0

était curieux de le savoir .. mais je suppose que cela est hors de notre contrôle .. – Anirudha

1

Il appartient à l'implémentation (JVM) de gérer les types internes. Je suppose que toute machine virtuelle Java sur une machine 8bit utilise 1 octet pour le type byte - cela pourrait ne pas être toujours sur les machines à 32bit ou 64bit le cas, comme vous avez remarqué :)

1

Si vous utilisez byte puis Java utilisera la méthode la plus efficace pour le stocker. Peut-être 8 bits, peut-être 64 bits, mais quoi qu'il en soit, c'est pour une bonne raison. Ne combattez pas le compilateur, il le sait mieux que vous.

+0

oui .. tout à fait d'accord avec vous .. – Anirudha

Questions connexes