java_per_month | Unsorted

Telegram-канал java_per_month - Java Learning

13937

Обучающий канал по Java Ссылка для друга - https://t.me/+ZEYYht6-46w5MDM6 По всем вопросам @valentin_mascarov Реклама на бирже - https://telega.in/c/Java_per_month

Subscribe to a channel

Java Learning

❌ Антипаттерн недели: Забытая блокировка в многопоточном коде

Если использовать блокировки (synchronized) и забыть их освободить в случае исключения, можно легко привести к deadlock (взаимоблокировке).

Если во время выполнения блока synchronized возникает исключение, блокировка остаётся захваченной, что может заблокировать другие потоки навсегда.

✔️ Как исправить:

Используйте try-finally для гарантированного освобождения блокировки:

public class FixedExample {
private final Object lock = new Object();

public void performTask() {
synchronized (lock) {
try {
System.out.println("Задача выполняется...");
if (true) {
throw new RuntimeException("Ошибка!");
}
System.out.println("Задача завершена.");
} finally {
System.out.println("Блокировка освобождена.");
}
}
}

public static void main(String[] args) {
FixedExample example = new FixedExample();
example.performTask();
}
}


Java Learning 👩‍💻

Читать полностью…

Java Learning

⚙️ CompletableFuture.supplyAsync()

В Java метод CompletableFuture.supplyAsync() позволяет выполнять асинхронные задачи в фоновом потоке, возвращая результат. Это удобно для выполнения длительных операций без блокировки основного потока.

Java Learning 👩‍💻

Читать полностью…

Java Learning

⚙️ Map.replace()

Метод Map.replace() позволяет заменить значение, связанное с определённым ключом, если этот ключ уже существует в словаре. Это полезно для безопасного обновления данных.

Java Learning 👩‍💻

Читать полностью…

Java Learning

⚙️ Collectors.toSet()

В Java метод Collectors.toSet() из Stream API позволяет собрать элементы потока в Set, автоматически убирая дубликаты.

Java Learning 👩‍💻

Читать полностью…

Java Learning

Блиц-тестирование на грейд в Java

Менторы ШОРТКАТ собрали полезный небольшой тест, который поможет тебе проверить знания.

Конечно, это не определит грейд точно, но даст понять, какие темы западают. За прохождение ещё и дадут скидку на менторство.

Переходи в бот, чтобы пройти тест: @shortcut_sh_bot

Реклама. ООО "ШОРТКАТ", ИНН: 9731139396, erid: 2VtzqxDw1dB

Читать полностью…

Java Learning

✅️ GitHub теперь в Telegram!

Подписывайтесь: @GitHub

Читать полностью…

Java Learning

😁

Java Learning 👩‍💻

Читать полностью…

Java Learning

⚙️ StringBuilder.append()

Метод append() класса StringBuilder позволяет эффективно добавлять строки к уже существующему объекту. В отличие от конкатенации строк с использованием оператора +, StringBuilder позволяет избежать создания новых объектов строк в процессе добавления.

Java Learning 👩‍💻

Читать полностью…

Java Learning

🎄👩‍💻 Хотите создать свой первый графический проект на Java?
Приглашаем на бесплатный вебинар!

🗓 18 декабря в 20:00 МСК
🆓 Бесплатно. Урок в рамках старта курса «Java-разработчик» от Otus.

На занятии мы с нуля создадим интерактивную новогоднюю открытку с помощью Java и фреймворка LibGDX.
Вы сможете предложить свои идеи, и мы реализуем их в реальном времени — вы увидите, как рождается код.

🦾 Откройте для себя мир графической разработки! Получите практические навыки, которые станут основой для создания игр, приложений и других интерактивных проектов.

Спикер Александр Фисунов — Senior Kotlin Developer в SSP Software на проекте ВТБ, опытный Java-разработчик и кандидат технических наук.

🔗 Ссылка на регистрацию: https://clck.ru/3F9ejg

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

Читать полностью…

Java Learning

