"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > \"[B\\@\" Enigma: Java 바이트 배열 표기법 이해하기란 무엇입니까?

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

2024년 11월 12일에 게시됨
검색:191

 What is the \

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

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

기호 해독

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

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

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

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

  • 명시적 반복 및 변환:

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

    System.out.println(Base64.getEncoder().encodeToString(in));
  • 사용자 정의 문자열 변환:

    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);
    }

JNI 명명법 이해

"[B\@" 표기법은 JNI(Java Native)에서 유형을 설명하기 위한 더 큰 시스템의 일부입니다. 인터페이스). 전체 목록은 다음과 같습니다.

  • B - 바이트
  • C - 문자
  • D - 더블
  • F - float
  • I - int
  • J - long
  • L정규화된 -class;;** - 클래스 이름
  • S - short
  • Z - 부울
  • [ - 배열 차원
  • *(인수 유형)return-type - 메소드 서명

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

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3