Javas Endlichkeit der virtuellen Maschine
Was endian hat die Java-Nutzung in einer virtuellen Maschine? Ich erinnere mich, irgendwo gelesen zu haben, dass es hängt von den physikalischen Maschine laufen, und dann an anderen Orten habe ich gelesen, dass es immer, ich glaube, big-endian. Ist das so richtig?
InformationsquelleAutor der Frage JoeCool | 2009-06-11
Du musst angemeldet sein, um einen Kommentar abzugeben.
Multibyte-Daten, die in der
class
Dateien gespeichert sind big-endian.Vom Die Java Virtual Machine Specification, Java SE 7 EditionKapitel 4: Das
class
- Datei-Format:Darüber hinaus wird der operand in eine bytecode-Instruktion ist auch big-endian, wenn es sich über mehrere bytes.
Vom Die Java Virtual Machine Specification, Java SE 7 EditionAbschnitt 2.11: Instruction Set Summary:
Also ja, ich denke, es kann gesagt werden, dass die Java Virtual Machine verwendet big-endian.
InformationsquelleAutor der Antwort coobird
Den eigentlichen Daten, die in den Laufenden Prozess wird mit ziemlicher Sicherheit passen die endian Typ des auszuführenden Prozesses. In der Regel Datei-Formate (einschließlich der class-Dateien) werden in network-order " (big endian).
Es ist generell schwierig zu sagen, was die Maschine tun, darunter, wie es ist abstrahiert von der virtuellen Maschine. Sie können nicht werfen ein
short[]
zubyte[]
wie kann man in C und C++. java.nio.ByteOrder.nativeOrder() sollte Ihnen die zugrunde liegenden endian Typ. Passende endian Typ ist nützlich bei der Verwendung der nicht-byte-NIO Puffer.InformationsquelleAutor der Antwort Tom Hawtin - tackline