JUGLviv

Meta


Share on:


Core: String part 1

juglvivjuglviv

Одним з наслідків ресету стане цикл статей про різні аспекти використання JAVA.
В цих статтях я намагатимусь пояснити магію, яка відбувається з кодом.
І звичайно коментарі, зауваження, пропозиці – вітаються!

Отже: Магія String part 1

Як ви знаєте String в Java це об’єкт для маніпуляції із масивами символів. Але не все так просто.

Магія String Immutable.

Що це означає?  це означає:


(Hash code змінився)

Кожного разу, коли ви ‘змінюєте’ значення String – створюється новий об’єкт.
Тобто стрічка коду  a = a+”No.” не змінить значення поточного об’єкта, а створить новий об’єкт.
Ви запитаєте чому immutable? Причиною цьому є місце, де зберігаються стрінги String pool – це реалізація патерна Flyweight. Якщо б String не був би immutable, тоді б при зміні значення однієї із змінних, які вказують на об’єкт в пулі – всі інші також б змінювались, що є недоступним.

ПС .Потрібно бути обережним при конкатeнації стрінгів. Необережне поводження з ними може привести до java.lang.OutOfMemoryError.

Магія String. Порівння.

Порівняння String це мабуть улюбленне питання на всіх співбесідах і ось приклад того, що можна зустріти як запитання:

Тут треба розуміти декілька речей:

Знаючи ці речі – бідь-яка співбесіда пройде як по маслу(стосовно питання порівння String) 😉

Продовження буде… (Я сподіваюсь 🙂 )

ПС. Якщо ви помітили помилки чи бажаєте доповнити, пишіть – радо виправлю.

ПС. Важливі ваші відгуки про ініціативу написяння статей і чи стиль написання є доступним.

ВАЖЛИВО: Якщо ви маєте бажання поділитись з оточуючими цікавою інформацією – пишіть!
Наша адреса: bohdan.bandrivskyy@gmail.com чи на адресу блогу jug.lviv@gmail.com
Будь-яка допомога в написанні статті з нашої сторони гарантована.



Bitnami