Java Learning
19K subscribers
1.61K photos
1 video
3 files
987 links
№ 5079899194

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

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

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

Реклама на бирже - https://telega.in/c/Java_per_month
Download Telegram
⚙️ Stream.generate()

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

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
⚙️ MethodHandles.privateLookupIn

Метод MethodHandles.privateLookupIn позволяет получить доступ к приватным методам, полям и конструкторам класса через MethodHandle. Это мощный и редкий инструмент для работы с закрытыми членами классов.

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
МТС приглашает всех, кто пишет на С++, Go, Python, JS, Java, C# и других языках, на True Tech Champ — всероссийский чемпионат по программированию. Соревнование будет проходить в двух треках.

Трек 1. Алгоритмический. Индивидуальный зачет [призовой фонд 2 750 000 рублей]


Реши задачи, которые помогут прокачаться в работе с алгоритмами и структурами данных. Похожие задания встречаются на собеседованиях в МТС и других крупных компаниях. До 240 лучших участников попадут в финал и сразятся в лайв-кодинге.

Трек 2. Программирование роботов. Командный формат [призовой фонд 7 500 000 рублей]

Проведи робота по виртуальному лабиринту, затем управляй им дистанционно на офлайн-полигоне, а в финале — пройди испытания на реальной площадке и выбей соперников с платформы.

🎁 Организаторы отправят командам финалистов по одному роботу Waveshare Cobra Flex для кастомизации. После соревнований они останутся у участников в качестве подарка.

📍 Зрелищный шоу-финал с ИИ-технологиями, кодерскими челленджами и выступлениями международных и российских спикеров пройдет 21 ноября в МТС Live Холл.

Стоит участвовать, чтобы:
— Освежить знания и прокачать новые навыки.
— Заявить о себе на всю страну, получить карьерный буст и шанс лично пообщаться с HR-специалистами МТС.

Регистрация участников до 20 октября на сайте.
Хотите собрать свой мини-Google? 🚀
🗓 22 октября, 20:00 приглашаем на открытый урок OTUS «Мини-поисковик своими руками». На этом вебинаре вы создадите поисковик с нуля — без готовых библиотек и магии. Только алгоритмы и код.

Разберём, как:
• объединить КМП и префиксное дерево;
• реализовать автодополнение и подсчёт вхождений;
• оптимизировать поиск под большие тексты;
• превратить всё это в маленький, но работающий офлайн-поисковик.

После вебинара вы сможете самостоятельно:
— строить индекс слов и быстро искать по нему;
— собирать статистику запросов;
— понять, как внутри устроены поисковики.

Открытый урок проходит в преддверие старта курса «Алгоритмы и структуры данных». Все участники получат скидку на обучение.

Присоединяйтесь 22 октября в 20:00:

https://otus.pw/r8Li/

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
🚫 Антипаттерн недели: Использование String вместо StringBuilder при конкатенации в цикле

В Java строки (String) неизменяемы. При каждой конкатенации через + создаётся новый объект, что приводит к избыточным затратам памяти и снижает производительность, особенно в циклах.

✔️ Используйте StringBuilder, который изменяем и работает быстрее при частых операциях с текстом.

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12
⚙️ Files.mismatch()

Метод Files.mismatch(), добавленный в Java 12, позволяет сравнить два файла и найти позицию первого несовпадающего байта. Если файлы идентичны, метод возвращает -1. Это полезно для проверки целостности данных или сравнения файлов.

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
⚙️ LockSupport.park()

Метод LockSupport.park() позволяет приостановить выполнение потока без использования synchronized или wait(). Это полезно для низкоуровневой синхронизации потоков.

Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
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
🔥 Современная оркестрация Kotlin-приложениями

Приглашаем на открытый урок.

🗓 22 октября в 19:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Kotlin Backend Developer. Professional».

Уже прошла эпоха монолита, когда целые компании занимались разработкой одного необъятного приложения. Сейчас любая информационная система насыщена различными сервисами, а микросервисами уже никого не удивишь.
Обязательным атрибутом собеседований стал вопрос про Saga, хореографию и оркестрацию.
И именно эту тему мы разберем на вебинаре в применении к Kotlin-разработке.

Что будет на вебинаре:
- Обсудим как традиционные оркестраторы типа Airflow или Camunda, так новых игроков.
- На практической части вебинара мы разработаем простое приложение, управляемое оркестратором.

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

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
⚙️ 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 в Kubernetes за 40 минут: как задеплоить приложение в Minikube

Приглашаем на открытый урок.

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

Minikube — личный Kubernetes для тестов. Научитесь деплоить Java-приложения — база для DevOps, CI/CD и продакшна.

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

✔️ Подготовка Java-приложения к деплою (JAR → Docker image).
✔️Установка Minikube и настройка локального кластера.
✔️Написание манифестов: Deployment, Service, ConfigMap.
✔️Запуск приложения и проверка работоспособности.

В результате вебинара вы:
✔️ Сможете самостоятельно задеплоить Java-приложение в Minikube, написать манифесты и лучше понять, как работает Kubernetes «под капотом».

Кому будет интересно:
Java-разработчикам, начинающим осваивать Kubernetes и DevOps-подходы, а также инженерам, выстраивающим локальные CI/CD практики.

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

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

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

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

Что такое 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
👍5
Что будет выведено при выполнении кода?

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


Java Learning 👩‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
🔥 Разбираемся с AOP в Spring

📅 29 октября в 20:00
Если ты работаешь со Spring и хочешь понять, как всё устроено под капотом — этот вебинар для тебя.

AOP (Aspect-Oriented Programming) — мощный инструмент, который помогает упростить код, вынести кросс-функциональные задачи (логирование, безопасность, валидацию) и лучше понять механику фреймворка.

На вебинаре ты узнаешь:
— зачем вообще нужен AOP в Spring;
— что такое аспект, pointcut, advice, join point и прокси;
— как быстро подключить AOP и написать свой первый аспект — например, для логирования действий.

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

Регистрируйся, если хочешь прокачать понимание Spring и писать более чистый и гибкий код: https://otus.pw/CHFz/

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

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

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