"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > O que é o enigma \"[B\\@\": Compreendendo a notação Java Byte Array?

O que é o enigma \"[B\\@\": Compreendendo a notação Java Byte Array?

Publicado em 2024-11-12
Navegar:438

 What is the \

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:

  • [ : indica um tipo de array.
  • B : indica um tipo de dados de byte.
  • @ : separa o identificador de tipo e o ID do objeto.
  • Dígitos hexadecimais : um ID de objeto exclusivo ou código hash.

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:

  • B - byte
  • C - char
  • D - duplo
  • F - float
  • I - int
  • J - longo
  • Lclasse totalmente qualificada;** - nome da classe
  • S - abreviado
  • Z - booleano
  • [ - dimensão da matriz
  • *(tipos de argumento )tipo de retorno - assinatura do método

Compreender essa notação permite que você navegue no mundo complexo da representação de dados Java com confiança.

Tutorial mais recente Mais>

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