>Java >java지도 시간 >\'[B\\@\' Enigma: Java 바이트 배열 표기법 이해하기란 무엇입니까?

\'[B\\@\' Enigma: Java 바이트 배열 표기법 이해하기란 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-10-30 04:19:28380검색

 What is the

"[B@" 수수께끼 해결: Java 바이트 배열 표기법 이해

바이트 인쇄 시 발생하는 독특한 "[B@" 표현 Java의 배열은 종종 개발자를 당황하게 했습니다. 이는 무엇을 의미하며, 그 의미를 어떻게 해독할 수 있습니까?

기호 해독

"[B@" 표기는 바이트 배열 내용의 16진수 표현이 아닙니다. 오히려 객체 설명자입니다. 각 구성 요소는 특정 측면을 나타냅니다.

  • [ : 배열 유형을 나타냅니다.
  • B : 바이트 데이터 유형을 나타냅니다.
  • @ : 유형 식별자와 개체 ID를 구분합니다.
  • 16진수 : 고유한 개체 ID 또는 해시코드입니다.

배열 내용을 효과적으로 인쇄

객체 ID가 아닌 바이트 배열의 실제 내용을 표시하려면 다음과 같은 다양한 방법을 사용할 수 있습니다.

  • 명시적 반복 및 변환:

    <code class="java">byte[] in = {1, 2, 3, -1, -2, -3};
    for (byte b : in) {
    System.out.print(String.valueOf(b) + " ");
    }</code>
  • 16진수 문자열 변환:

    <code class="java">System.out.println(Base64.getEncoder().encodeToString(in));</code>
  • 사용자 정의 문자열 변환:

    <code class="java">String byteArrayToString(byte[] in) {
    char out[] = new char[in.length * 2];
    for (int i = 0; i < in.length; i++) {
      out[i * 2] = "0123456789ABCDEF".charAt((in[i] >>> 4) & 15);
      out[i * 2 + 1] = "0123456789ABCDEF".charAt(in[i] & 15);
    }
    return new String(out);
    }</code>

JNI 명명법 이해

"[B@" 표기법 JNI(Java Native Interface)의 유형을 설명하기 위한 대규모 시스템의 일부입니다. 전체 목록은 다음과 같습니다.

  • B - 바이트
  • C - 문자
  • D - double
  • F - float
  • I - int
  • J - long
  • L완전한 클래스;;** - 클래스 이름
  • S - 짧음
  • Z - 부울
  • [ - 배열 차원
  • *(인수 유형 )return-type - 메소드 서명

이 표기법을 이해하면 Java 데이터 표현의 복잡한 세계를 자신 있게 탐색할 수 있습니다.

위 내용은 \'[B\\@\' Enigma: Java 바이트 배열 표기법 이해하기란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.