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

bookГлибше у 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

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

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

Awesome!

Completion rate improved to 2.63

bookГлибше у 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

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