Clase java.nio.ByteOrder en Java

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *