> Java > java지도 시간 > 본문

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

Linda Hamilton
풀어 주다: 2024-10-30 04:19:28
원래의
299명이 탐색했습니다.

 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!