Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Глибше у String | Рядки: Розширений Рівень
Java Extended

bookГлибше у String

Як насправді працює String?

Ви вже знаєте, що таке String і як з ним працювати. У цьому розділі розглядаються теоретичні аспекти внутрішньої будови String.

Дослідимо, як саме представлені значення String у Java. Спочатку String реалізовувався як масив значень типу char, що було просто та інтуїтивно. Однак згодом реалізація перейшла на масив значень типу byte. З'ясуємо причини цієї зміни.

Змінна типу char у Java займає 2 байти пам'яті, тоді як змінна типу byte потребує лише 1 байт. Використовуючи значення byte, можна суттєво зменшити обсяг пам'яті, використовуючи лише чверть простору.

Як же String зберігає різні символи, включаючи нечислові? Механізм подібний до змінної типу char. Використовується таблиця ASCII, де числові дані зіставляються з певними символами, що дозволяє представляти широкий спектр символів у String.

Розглянемо ілюстрацію, яка показує значення String "Hello":

Комірки містять елементи типу byte, які беруться з таблиці ASCII. У коді можна навіть переглянути точний масив byte, що зберігається у значенні змінної типу String. Це можна зробити за допомогою методу getBytes().

Main.java

Main.java

copy
12345678910111213141516
package 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.

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 3. Розділ 1

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

bookГлибше у String

Як насправді працює String?

Ви вже знаєте, що таке String і як з ним працювати. У цьому розділі розглядаються теоретичні аспекти внутрішньої будови String.

Дослідимо, як саме представлені значення String у Java. Спочатку String реалізовувався як масив значень типу char, що було просто та інтуїтивно. Однак згодом реалізація перейшла на масив значень типу byte. З'ясуємо причини цієї зміни.

Змінна типу char у Java займає 2 байти пам'яті, тоді як змінна типу byte потребує лише 1 байт. Використовуючи значення byte, можна суттєво зменшити обсяг пам'яті, використовуючи лише чверть простору.

Як же String зберігає різні символи, включаючи нечислові? Механізм подібний до змінної типу char. Використовується таблиця ASCII, де числові дані зіставляються з певними символами, що дозволяє представляти широкий спектр символів у String.

Розглянемо ілюстрацію, яка показує значення String "Hello":

Комірки містять елементи типу byte, які беруться з таблиці ASCII. У коді можна навіть переглянути точний масив byte, що зберігається у значенні змінної типу String. Це можна зробити за допомогою методу getBytes().

Main.java

Main.java

copy
12345678910111213141516
package 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.

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 3. Розділ 1
some-alt