существуетОбсуждение равенства в Java (часть 1)В этой статье, в конце статьи, мы упомянули, что нижний слой String реализован массивами char.Многие люди боялись плакать двумерными массивами и трехмерными массивами, когда шли в школу. Сегодня мы поговорим о массивах. Массивы очень важны. Многие часто используемые классы, такие как String, все реализованы с помощью массивов. Мы поговорим о них по порядку позже. Сколько людей давно не использовали массивы? Вы используете ArrayList? Давайте сначала продадим его, нижний слой ArrayList также реализован массивами.
Массив — это набор элементов одного типа данных, расположенных в определенном порядке.. Теперь давайте посмотрим, как массив выглядит в памяти, без лишних слов, вот код:
Это код уровня учебника, который напоминает мне статью, которую я выучил в средней школе: Конг Иджи спросил: «Сколько существует способов написать фасоль фенхеля?» Сначала скомпилируем его, откроем скомпилированный файл класса и декомпилируем его, чтобы увидеть:
После того, как три метода объявления массива скомпилированы, окончательный метод создания одинаков.Все они добавляют нам новое ключевое слово, а объявление и присваивание charArr3 также интегрированы.Компилятор имеет слишком большой контроль. Кто-то в области комментариев сказал, что декомпилированный код отличается от моего декомпилированного кода,Все статьи в этой колонке основаны на JDK 1.8. Инструмент декомпиляции — это инструмент декомпиляции, который поставляется с идеей. Причина различия может заключаться в том, что ваша версия JDK или инструмент декомпиляции несовместимы с моей.. Взгляните на функцию ассоциации кода в среде IDE:
Ну да, класс Object имеет некоторые методы, а также у него есть атрибут длины (обратите внимание, что это не метод). Я лично считаю, что на уровне Java мы можем обращаться с массивами как с объектами. На следующем рисунке мы моделируем общий вид массивов в памяти кучи. Каждый массив расположен в памяти кучи по порядку. Из-за этого мы Элементы в Доступ к массиву можно получить напрямую с помощью array+[subscript].
Давайте снова посмотрим на двумерный массив:
Есть еще три способа объявить его или декомпилировать файл класса, чтобы посмотреть.Хотя есть некоторые различия, он все тот же, и нам добавляется новое ключевое слово (на этот раз наш массив z и присваивание не интегрированный).
Старые правила, давайте нарисуем картинку.
Эй, разве это не просто массив внутри массива, не пугайтесь слова двумерный, двумерного массива не существует, на самом деле это двумерный массив. На рисунке выше нарисован только массив x, а заинтересованные друзья могут сами нарисовать y и z.
Рассмотрим результат выполнения следующего кода:
Примечание. Все примеры кодов в этом столбце были загружены в общедоступную учетную запись: sayayJava.
Если вам нравится эта серия статей, пожалуйста, поставьте лайк или поделитесь со мной. Ваша поддержка является движущей силой для меня, чтобы продолжать. Вы также можете оставить сообщение в области комментариев. Если у вас есть возможность, эта колонка объяснит это. Наконец , не забудьте обратить внимание. Проверьте меня.
Перепечатка приветствуется, но с указанием "автора" и "оригинального адреса". Пожалуйста, сохраните этот абзац в тексте для перепечатки, спасибо за уважение авторских прав. Для коммерческого воспроизведения или публикации, пожалуйста, свяжитесь с автором для получения разрешения.
Предыдущий:Разговор об равенствах в Java (Часть 1) — об этих вещах в Java
Следующий:String - очень распространенный класс - материал Java