Code Ukraine // Програмування
17.8K subscribers
971 photos
306 videos
3 files
1.38K links
Корисні шпаргалки, лекції та матеріали для програмістів.


@itua_chat - наш чат
@ad_duck - зв’язок / @ukr_duck
Download Telegram
Stream API

Потужний інструмент для обробки даних у Java. Дозволяє виконувати операції над послідовностями елементів декларативним способом, а не за допомогою імперативних циклів.

Насамперед з колекції потрібно отримати .stream(), а потім викликати потрібну функцію: filter(), reduce() та інші.

#java

Code Ukraine
Події та слухачі

У Java події та слухачі використовуються для обробки подій, які виникають у програмі. Події можуть бути пов'язані з діями користувача, такими як клік миші, натискання клавіші або зміна тексту в полі введення, або з іншими діями, такими як завершення роботи потоку або отримання даних з мережі.

Слухачі (Listeners) у Java - це інтерфейси, які дозволяють реєструвати обробники подій. Коли відбувається подія, відповідний слухач викликає метод обробки події, який реалізується класом, що зареєстрував слухач.

#java

Code Ukraine
Оператор return

Оператор return використовується для виконання явного повернення з методу. Якщо метод повертає значення void, то оператор return не є необхідним. Його можна використовувати при достроковому виході з методу.

Якщо ж в оголошенні методу зазначено, що він повертає якесь значення, то оператор return необхідний. Після нього вказується значення, що повертається з методу.

#java

Code Ukraine
Порожня колекція замість Null

Якщо ваша програма може повернути колекцію, яка не містить жодних значень, переконайтеся, що повертається порожня колекція, а не Null. Це заощадить вам час на різні перевірки і позбавить від багатьох помилок.

#java

Code Ukraine
Сеттери

У Java сеттери (setters) є методами класу, які використовуються для встановлення значень приватних змінних (полів) класу. Вони забезпечують механізм інкапсуляції даних, даючи змогу контролювати доступ до полів класу і забезпечувати безпеку даних.

#java

Code Ukraine
Порожня колекція замість Null

Якщо ваша програма може повернути колекцію, яка не містить жодних значень, переконайтеся, що повертається порожня колекція, а не Null. Це заощадить вам час на різні перевірки і позбавить від багатьох помилок.

#java

Code Ukraine
Створення модуля

У Java модулі являють собою логічні групи пакетів, які можуть бути використані для організації програми. Створення модуля починається зі створення файлу module-info.java в кореневому каталозі модуля. У цьому файлі визначається ім'я модуля, його залежності та експортовані пакети.

Після створення модуля його можна використовувати в інших додатках, вказавши його ім'я в опції командного рядка --module.

Створення модулів дає змогу краще організувати додатки та керувати їхніми залежностями, що може спростити розробку та обслуговування коду.

#java

Code Ukraine
Бінарний пошук у масивах

Припустимо, ми хочемо вставити новий елемент у відсортовану таблицю. Arrays.binarySearch() повертає індекс ключа пошуку, якщо він міститься в таблиці.

В іншому разі вона повертає точку вставки, яку ми можемо використовувати для підрахунку індексу для нового ключа: -(insertion point)-1.

Метод binarySearch є найпростішим і найефективнішим методом пошуку елемента у відсортованому масиві в Java.

#java

Code Ukraine
🚀 JIT-компіляція: як інтерпретовані мови можуть бути швидкими

Зазвичай інтерпретовані мови, як Python або JavaScript, вважають повільнішими за компільовані (C, Rust). Але завдяки Just-In-Time (JIT) компіляції вони можуть значно прискорюватися. Як це працює? Розбираємося! 🔍

Що таке JIT-компіляція?
JIT-компіляція – це гібридний підхід між інтерпретацією та традиційною компіляцією.

🔹 Звичайна інтерпретація – код виконується рядок за рядком, що може бути повільним.
🔹 Звичайна компіляція – код заздалегідь перекладається у машинний код, що дає високу швидкість.
🔹 JIT-компіляція – код спочатку виконується як інтерпретований, але гарячі (часто використовувані) фрагменти перекладаються у машинний код під час роботи програми.

Результат? Висока швидкість виконання без втрати гнучкості!

⚙️ Як працює JIT?
1️⃣ Інтерпретатор запускає код і відстежує, які частини виконуються найчастіше.
2️⃣ Гарячий код передається JIT-компілятору, який перекладає його у машинний код.
3️⃣ Збережений машинний код використовується замість повторної інтерпретації.

🔁 Це дозволяє прискорювати роботу програм під час виконання!

Де використовується JIT?
Java (JVM HotSpot) – один із найвідоміших прикладів JIT, що дозволяє Java-додаткам бути швидкими.
JavaScript (V8, SpiderMonkey, Chakra) – браузери використовують JIT для пришвидшення JS-коду.
Python (PyPy) – альтернативний інтерпретатор Python із вбудованим JIT.
.NET (CLR, CoreCLR) – JIT-компіляція використовується для C# та інших мов платформи .NET.

Чи є недоліки?
🔹 Початкові затримки – JIT-компілятору потрібен час на аналіз та компіляцію.
🔹 Більше споживання пам’яті – збережений машинний код займає додатковий простір.
🔹 Складність реалізації – вбудовування JIT у мову вимагає серйозних оптимізацій.

Але виграш у швидкості для довготривалих процесів перекриває ці мінуси!

Висновок
JIT-компіляція – це магія, що дозволяє інтерпретованим мовам бути швидкими. Завдяки адаптивному підходу вони можуть спочатку бути гнучкими, а потім – продуктивними!

📌 Що думаєш про JIT? Використовував у своїх проєктах? Пиши в коментарях! 💬

#програмування #JIT #компіляція #JavaScript #Java #Python

Code Ukraine
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Вивчаємо Java, створюючи додатки

Безкоштовний курс від Codecademy, який навчить вас основам Java, включно з об'єктно-орієнтованим програмуванням і створенням простих додатків.

#java #курс

Code Ukraine
Please open Telegram to view this post
VIEW IN TELEGRAM