Java Portal | Программирование
12.1K subscribers
949 photos
69 videos
32 files
754 links
Присоединяйтесь к нашему каналу и погрузитесь в мир для Java-разработчика

Связь: @devmangx

РКН: https://clck.ru/3H4WUg
加入频道
HashMap под микроскопом

📖 Читать: ссылка

👉 Java Portal | #cтатья
Please open Telegram to view this post
VIEW IN TELEGRAM
8😁4🔥3
Многопоточность в Java

В Java многопоточность реализована через класс Thread и интерфейс Runnable. Вот основные моменты, которые могут быть полезны при работе с многопоточностью:

🟣1. Создание и запуск потока
Поток может быть создан двумя способами:
Наследование от класса Thread:

class MyThread extends Thread {
public void run() {
// Код, выполняемый в потоке
}
}
MyThread t = new MyThread();
t.start();

Реализация интерфейса Runnable:

class MyRunnable implements Runnable {
public void run() {
// Код, выполняемый в потоке
}
}
Thread t = new Thread(new MyRunnable());
t.start();


🟣2. Основные методы класса Thread
- start() — запуск потока.
- sleep(long millis) — приостановка потока на определенное время.
- join() — ожидание завершения потока.
- interrupt() — прерывание потока.
- isAlive() — проверка, работает ли поток.

🟣3. Синхронизация
- Чтобы избежать проблем с конкурентным доступом к данным, используется синхронизация:

synchronized (this) {
// Критическая секция
}

Это гарантирует, что только один поток может выполнить код внутри синхронизированного блока.

🟣4. Пул потоков
- Для управления большим количеством потоков используется пул потоков, который управляется через ExecutorService. Пример:

ExecutorService executor = Executors.newFixedThreadPool(10);
executor.submit(() -> {
// Задача для потока
});
executor.shutdown();


🟣5. Состояния потока
Потоки могут находиться в разных состояниях:
- NEW: Поток создан, но не запущен.
- RUNNABLE: Поток готов к выполнению.
- WAITING: Поток ожидает другого потока.
- TIMED_WAITING: Поток ожидает в течение определенного времени.
- TERMINATED: Поток завершен.

🟣6. Проблемы многопоточности
- Состояние гонки (Race condition) — ситуация, когда несколько потоков одновременно пытаются изменить данные, что может привести к некорректным результатам.
- Блокировки — проблемы с мертвыми блокировками (deadlocks), когда потоки навсегда блокируются, ожидая друг друга.

🟣7. Современные подходы и классы
- ForkJoinPool — используется для параллельного выполнения задач с разделением на подзадачи.
- CountDownLatch, CyclicBarrier, Semaphore — различные утилиты для синхронизации между потоками.

🟣8. Параллельное выполнение коллекций
Коллекции в Java также могут работать с потоками через parallelStream():

List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
list.parallelStream().forEach(System.out::println);


Многопоточность — мощный инструмент для улучшения производительности приложений, но требует внимательности при реализации, чтобы избежать ошибок, таких как мертвые блокировки или некорректный доступ к данным.

👉 Java Portal | дать буст
Please open Telegram to view this post
VIEW IN TELEGRAM
18👍11🔥3🏆1
Media is too big
VIEW IN TELEGRAM
Хеш-таблица — Самая Популярная Структура Данных

Разбираем как работает HashSet - структура данных, которая позволяет проверять в ней наличие любого элемента за О(1) времени.

Затем модифицируем ее так, чтобы получить хеш-таблицу, то есть структуру данных, хранящую пары ключ-значение.

📲 Cмотреть источник: тут

👉 Java Portal | #видео
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥2🌚1
This media is not supported in your browser
VIEW IN TELEGRAM
IntelliJ IDEA поддерживает JSONPath. 👩‍💻

Вы можете выполнять оценку выражений JSONPath, а также использовать Language Injection для получения форматирования кода и автодополнения внутри строки JSONPath.

👉 Java Portal | дать буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍93🔥3
Как я пишу open source игру на Java

📖 Читать: ссылка

👉 Java Portal | #cтатья
Please open Telegram to view this post
VIEW IN TELEGRAM
7🔥5👍4
Эти шпаргалки по Java нужно сохранить

👉 Java Portal | дать буст
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🤣18🔥10🤔5👍31
Media is too big
VIEW IN TELEGRAM
Тестирование на JAVA (JUNIT, MOCKITO)

Видео объясняет, как писать тесты для Java-программ с использованием JUnit для тестирования и Mockito для мокирования объектов.

📲 Cмотреть источник: тут

👉 Java Portal | #видео
Please open Telegram to view this post
VIEW IN TELEGRAM
👍142🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
Полезный инструмент для работы с JSON

JSON-файлы с высокой вложенностью часто сложно прочитать.

JsonCrack создает графические диаграммы из JSON-файлов и делает их легко читаемыми.
Кроме того, созданные диаграммы можно скачать в виде изображений.

Также поддерживает YAML и XML форматы.

Знал о таком?) 🌠

Ссылка: тык

👉 Java Portal | дать буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥4
Стратегии извлечения

📖 Читать: ссылка

👉 Java Portal | #cтатья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥3
image_2025-01-25_13-02-48.png
118.9 KB
Шпаргалка посвящена концепциям объектно-ориентированного программирования (ООП) в языке Java.

Она охватывает четыре основные концепции:

🍩Наследование (Inheritance) - использование ключевого слова extends для наследования свойств от родительского класса и расширения функционала дочерним классом.
🍩Абстракция (Abstraction) - создание абстрактных классов и интерфейсов, где определяются только идеи, а реализация предоставляется в дочерних классах.
🍩Полиморфизм (Polymorphism) - способность объектов принимать разные формы, например, через перегрузку методов или переопределение.
🍩Инкапсуляция (Encapsulation) - скрытие внутренней реализации класса и доступ к данным через публичные методы (геттеры и сеттеры).

Каждая концепция сопровождается примерами кода. 😨

👉 Java Portal | #ресурсы
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12👍73😁1
Media is too big
VIEW IN TELEGRAM
Простой Telegram-бот на Java и Spring Boot

В данном видеоуроке я показываю как можно разработать свой собственный Telegram-бот на Java с использованием Spring Boot. После просмотра данного видео, вы сможете создать свой собственный Telegram-бот, но уже с более сложным функционалом.

📲 Cмотреть источник: тут

👉 Java Portal | #видео
Please open Telegram to view this post
VIEW IN TELEGRAM
12🔥4👍2
dac10c60ec5d2fe6bd3d3f8736cf0ce0.pdf
2.4 MB
На схеме показано, как отлаживать проблемы в Kubernetes:

🍩 Проверяешь Pods (запускаются ли они, готовы ли).
🍩 Ищешь ошибки (CrashLoopBackOff, проблемы с образом, пробами и т.д.).
🍩 Проверяешь Service и Ingress (доступны ли эндпоинты, настроены ли порты).
🍩 Пошагово исправляешь проблемы командой kubectl.

Цель — сделать приложение доступным.

👉 Java Portal | дать буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥2
Топ 26 тем для интервью по Java в 2025 году

📖 Читать: ссылка

👉 Java Portal | #cтатья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥2
Методы списка в Java кратко.

add() – добавляет элемент в список.
get(index) – возвращает элемент по индексу.
indexOf(element) – находит индекс элемента.
remove(element) – удаляет элемент из списка.
clear() – очищает список.
size() – возвращает размер списка.
isEmpty() – проверяет, пуст ли список.
contains(element) – проверяет, есть ли элемент в списке.
reverse() – переворачивает порядок элементов

👉 Java Portal | дать буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍26😁18🔥62