Method References (посилання на методи) з’явилися у Java 8. Вони дозволяють передавати методи (або конструктори) як аргументи, коли очікується функціональний інтерфейс. Це альтернатива лямбдам, у яких вся робота зводиться до виклику одного методу. Посилання на метод робить код компактнішим і легшим для читання, зберігаючи ту ж саму логіку виконання. Розглянемо приклад: У цьому прикладі: Типи […]
Розділ: Java Core
Нотатки про все, що стосується Java Core
Що таке функціональний інтерфейс у Java
Термін функціональний інтерфейс з’явився в Java 8 разом із підтримкою lambda виразів. Такий інтерфейс містить лише один абстрактний метод, що дозволяє використовувати його як цільовий тип для лямбда виразу. Водночас функціональний інтерфейс може містити додаткові методи з реалізацією – default та static. Розглянемо простий приклад функціонального інтерфейсу Java: Використання анотації @FunctionalInterface не є обов’язковим, однак […]
Обробка винятків у Java
Exception (виняток) – це об’єкт, який повідомляє про помилку або непередбачену ситуацію, що виникла під час виконання програми та порушила її нормальний перебіг. Що таке обробка винятків Exception handling (обробка винятків) – це механізм, який дозволяє вказати програмі, що робити якщо під час виконання виникла помилка або непередбачена ситуація. Наприклад, коли програма не може знайти […]
Overloading методів у Java: що це, і як використовувати
Overloading (перевантаження) у Java – це можливість оголошувати в одному класі кілька методів з однаковим ім’ям, але з різними параметрами (за типом, кількістю або порядком). Це приклад поліморфізму на етапі компіляції (compile-time polymorphism), оскільки саме компілятор вирішує яку версію методу викликати, залежно від аргументів переданих при виклику. Перевантаження методів покращує читабельність коду, дозволяє використовувати єдине […]
Checked та Unchecked Exceptions у Java
Exception (виняток) – це об’єкт, який сигналізує про помилкову або неочікувану ситуацію, що виникла під час виконання програми. Він порушує нормальний хід виконання коду та може бути оброблений спеціальними механізмами. У Java винятки поділяються на два основних типи: перевірені (checked) та неперевірені (unchecked). Checked Exceptions Це винятки які перевіряються під час компіляції, що змушує програміста […]
Java – ключове слово static
Ключове слово static у мові програмування Java визначає члени класу (наприклад поле або метод), які належать самому класу, а не конкретному екземпляру цього класу. З чого витікає: Ключове слово static можна використовувати зі змінними, методами, блоками коду та вкладеними класами. static змінні Статичні змінні у Java зберігають спільні значення для всіх об’єктів класу. Якщо статична […]
Відмінність класів String, StringBuffer та StringBuilder у Java
Класи String, StringBuffer та StringBuilder представляють реалізацією рядків у Java. При цьому вони мають відмінності у характеристиках, які можуть впливати на продуктивність, використання пам’яті та безпеку потоків. Клас String Об’єкти String у Java є незмінними (immutable), тобто їх вміст не може бути змінений після створення. Кожна модифікація яка змінює String (наприклад конкатенація), призводить до створення […]
Ключове слово volatile у Java
У Java ключове слово volatile використовується для оголошення змінних, значення яких може змінюватись кількома потоками. Застосування volatile гарантує видимість змін, тобто коли один потік змінює значення такої змінної, інші потоки одразу бачать оновлене значення. volatile з примітивними типами та об’єктами Як volatile впливає на читання і запис змінних Ключове слово volatile впливає на взаємодію потоків […]
Основи рядків у Java: клас String
Реалізація рядків у Java представлена трьома основними класами: String, StringBuffer та StringBuilder. У цьому записі буде розглянуто клас String. Зміст: Рядок – це об’єкт, котрий представляє послідовність символів. Для створення та маніпулювання рядками Java надає загальнодоступний final клас java.lang.String. Об’єкт класу String є immutable – після створення він не може бути змінений. Може скластись враження, […]
Java – класи обгортки примітивів (wrapper classes)
Класи обгортки в Java є частиною пакету java.lang. Вони надають можливість використовувати примітивні типи даних (int, char, тощо), в якості об’єктів. Іншими словами, обгортка – це спеціальний клас, об’єкт якого зберігає значення примітиву всередині себе. Це може знадобитись у випадках коли необхідні саме об’єкти, наприклад при роботі з колекціями Java (ArrayList, HashMap, тощо). Кожен примітивний […]