IT-компания ASTON запускает бесплатное онлайн-обучение "Java-разработчик"! 🎄
🌟 Лучшие участники получат приглашение на стажировку с трудоустройством в ASTON.
🤩 На этапе Лаборатории стипендия до 23 000 RUB, первая зарплата — от 70 000 RUB.
📚 Обучение в 3 ступени:
📌 I: онлайн-курс (1 месяц);
📌 II: онлайн-интенсив (2 месяца);
📌 III: Лаборатория (3–4 месяца) с трудоустройством.
🗓 Старт I ступени: 23 декабря 2024 
⏳ Длительность: 1 месяц, 2 раза в неделю, вечерние занятия (1–1,5 часа).🌍 Где набираем: Россия (до GMT+7).📋 Требования: базовые знания Java, законченное высшее или профильное среднее образование.
🚀 Расти в IT вместе с ASTON.
📥 Регистрация

#реклама
О рекламодателе

Читать полностью…

Java Learning

Как избежать God Object в Java: несколько способов

Смотреть статью

Java Learning 👩‍💻

Читать полностью…

Java Learning

#вопросы_с_собеседований
Что будет, если в Map положить два значения с одинаковым ключом?

Если в Map положить два значения с одинаковым ключом, то произойдет следующее:

— При добавлении второго значения с уже существующим ключом, первое значение, связанное с этим ключом, будет перезаписано.

— Map может содержать только уникальные ключи. При попытке добавить дублирующийся ключ, старое связанное значение будет заменено новым.

— Конкретная реализация Map (например, HashMap) может бросить исключение, если попытаться добавить дублирующийся ключ.

Таким образом, поведение в такой ситуации зависит от конкретной реализации интерфейса Map, но в целом дублирующиеся ключи в Map запрещены.


Java Learning 👩‍💻

Читать полностью…

Java Learning

⚙️ Map.merge()

В Java метод Map.merge() объединяет значение для указанного ключа с новым значением с помощью заданной функции. Это удобно для обновления данных в словаре на основе существующих значений.

Java Learning 👩‍💻

Читать полностью…

Java Learning

❓ Вопрос на собеседовании

Что такое ReentrantLock в Java, какие преимущества он имеет перед ключевым словом synchronized, и как его правильно использовать?

Ответ ⬇️
ReentrantLock — это класс из пакета java.util.concurrent.locks, предоставляющий более гибкий механизм блокировки, чем synchronized. Он поддерживает методы для явного управления блокировками, такие как tryLock() (попытка захвата без ожидания) и lockInterruptibly() (захват с возможностью прерывания). В отличие от synchronized, он позволяет справляться с блокировками вручную и поддерживает более точное управление потоками. Однако неправильное использование может привести к deadlock.

Пример использования ⚙️

import java.util.concurrent.locks.ReentrantLock;

public class Main {
private static final ReentrantLock lock = new ReentrantLock();

public static void main(String[] args) {
Thread thread1 = new Thread(Main::criticalSection, "Thread-1");
Thread thread2 = new Thread(Main::criticalSection, "Thread-2");

thread1.start();
thread2.start();
}

private static void criticalSection() {
if (lock.tryLock()) { // Пытаемся захватить блокировку
try {
System.out.println(Thread.currentThread().getName() + " выполняет критическую секцию");
Thread.sleep(1000); // Эмуляция работы
} catch (InterruptedException e) {
Thread.currentThread().interrupt();
} finally {
lock.unlock(); // Обязательно освобождаем блокировку
System.out.println(Thread.currentThread().getName() + " завершил работу");
}
} else {
System.out.println(Thread.currentThread().getName() + " не смог захватить блокировку");
}
}
}


Java Learning 👩‍💻

Читать полностью…

Java Learning

⚙️ Arrays.fill()

В Java метод Arrays.fill() позволяет заполнить массив одним значением или диапазон массива заданным значением. Это удобный способ инициализировать или обновлять данные массива.

Java Learning 👩‍💻

Читать полностью…

Java Learning

🤔 Как это работает? — Java: Цикл for-each

В Java цикл for-each (или enhanced for loop) упрощает итерацию по коллекциям и массивам. Давайте посмотрим, как он работает.

➡️ Как это работает:

• numbers — это массив целых чисел.
• В строке for (int number : numbers) переменная number последовательно принимает значения из массива numbers.
• На каждой итерации выводится текущее значение number.

Развернутый аналог:

for (int i = 0; i < numbers.length; i++) {
System.out.println(numbers[i]);
}

