Abordando el enigma "[B\@": comprensión de la notación de matriz de bytes de Java
La peculiar representación "[B\@" encontrada cuando La impresión de matrices de bytes en Java a menudo ha desconcertado a los desarrolladores. ¿Qué significa y cómo podemos descifrar su significado?
Decodificando el simbolismo
La notación "[B@" no es una representación hexadecimal del contenido de una matriz de bytes sino más bien un descriptor de objeto. Cada componente representa un aspecto específico:
Imprimir el contenido de la matriz de manera efectiva
Para mostrar el contenido real de una matriz de bytes, en lugar del ID de objeto, puede emplear varios métodos:
Iteración explícita y Conversión:
byte[] in = {1, 2, 3, -1, -2, -3};
for (byte b : in) {
System.out.print(String.valueOf(b) " ");
}
Conversión de cadena hexadecimal:
System.out.println(Base64.getEncoder().encodeToString(in));
Cadena personalizada Conversión:
String byteArrayToString(byte[] in) {
char out[] = new char[in.length * 2];
for (int i = 0; i >> 4) & 15);
out[i * 2 1] = "0123456789ABCDEF".charAt(in[i] & 15);
}
return new String(out);
}
Comprensión de la nomenclatura JNI
La notación "[B\@" es parte de un sistema más amplio para describir tipos en JNI (Java Native Interfaz). Aquí hay una lista completa:
Comprender esta notación le permite navegar por el complejo mundo de representación de datos Java con confianza.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3