Java Learning
18.8K subscribers
1.61K photos
1 video
3 files
986 links
№ 5079899194

Обучающий канал по Java

Ссылка для друга - https://t.iss.one/+ZEYYht6-46w5MDM6

По всем вопросам @mascarov_valentin

Реклама на бирже - https://telega.in/c/Java_per_month
Download Telegram
JarFile

JarFile — это класс в Java, который используется для чтения содержимого JAR-файла. JAR-файл (Java ARchive) — это формат архива, который используется для объединения нескольких файлов Java (.class), а также других ресурсов, таких как изображения, звуки и текстовые файлы, в один файл.

Создание объекта JarFile
Для создания объекта JarFile необходимо использовать его конструктор, который принимает путь к JAR-файлу в качестве параметра.

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
⚙️ MethodHandles.arrayElementVarHandle()

Метод MethodHandles.arrayElementVarHandle() создаёт VarHandle для работы с элементами массива, позволяя выполнять атомарные операции без блокировки.

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
⚙️ StackWalker.walk()

Метод StackWalker.walk() позволяет динамически получать информацию о текущем стеке вызовов, фильтровать его и анализировать. Это полезно для логирования, отладки и мониторинга исполнения кода.

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
⚙️ Thread.onSpinWait()

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

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
⚙️ java.util.Timer()

Метод java.util.Timer() позволяет создавать таймеры, которые выполняют определенные задачи через заданные интервалы времени. Это полезно для планирования и отложенного выполнения задач без блокировки основного потока.

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
Вопрос на собеседовании

Что такое ThreadLocal в Java, и зачем он нужен?

Ответ ⬇️
ThreadLocal — это механизм, который позволяет каждому потоку хранить своё собственное значение переменной, изолированное от других потоков. Это полезно для управления состоянием в многопоточных приложениях, например, при хранении информации о текущем пользователе в веб-приложениях.

Пример использования ⚙️
public class ThreadLocalExample {
private static final ThreadLocal<Integer> threadLocal = ThreadLocal.withInitial(() -> 0);

public static void main(String[] args) {
Runnable task = () -> {
threadLocal.set((int) (Math.random() * 100));
System.out.println(Thread.currentThread().getName() + ": " + threadLocal.get());
};

new Thread(task).start();
new Thread(task).start();
}
}


Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Что будет выведено при выполнении кода?

Пояснение
⬇️
Метод split(",") разделяет строку "apple,banana,orange" по запятой, создавая массив ["apple", "banana", "orange"]. Длина массива — 3, а элемент fruits[1] — "banana". Код выполняется без ошибок.


Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
⚙️ MethodHandles.dropArguments()

MethodHandles.dropArguments() создаёт MethodHandle, который игнорирует определённые аргументы перед вызовом целевой функции. Это полезно для адаптации методов с разными сигнатурами.

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
🚫 Антипаттерн недели: Использование null вместо Optional

В Java часто используют null для обозначения отсутствия значения, но это может привести к NullPointerException и усложнить код.

✔️ Используйте Optional, чтобы избежать null и сделать код безопаснее.

🗣 Почему это важно?

🟢Optional явно показывает, что значение может отсутствовать.
🟢Избегает null-проверок и улучшает читаемость кода.
🟢Позволяет удобно работать с цепочками вызовов (map(), orElse()).

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
⚙️ Locale.getDefault()

Locale.getDefault() позволяет получить текущую локаль системы, что полезно для работы с форматированием дат, чисел и текста.

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
⚙️ Thread.getState()

Thread.getState() позволяет получить текущее состояние потока. Это полезно при отладке многопоточных программ, чтобы отслеживать, выполняется ли поток, заблокирован или завершён.

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
⚙️ ProcessHandle.isAlive()

ProcessHandle.isAlive() позволяет проверить, запущен ли процесс в данный момент. Это полезно при мониторинге фоновых процессов и управлении системными ресурсами.

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
⚙️ JLine TerminalBuilder.build()

TerminalBuilder.build() из библиотеки JLine позволяет создавать интерактивные терминалы с поддержкой ANSI-цветов, автодополнения и управления вводом. Это полезно для создания CLI-приложений с удобным интерфейсом.

🔗 Документация

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
OpenAPI + Spring: ускоряем разработку и повышаем качество API

Разработка REST API — рутинная? Только если без OpenAPI. Узнайте, как избавиться от ручной синхронизации между фронтом, бэком и тестами.

На вебинаре разберём:
• зачем нужна OpenAPI-спецификация и как с ней жить удобно;
• генерацию кода и документации;
• интеграцию OpenAPI в Spring-приложение;
• советы по масштабируемости и поддержке API.

После вебинара вы сможете:
— быстро внедрить OpenAPI в свой проект;
— сократить ошибки на стыке команд;
— улучшить поддержку и документирование микросервисов.

12 ноября в 20:00 открытый урок проходит в преддверие старта курса «Разработчик на Spring Framework». Все участники получат скидку на обучение.

👉 Регистрация бесплатная, но количество мест ограничено — успей занять своё место:
https://otus.pw/7PBS/

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru
⚙️ AnsiConsole.out.println()

AnsiConsole.out.println() из библиотеки Jansi позволяет выводить цветной текст в консоль, упрощая создание стилизованных CLI-приложений с поддержкой ANSI-escape последовательностей.

🔗 Документация

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
🔍Тестовое собеседование с ТехЛидом из МТС уже завтра

5 ноября(уже завтра!) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Java-разработчика.

Как это будет:
📂 Илья Аров, старший разработчик в МТС, будет задавать реальные вопросы и задачи разработчику-добровольцу
📂 Илья будет комментировать каждый ответ респондента, чтобы дать понять чего от вас ожидает собеседующий на интервью
📂 В конце можно будет задать любой вопрос Илье

Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Java-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.

Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_sh_bot

Реклама.
О рекламодателе.
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ Lombok @SuperBuilder

@SuperBuilder из библиотеки Lombok упрощает создание объектов с помощью паттерна "Builder" и поддерживает наследование, избавляя от лишнего кода при создании сложных иерархий классов.

🔗 Документация

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
🎥 Открытый урок «Наблюдаемость микросервиса: метрики + Prometheus/Grafana».

🗓 11 ноября в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса
«Java Developer. Advanced».

Что будет на вебинаре:

✔️ Полезные метрики для микросервисов: технические и продуктовые; типовые анти-метрики.
✔️Интеграция Spring Actuator/Micrometer и экспорт /actuator/prometheus.
✔️ Сбор в Prometheus: таргеты, ретенция, базовые правила алертинга.
✔️ Дашборды «для разработчика» в Grafana: структура панелей, аннотации, drill-down.

В результате вебинара вы:
- Сможете выделять действительно важные метрики, подключить Actuator/Micrometer, настроить сбор в Prometheus и собрать базовый дашборд в Grafana.

Кому будет интересно:
Java backend-разработчикам, DevOps/SRE и инженерам, отвечающим за эксплуатацию микросервисов.

🔗 Ссылка на регистрацию: https://otus.pw/teUE/

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Please open Telegram to view this post
VIEW IN TELEGRAM
⚙️ Optional.orElseThrow()

Optional.orElseThrow() — это метод, который выбрасывает исключение, если Optional пуст. В отличие от orElse(), он не требует значения по умолчанию, а вместо orElseGet() не создаёт ненужные объекты.

🔗 Документация

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍6