В последней статье мы говорили о массивах в Java, что на самом деле готовится к содержанию этой главы. Строка - это класс, который мы используем больше всего в написании кода Java. Нет никого. Сегодня мы поговорим об этом. Открыто Исходный код строкового класса:
Объявляется массив char[], имя переменной — value, объявляется переменная hash типа int (функция hash будет рассмотрена позже), код выше:
Щелкнем по конструктору, чтобы посмотреть:
Много лет назад, когда я увидел этот код, я был ошеломлен. Да, я готовлюсь построить объект String. Откуда исходный объект? Когда он был построен?
В Java, когда значение заключено в двойные кавычки (например, "abc" в этом примере), JVM сначала проверит, есть ли объект abc в пуле констант. Если нет, инициализируйте abc как объект и поместите в константу Пул, если он есть, возвращает содержимое пула констант напрямую. На следующем рисунке показан параметр «abc», который выполняет предварительную обработку String str = new String («abc»)
Затем новое ключевое слово обрабатывается, чтобы освободить место в куче памяти.Поскольку хеш-поле имеет тип int, значение по умолчанию для инициализации переменной-члена равно 0.
Логика конструктора обработки, хэш — тип значения, прямое присвоение, массив — ссылочный тип, прямая точка на адрес.
Продолжать
Наконец выполните String str2 = new String("abc"), результат будет следующим:
Используйте функцию отладки IDE, чтобы увидеть, что в массиве символов уже есть значения «a», «b» и «c».
Давайте посмотрим, как реализованы часто используемые API класса String:
Все очень просто, верно, страшно не то, что исходники трудно читать, а сердце, которое не хочет, боится читать исходники. Если статья одобрена вами, пожалуйста, поставьте лайк моей статье, ваше одобрение является движущей силой для меня, чтобы продолжить.
Примечание. Рисунок в тексте предназначен только для того, чтобы нарисовать общий вид объекта в JVM, чтобы облегчить всеобщее понимание. Если вы хотите изучить JVM на более глубоком уровне, рекомендуется прочитать книгу Deep Understanding of the Java Virtual Machine.
Если вам нравится эта серия статей, пожалуйста, поставьте лайк или поделитесь со мной. Ваша поддержка является движущей силой для меня, чтобы продолжать. Вы также можете оставить сообщение в области комментариев. Если у вас есть возможность, эта колонка объяснит это. Наконец , не забудьте обратить внимание. Проверьте меня.
Предыдущий:Массивы в Java - вещи Java
Следующий:Базовые типы данных Java и ссылочные типы — это то, что есть в Java
Перепечатка приветствуется, но с указанием "автора" и "оригинального адреса". Пожалуйста, сохраните этот абзац в тексте для перепечатки, спасибо за уважение авторских прав. Для коммерческого воспроизведения или публикации, пожалуйста, свяжитесь с автором для получения разрешения.