1
2
3
4
5


Java Learning 👩‍💻

Читать полностью…

Java Learning

Стань JAVA-разработчиком с EdMe: 6-8 месяцев, гарантия трудоустройства, оплата обучения после выхода на работу

Образовательный проект EdMe открывает набор на курс по Java-разработке. Программа подойдет для начинающих с нуля и для тех, кто стремится улучшить свои навыки. Обучение построено на менторстве и направлено на комплексную подготовку к трудоустройству. За 6-8 месяцев вы сможете достичь уровня middle-разработчика, для этого нужно уделять обучению от 20 часов в неделю.

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

🚩Плюсы курса:

➕Гарантированное трудоустройство с зарплатой от 140 000 рублей.
➕Оплата после выхода на работу: вы платите только 20% от зарплаты в течение 18 месяцев.
➕Карьерная поддержка даже после окончания курса.
➕Если по каким-то причинам вы не сможете завершить обучение, это можно сделать без оплаты.

Во время обучения вы будете использовать Jira, Confluence, Bitbucket, GitLab – те самые системы, с которыми вы столкнетесь на реальных проектах.

🚩Программа курса включает:
▪️ Основы Java: Java Core, List, JDBC, Hibernate, Spring (Core, MVC, Security), Spring Boot, Git.
▪️ Проект.
▪️ Подготовка к собеседованиям (составление резюме, прохождение тестовых собеседований).
▪️ Прохождение реальных собеседований.

Узнать подробности и записаться на курс «JAVA-разработчик» можно на EdMe.pro

Отбор включает несложное тестовое задание, которое под силу выполнить человеку без опыта, и собеседование.

Реклама. ООО "БАКСЭТ", ИНН 4345115602. Erid 2Vtzqv8YoSy

Читать полностью…

Java Learning

⁉️ Хотите, чтобы ваши Java-приложения выдерживали любые нагрузки и были стабильны в любой ситуации?
Научитесь этому на бесплатном открытом уроке с использованием Resilience4j!

В мире высоких нагрузок и распределенных систем стабильность — это ключ к успеху.

🗓 На уроке 19 декабря в 20:00 мск мы разберем фреймворк Resilience4j и покажем, как повысить отказоустойчивость ваших приложений.

🦾 Уверенные навыки работы с Resilience4j сделают вас востребованным специалистом, который способен справляться с реальными вызовами. Добавьте этот мощный инструмент в свой профессиональный стек.

Спикер Сергей Петрелевич — опытный разработчик на Java и Kotlin.

🔗 Регистрируйтесь на вебинар: https://clck.ru/3FCrT8

Все участники вебинара получат скидку на курс «Java Developer. Professional».

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Читать полностью…

Java Learning

Apache POI

Apache POI – это библиотека с открытым исходным кодом для работы с форматами файлов Microsoft Office в Java.

Она позволяет читать, создавать и редактировать файлы Excel, Word, PowerPoint и другие.

Java Learning 👩‍💻

Читать полностью…

Java Learning

❓ Вопрос на собеседовании

Что такое ConcurrentHashMap в Java, как он работает и чем отличается от HashMap в многопоточной среде?

Ответ ⬇️
ConcurrentHashMap — это потокобезопасная версия HashMap, предназначенная для использования в многопоточной среде. В отличие от HashMap, который не является потокобезопасным и может приводить к состояниям гонки, ConcurrentHashMap позволяет нескольким потокам одновременно читать и изменять карту без блокировок всей коллекции. Он достигает этого за счёт сегментации и блокировок на уровне сегментов, а не всей структуры.

Пример использования ⚙️

import java.util.concurrent.ConcurrentHashMap;

public class Main {
public static void main(String[] args) {
ConcurrentHashMap<String, Integer> map = new ConcurrentHashMap<>();

map.put("Alice", 1);
map.put("Bob", 2);

map.computeIfPresent("Alice", (key, val) -> val + 1);

System.out.println(map); // {Alice=2, Bob=2}
}
}


Java Learning 👩‍💻

Читать полностью…

Java Learning

⚙️ System.nanoTime()

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

Java Learning 👩‍💻

Читать полностью…

Java Learning

🔒 Частное облако SpaceWeb — полный контроль и безопасность для вашего бизнеса

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

