Abordando o enigma "[B\@": Compreendendo a notação de array de bytes Java
A peculiar representação "[B\@" encontrada quando imprimir matrizes de bytes em Java costuma confundir os desenvolvedores. O que isso significa e como podemos decifrar seu significado?
Decodificando o Simbolismo
A notação "[B@" não é uma representação hexadecimal do conteúdo da matriz de bytes mas sim um descritor de objeto. Cada componente representa um aspecto específico:
Impressão eficaz do conteúdo da matriz
Para exibir o conteúdo real de uma matriz de bytes, em vez do ID do objeto, você pode empregar vários métodos:
Iteração e conversão explícitas:
byte[] in = {1, 2, 3, -1, -2, -3};
for (byte b : in) {
System.out.print(String.valueOf(b) " ");
}
Conversão de string hexadecimal:
System.out.println(Base64.getEncoder().encodeToString(in));
Conversão de string personalizada:
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);
}
Compreendendo a nomenclatura JNI
A notação "[B\@" faz parte de um sistema maior para descrever tipos em JNI (Java Native Interface). Aqui está uma lista completa:
Compreender essa notação permite que você navegue no mundo complexo da representação de dados Java com confiança.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3