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

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

Пояснение
⬇️

Два потока вызывают increment() по 1000 раз каждый. Метод increment() синхронизирован, что предотвращает одновременный доступ. В итоге counter увеличивается на 2000 без гонок.


Java Learning 👩‍💻

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

Java Learning

⚙️ Stream.flatMap()

В Java метод Stream.flatMap() используется для преобразования каждого элемента потока в другой поток и «выпрямления» (объединения) этих потоков в один. Это полезно для работы со вложенными структурами данных, такими как списки списков.

Java Learning 👩‍💻

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

Java Learning

⚙️ ThreadLocal

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

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

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

Что такое 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

Совсем скоро в Level UP стартует программа «Курс Java-разработчик (Старт)» 👩‍💻 — ваш шанс с нуля освоить востребованную профессию и уверенно войти в IT в 2025 году.

📚 Обучение построено вокруг практики: Начнём с самых основ и далее будем постепенно углубляться в сам язык программирования Java и соответствующий стек технологий - рассмотрим основные понятия и концепции программирования, присущие любому объектно-ориентированному языку, познакомимся с основными алгоритмами и структурами данных, познакомимся с системами контроля версий, научимся работать с БД из Java, и, конечно, будем писать много-много кода.

Программа подойдет как тем, кто уже связан с IT (сисадмины, тестировщики, аналитики), так и новичкам, которые только делают первые шаги в разработке. Участники курса получат необходимые знания и навыки для старта в профессию Программист Java / Java-разработчик.

🎁 Используйте промокод September2025 и получите скидку 10% на обучение.

👉 Оставляйте заявку и присоединяйтесь к новой группе: https://clck.ru/3NzNZK

Реклама. ООО «Образовательные решения», ОГРН 1227800102386

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

Java Learning

Она снова не ответила? Вот почему твои переписки умирают

— «Привет», «Как дела?», «Что делаешь?», «Почему молчишь?», «Сколько лет?» «Откуда ты?», «Где работаешь?» – серьёзно? 🤦

Добавь сюда кринжовые попытки рассмешить — и вместо свидания ты получишь очередную мертвую переписку или отмазки в духе «устала/заболела/извини, не могу — кошка наблевала».

Проблема в том, что такие фразы не вызывают интереса. Девушка просто не видит в тебе мужчину, с которым стоит продолжать.

Что делать? Использовать проверенную стратегию переписки.
Например: вместо банального «спокойной ночи» — отправь любое сообщение из шаблонов в канале, и ты офигеешь от реакции. Она сама захочет писать первой.

Шаблоны и стратегию ты найдешь в канале Вани Абсента. Он помогает стать магнитом для женщин и построить яркие отношения, которые наполняют и зажигают: @absent

В канале ты найдёшь:

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

👉 Подписывайся — /channel/+QujzheJCcYJlNTgy

И действуй, а не смотри, как девушки мечты проходят мимо.

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

Java Learning

⚙️ Collections.unmodifiableList()

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

Java Learning 👩‍💻

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

Java Learning

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

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

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

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

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

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


Java Learning 👩‍💻

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

Java Learning

⚙️ String.format()

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

Java Learning 👩‍💻

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

Java Learning

👩‍💻 Задача по Java: Подсчёт частоты слов в строке

Напишите метод, который принимает строку и возвращает Map, где ключи — это слова из строки, а значения — количество их вхождений. Игнорируйте регистр и удаляйте знаки препинания.

Пример:

public class Main {
public static void main(String[] args) {
String text = "Hello, world! Hello Java.";
Map<String, Integer> result = countWordFrequency(text);
System.out.println(result);
// Ожидаемый результат:
// {hello=2, world=1, java=1}
}
}


Решение задачи на картинке ☝️

Java Learning 👩‍💻

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

Java Learning

⚙️ String.replaceAll()

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

Java Learning 👩‍💻

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

Java Learning

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

Пояснение
⬇️

Переменная x объявлена как final, что делает её неизменяемой после инициализации. Она выводит значение 10. Класс FinalExample содержит переменную value, также объявленную как final, и метод show, который возвращает строку с этим значением. Финальный метод можно вызывать, но его нельзя переопределить в подклассах. Код компилируется и работает без ошибок.