💼 Ваши данные — под надежной защитой, доступ к ним — в любое время, в любой точке мира.

Хотите узнать больше? Подпишитесь на канал SpaceWeb и будьте в курсе всех новинок в мире облачных технологий!

Реклама.ООО "СпейсВэб". ИНН: 7813376370 erid: 2Vtzqv6qL65

Читать полностью…

Java Learning

⚙️ Math.floorMod

Метод Math.floorMod в Java выполняет деление по модулю с учётом знаков, возвращая всегда положительный остаток. Это полезно при работе с круговыми индексами или в математике с отрицательными числами.

Java Learning 👩‍💻

Читать полностью…

Java Learning

⌛ Что будет выведено при выполнении кода?

Пояснение
⬇️

Статический блок выполняется один раз при первом обращении к классу, до выполнения main(). В статическом блоке значение x увеличивается на 10, поэтому x становится 15.


Java Learning 👩‍💻

Читать полностью…

Java Learning

⚙️ Collections.unmodifiableList()

В Java метод Collections.unmodifiableList() создаёт неизменяемый (immutable) список на основе существующего. Это удобно, когда нужно защитить коллекцию от изменений после её создания.

Java Learning 👩‍💻

Читать полностью…

Java Learning

Java используется ведущими компаниями мира: AliExpress применяет его для веб-приложений, Netflix — для платформы видеостриминга, а Intel — для встроенных систем и инструментов разработки. Если вы хотите освоить Java, присоединяйтесь к бесплатному курсу Нетологии «Основы разработки на Java»

За 4 занятия вы:
✅ Изучите базовые принципы языка.
✅ Создадите Telegram-бота и приложение с фото из NASA.
✅ Запустите приложение в облаке и создадите хранилище данных для портфолио.
Курс стартует 12 декабря — регистрируйтесь.

🎁 После бесплатного курса вы пройдете карьерную консультацию и сможете дальше развивать навыки на курсе Java-разработчик в Нетологии с выгодой до 65%.

Реклама. ООО "Нетология". ИНН 7726464125 Erid 2VSb5yn3u7v

Читать полностью…

Java Learning

👍Научитесь писать проверки для своего проекта, правильно подсвечивать в IDE и репортить найденные инциденты!

На бесплатном уроке онлайн-курса «Android Developer. Professional» — «Android Lint»: регистрация

Что будет на вебинаре?
- Подробно рассмотрим API Android Lint и PSI/UAST деревья
- Научимся реализовывать свои Detector'ы
- Научимся тестировать реализованные Detector'ы

Каким слушателям вебинар будет полезен?
- Инженерам, которые интересуются статическим анализом, хотят автоматизировать поиск codesmell'ов, проверку кодстайла, проверку принятых в проекте регламентов.

🔥После вебинара вы сможете продолжить обучение на курсе по спеццене, в том числе, в рассрочку.

erid: LjN8JwExK

Читать полностью…

Java Learning

⚙️ String.format()

В Java метод String.format() позволяет форматировать строки с использованием плейсхолдеров и спецификаторов. Это удобно для создания строк с динамическими данными.

Java Learning 👩‍💻

Читать полностью…

Java Learning

⚙️ String.matches()

В Java метод String.matches() проверяет, соответствует ли строка заданному регулярному выражению. Это удобно для проверки формата строк, таких как email, номера телефонов и т.д.

Java Learning 👩‍💻

Читать полностью…

Java Learning

⁉️ Устали гадать, что творится внутри вашего Java-приложения? Хотите мониторить всё в реальном времени?

🗓 На открытом вебинаре 10 декабря в 20:00 мск мы расскажем, как внедрить Observability в Java-приложения, отслеживать состояние системы и решать проблемы до их появления!

Получите навыки, которые помогут вам создавать надежные приложения, повысить стабильность и оперативно выявлять ошибки. Применяйте эти знания и станьте разработчиком нового уровня.

Спикер Сергей Петрелевич — опытный разработчик на Java и Kotlin.

🔗 Регистрируйтесь на вебинар: https://clck.ru/3F44Zj

Успейте получить скидку на участие в курсе «Java Developer. Professional».

Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Читать полностью…
Subscribe to a channel