Java Portal | Программирование
11.5K subscribers
805 photos
60 videos
21 files
601 links
Присоединяйтесь к нашему каналу и погрузитесь в мир для Java-разработчика

Связь: @devmangx

РКН: https://clck.ru/3H4WUg
加入频道
Основные разрешения файлов в Linux для начинающих

🟣Тип файла
- обычный файл (regular file)
b блочное устройство (block device)
c символьное устройство (character device)
d директория (directory)
l символическая ссылка (symbolic link)
p именованный канал (named pipe)
s сокет (socket)

🟣Разрешения
Для владельца (Owner/User permissions)
r читать (read)
w записывать (write)
x выполнять (execute)

🟣Для группы (Group permissions)
r читать (read)
w записывать (write)
x выполнять (execute)

🟣Для других пользователей (Others permissions)
r читать (read)
w записывать (write)
x выполнять (execute)

👉 Java Portal | дать буст
Please open Telegram to view this post
VIEW IN TELEGRAM
HashMap под микроскопом

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

👉 Java Portal | #cтатья
Please open Telegram to view this post
VIEW IN TELEGRAM
Многопоточность в 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
Media is too big
VIEW IN TELEGRAM
Хеш-таблица — Самая Популярная Структура Данных

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

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

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

👉 Java Portal | #видео
Please open Telegram to view this post
VIEW IN TELEGRAM
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
Как я пишу open source игру на Java

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

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

👉 Java Portal | дать буст
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
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
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
Стратегии извлечения

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

👉 Java Portal | #cтатья
Please open Telegram to view this post
VIEW IN TELEGRAM
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
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
dac10c60ec5d2fe6bd3d3f8736cf0ce0.pdf
2.4 MB
На схеме показано, как отлаживать проблемы в Kubernetes:

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

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

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

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

👉 Java Portal | #cтатья
Please open Telegram to view this post
VIEW IN TELEGRAM