ByteOrder es una clase del paquete java.nio . En general, Byte Order significa la enumeración de ByteOrder.
- En Java hay tipos de datos primitivos como int, char, float, double que almacenarán datos en la memoria principal en una cierta cantidad de bytes.
- Por ejemplo, un carácter o un entero corto ocupa 2 bytes, un entero de 32 bits o un valor de coma flotante ocupa 4 bytes y un entero largo o un valor de coma flotante de doble precisión ocupa 8 bytes.
- Y cada valor de uno de estos tipos de bytes múltiples se almacena en una secuencia de ubicaciones de memoria contiguas.
- Aquí, considere un entero largo que ocupa 8 bytes, y estos ocho bytes podrían almacenarse en la memoria (desde la dirección baja hasta la dirección alta) como 13,17,21,25,29,34,38,42; este arreglo se conoce como orden big-endian (el byte más significativo, el extremo «grande», se almacena en la dirección más baja).
- Alternativamente, estos bytes podrían almacenarse como 42,38,34,29,25,21,17,13; este arreglo se conoce como orden little-endian (el byte menos significativo, el extremo «pequeño», se almacena en la dirección más baja hasta la dirección más alta).
Nota: ByteOrder Class amplía Object Class, que es la raíz de la jerarquía de clases.
Hay dos campos de la clase ByteOrder
Campo | Descripción |
---|---|
BIG_ENDIAN | Este es un campo que indicará el orden de bytes big-endian. |
LITTLE_ENDIAN | Este es un campo que será constante y denotará un orden de bytes little-endian. |
Sintaxis: declaración de clase
public final class ByteOrder extends Object {}
Los métodos de esta clase son los siguientes:
Métodos | Descripción |
---|---|
orden nativo() |
Este método se define para aumentar el rendimiento de la JVM asignando un búfer directo en el mismo orden a la JVM. Este método devuelve el orden de bytes nativo del hardware en el que se ejecuta esta máquina virtual Java. |
Enstringr() | Este método devuelve la string que se define de una manera específica. |
Implementación:
Ejemplo
Java
// Java Program to demonstrate ByteOrder Class // Importing input output and utility classes import java.io.*; // Importing required classes from java.nio package // for network linking import java.nio.ByteBuffer; import java.nio.ByteOrder; import java.nio.IntBuffer; // Main class public class GFG { // Main driver method public static void main(String[] args) throws Exception { // Here object is created and allocated and // it with 8 bytes of memory ByteBuffer buf = ByteBuffer.allocate(8); // This line of code prints the os order System.out.println("OS Order :- " + ByteOrder.nativeOrder()); // This line of code prints the ByteBuffer order // Saying that whether it is in BIG_ENDIAN or // LITTLE_ENDIAN System.out.println("ByteBuffer Order :- " + buf.order()); // Here the conversion of int to byte takes place buf.put(new byte[] { 13, 17, 21, 25 }); // Setting the bit set to its complement using // flip() method of Java BitSet class buf.flip(); IntBuffer integerbuffer = buf.asIntBuffer(); System.out.println("{" + integerbuffer.position() + " : " + integerbuffer.get() + "}"); integerbuffer.flip(); buf.order(ByteOrder.LITTLE_ENDIAN); integerbuffer = buf.asIntBuffer(); System.out.println("{" + integerbuffer.position() + " : " + integerbuffer.get() + "}"); } }
Producción
OS Order :- LITTLE_ENDIAN ByteBuffer Order :- BIG_ENDIAN {0 : 219223321} {0 : 420811021}
Nota:
- El orden de un búfer de bytes recién creado siempre es BIG_ENDIAN.
- Uno puede tener un orden de sistema operativo diferente para diferentes máquinas.
Publicación traducida automáticamente
Artículo escrito por pranaythanneru y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA