JavaRush /Java блог /Random UA /Кава-брейк #105. Чому рядки (Strings) незмінні Java? Інте...

Кава-брейк #105. Чому рядки (Strings) незмінні Java? Інтерфейс у Java та множинне спадкування

Стаття з групи Random UA

Чому рядки (Strings) незмінні Java?

Джерело: Dev.to Перш ніж зрозуміти, чому рядки (Strings) незмінні в Java, нам потрібно подумати, чому ми робимо щось незмінним? Кава-брейк #105.  Чому рядки (Strings) незмінні Java?  Інтерфейс у Java та множинне успадкування - 1Незмінний (Immutable) означає, що одного разу створене ми змінити не можемо. Єдина причина, через яку ми можемо думати про те, щоб зробити щось незмінне, — це синхронізація при спільному використанні. Саме з цієї причини рядки незмінні. Java об'єкти String спільно використовуються і кешуються в String Pool. Це певне місце в купі, де рядки зберігаються і спільно використовуються кількома потоками, якщо вони мають однакове значення. Наприклад: у пулі рядків, якщо вже існує рядок зі значенням “test” і програма хоче створити інший рядковий об'єкт з тим самим значенням, тоді вона отримає те саме посилання замість створення нового рядкового об'єкта. Тепер ми знаємо, як рядки зберігаються у купі. Погляньмо, чому вони незмінні.
  1. Перша причина незмінності – потокобезпека. Оскільки рядки поділяються між кількома потоками в пулі рядків, нам потрібно обмежити будь-який випадковий потік, щоб його змінити. Будь-яка зміна у рядку може вплинути на інші потоки, що звертаються до того ж рядка. Якщо потік хоче оновити значення рядка, необхідно створити інший рядок і поставити на нього посилання.

  2. Зазвичай ми використовуємо String як ключ у Map . Якби рядки були зміненими, будь-хто міг би змінити значення рядків і ми втратабо б актуальний ключ.

Інтерфейс у Java та множинне спадкування

Джерело: Dev.to Давайте розберемося, що таке множинне спадкування. Множинне успадкування – це функція деяких об'єктно-орієнтованих мов програмування, у яких об'єкт чи клас можуть успадковувати функції більш ніж одного батьківського об'єкта чи батьківського класу. Кава-брейк #105.  Чому рядки (Strings) незмінні Java?  Інтерфейс у Java та множинне успадкування - 1Як показано на малюнку вище, у дочірньому класі з множинним успадкуванням може бути два або більше базових класу, але для цього нам потрібен інтерфейс.

Інтерфейс

Інтерфейс Java — це план класу. Він має статичні константи та абстрактні методи. Тобто, інтерфейс може містити лише абстрактні методи та змінні, у нього не може бути тіла методу. Його не можна створити так само, як абстрактний клас.

Отже, де ми оголошуємо тіло цих методів?

Тіло методу оголошується всередині класу, де метод потрібен відповідно до вимог програміста.

Як оголосити інтерфейс?

Інтерфейс можна оголосити з використанням ключового слова interface . Синтаксис:
interface interface_name {abstract methods}

Примітка

Для того, щоб використовувати заявлений інтерфейс у класі, ми маємо використовувати ключове слово implements .

Імплементація?

Спочатку ми створимо інтерфейс print , а всередині нього створимо абстрактний метод print() ;
interface printgib{
void print();
}
Тепер у нас є інтерфейс, готовий для використання класами, тому створимо класи abc і gk і реалізуємо в них інтерфейс.
public class abc implements printgib{
public void print(){                     //1st implementation of print
System.out.println("I love you 3000");
}
public static void main(String[] args){
abc obj = new abc();
gk obj1 = new gk();
obj.print();
obj1.print();
}
}

class gk implements printgib{
public void print(){                   //2nd implementation of print
System.out.println("I am Gk");
}
}
Як показано в наведеному вище коді, ми досягли множинного успадкування та реалізували інтерфейс. Тепер, щоб запустити код, збережіть файл та…
javac file_name.java
java abc

Результат:

Кава-брейк #105.  Чому рядки (Strings) незмінні Java?  Інтерфейс у Java та множинне успадкування - 2
Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