Чому рядки (Strings) незмінні Java?
Джерело: Dev.to Перш ніж зрозуміти, чому рядки (Strings) незмінні в Java, нам потрібно подумати, чому ми робимо щось незмінним?-
Перша причина незмінності – потокобезпека. Оскільки рядки поділяються між кількома потоками в пулі рядків, нам потрібно обмежити будь-який випадковий потік, щоб його змінити. Будь-яка зміна у рядку може вплинути на інші потоки, що звертаються до того ж рядка. Якщо потік хоче оновити значення рядка, необхідно створити інший рядок і поставити на нього посилання.
-
Зазвичай ми використовуємо String як ключ у Map . Якби рядки були зміненими, будь-хто міг би змінити значення рядків і ми втратабо б актуальний ключ.
Інтерфейс у Java та множинне спадкування
Джерело: Dev.to Давайте розберемося, що таке множинне спадкування. Множинне успадкування – це функція деяких об'єктно-орієнтованих мов програмування, у яких об'єкт чи клас можуть успадковувати функції більш ніж одного батьківського об'єкта чи батьківського класу.Інтерфейс
Інтерфейс 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