Java Learning 👩‍💻

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

Java Learning

Вам нравится читать контент на этом канале?

Возможно, вы задумывались о том, чтобы купить на нем интеграцию?

Следуйте 3 простым шагам, чтобы сделать это:

1) Нажмите на ссылку: Вход
2) Пополняйтесь удобным способом
3) Размещайте публикацию

Если тематика вашего поста подойдет нашему каналу, мы с удовольствием опубликуем его.

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

Java Learning

👩‍💻 Задача по Java: Удаление дубликатов из списка с сохранением порядка

Напишите метод, который принимает список строк и возвращает новый список, содержащий только уникальные строки, сохраняя их порядок появления.

Пример:

import java.util.List;

public class Main {
public static void main(String[] args) {
List<String> input = List.of("apple", "banana", "apple", "orange", "banana");
List<String> result = removeDuplicates(input);
System.out.println(result);
// Ожидаемый результат: [apple, banana, orange]
}
}


Решение задачи на картинке ☝️

Java Learning 👩‍💻

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

Java Learning

⚙️ Class.getDeclaredMethods()

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

Java Learning 👩‍💻

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

Java Learning

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

Пояснение
⬇️

Массивы в Java передаются по ссылке. Метод modifyArray изменяет первый элемент массива на 42. Изменение сохраняется, потому что arr и numbers указывают на один и тот же массив.


Java Learning 👩‍💻

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

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

Apache POI

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

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

Java Learning 👩‍💻

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

Java Learning

⚙️ System.nanoTime()

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

Java Learning 👩‍💻

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

Java Learning

⚙️ StringBuilder.append()

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

Java Learning 👩‍💻

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

Java Learning

⚙️ Math.floorMod

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

Java Learning 👩‍💻

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

Java Learning

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

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

Java Learning 👩‍💻

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

Java Learning

⚙️ Map.merge()

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

Java Learning 👩‍💻

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

Java Learning

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

Пояснение
⬇️

Статический вложенный класс Nested может быть создан без экземпляра внешнего класса Outer. Код Outer.Nested nested = new Outer.Nested(); корректен, и метод display выводит "Nested class".


Java Learning 👩‍💻

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

Java Learning

REST или GraphQL? Этот выбор может определить, насколько удобным, быстрым и масштабируемым будет ваш API.

26 августа в 20:00 на открытом уроке мы разберём, когда стоит выбрать REST, а когда — GraphQL, а также реализуем оба подхода в Spring Boot. Эксперт покажет критерии выбора, разберёт практические кейсы и типичные ошибки.

Backend-разработчики на Java/Kotlin и тимлиды узнают, как применять эти технологии на практике, чтобы их проекты работали быстрее, были проще в сопровождении и готовыми к росту.

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

Регистрируйтесь сейчас и получите скидку на обучение: https://otus.pw/jwDb/

Реклама. ООО "ОТУС ОНЛАЙН-ОБРАЗОВАНИЕ", ИНН: 9705100963

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

Java Learning

⚙️ Collectors.toMap()

В Java метод Collectors.toMap() собирает элементы потока в карту (Map), где вы можете указать функции для ключей и значений. Это удобно для преобразования коллекций в структуру ключ-значение.

Java Learning 👩‍💻

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

Java Learning

⚙️ Optional.flatMap()

В Java метод Optional.flatMap() позволяет преобразовать значение внутри Optional, возвращая другой Optional. Это особенно полезно для работы с вложенными Optional.

Java Learning 👩‍💻

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

Java Learning

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

Пояснение
⬇️

Переменная x объявлена как final, что делает её неизменяемой после инициализации. Она выводит значение 10. Класс FinalExample содержит переменную value, также объявленную как final, и метод show, который возвращает строку с этим значением. Финальный метод можно вызывать, но его нельзя переопределить в подклассах. Код компилируется и работает без ошибок.


Java Learning 👩‍💻

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

Java Learning

⚙️ Stream.collect() с Collector.of()

В Java метод Collector.of() позволяет создавать пользовательские коллекции с кастомной логикой для сборки данных. Это даёт полный контроль над процессом объединения элементов.

Java Learning 👩‍💻

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