Глибше у String
Як насправді працюють рядки в Java
Ви вже знаєте, що таке String і як з ним працювати. У цьому розділі розглядаються теоретичні аспекти того, що знаходиться всередині String.
Дослідимо внутрішнє представлення значень String у Java. Спочатку String реалізовувався як масив значень char, що було просто та інтуїтивно зрозуміло. Однак згодом відбулася зміна на масив значень byte. Розглянемо причини цієї зміни.
Змінна char у Java займає 2 байти пам'яті, тоді як змінна byte потребує лише 1 байт. Використовуючи значення byte, можна суттєво зменшити обсяг пам'яті, використовуючи лише чверть простору.
Але як String може містити різні символи, включаючи нечислові? Механізм подібний до змінної char. Використовується ASCII table, де числові дані зіставляються з певними символами, що дозволяє представляти широкий спектр символів у String.
Розглянемо ілюстрацію, яка показує значення String "Hello":
Комірки містять елементи типу byte, які беруться з ASCII table. У коді можна навіть переглянути точний масив byte, що зберігається у значенні змінної String. Це можна зробити за допомогою методу getBytes().
Main.java
12345678910111213141516package com.example; public class Main { public static void main(String[] args) { String hello = "Hello"; byte[] bytes = hello.getBytes(); printArray(bytes); } static void printArray(byte[] bytes) { for (byte element: bytes) { System.out.print(element + " "); } System.out.println(); } }
Можна побачити, що значення byte ідентичні тим, що показані на діаграмі вище. Додатково, якщо цікаво, можна звернутися до ASCII-таблиці та порівняти код кожного елемента з його відповідним значенням.
Можна маніпулювати цим масивом byte[], який отримуємо з об'єкта String.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Awesome!
Completion rate improved to 2.63
Глибше у String
Свайпніть щоб показати меню
Як насправді працюють рядки в Java
Ви вже знаєте, що таке String і як з ним працювати. У цьому розділі розглядаються теоретичні аспекти того, що знаходиться всередині String.
Дослідимо внутрішнє представлення значень String у Java. Спочатку String реалізовувався як масив значень char, що було просто та інтуїтивно зрозуміло. Однак згодом відбулася зміна на масив значень byte. Розглянемо причини цієї зміни.
Змінна char у Java займає 2 байти пам'яті, тоді як змінна byte потребує лише 1 байт. Використовуючи значення byte, можна суттєво зменшити обсяг пам'яті, використовуючи лише чверть простору.
Але як String може містити різні символи, включаючи нечислові? Механізм подібний до змінної char. Використовується ASCII table, де числові дані зіставляються з певними символами, що дозволяє представляти широкий спектр символів у String.
Розглянемо ілюстрацію, яка показує значення String "Hello":
Комірки містять елементи типу byte, які беруться з ASCII table. У коді можна навіть переглянути точний масив byte, що зберігається у значенні змінної String. Це можна зробити за допомогою методу getBytes().
Main.java
12345678910111213141516package com.example; public class Main { public static void main(String[] args) { String hello = "Hello"; byte[] bytes = hello.getBytes(); printArray(bytes); } static void printArray(byte[] bytes) { for (byte element: bytes) { System.out.print(element + " "); } System.out.println(); } }
Можна побачити, що значення byte ідентичні тим, що показані на діаграмі вище. Додатково, якщо цікаво, можна звернутися до ASCII-таблиці та порівняти код кожного елемента з його відповідним значенням.
Можна маніпулювати цим масивом byte[], який отримуємо з об'єкта String.
Дякуємо за ваш відгук!