«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Что такое загадка \"[B\\@\": понимание нотации байтовых массивов в Java?

Что такое загадка \"[B\\@\": понимание нотации байтовых массивов в Java?

Опубликовано 12 ноября 2024 г.
Просматривать:922

 What is the \

Решение загадки "[B\@": понимание нотации байтовых массивов в Java

Свойственное представление "[B\@" встречается, когда Печать байтовых массивов в Java часто озадачивала разработчиков. Что оно означает и как мы можем расшифровать его значение?

Расшифровка символизма

Обозначение «[B@» не является шестнадцатеричным представлением содержимого байтового массива а скорее дескриптор объекта. Каждый компонент представляет определенный аспект:

  • [ : обозначает тип массива.
  • B : указывает байтовый тип данных.
  • @ : разделяет идентификатор типа и идентификатор объекта.
  • Шестнадцатеричные цифры : уникальный идентификатор объекта или хэш-код.

Эффективная печать содержимого массива

Чтобы отобразить фактическое содержимое байтового массива, а не идентификатор объекта, вы можете использовать различные методы:

  • Явная итерация и преобразование:

    byte[] in = {1, 2, 3, -1, -2, -3};
    for (byte b : in) {
    System.out.print(String.valueOf(b)   " ");
    }
  • Преобразование шестнадцатеричных строк:

    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 - double
  • F - float
  • I - int
  • J - long
  • Lполный-класс;;** - имя класса
  • S - короткое
  • Z - логическое значение
  • [ - размерность массива
  • *(типы аргументов )return-type - сигнатура метода

Понимание этой нотации позволяет вам уверенно ориентироваться в сложном мире представления данных Java.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3