Java tests
описание
Java задачи и тесты По всем вопросам- @workakkk @itchannels_telegram - 🔥лучшие ит-каналы @pythonl - 🐍 @ai_machinelearning_big_data- ml @ArtificialIntelligencedl - AI @datascienceiot - ml 📚 @pythonlbooks-📚
2 450
подписчиков
Охват к подписчикам
51,5%
ERR
Реакции к просмотрам
0,29%
73 на 22 постов
Пересылки к просмотрам
0,23%
58
Постов в день
0,1
всего 20
Где отзываются чаще
доля реакций к просмотрам- 12 окт. 2025 г.Java: Короткая задача Задача: Что выведет программа и почему? public class Tricky { public static void main(String[] args) { System.out.println(getValue()); } static int getValue() { try { return 1; } finally { return 2; } } } Разбор: Блок finally всегда выполняется, даже если есть return в try. Когда JVM встречает return 1;, она сохраняет значение для возврата. Затем выполняет finally. В finally есть новый return 2; — он перезаписывает сохранённый результат. 👉 Поэтому вернётся 2, а не 1. Полезно знать: Такое поведение часто ломает логику при работе с ресурсами - finally может изменить или "затереть" возвращаемое значение. Лучше не использовать return внутри finally вообще.1,39%
- 5 апр.⚡️ Java лайфхак: не убивай производительность боксингом Многие даже не замечают, как теряют скорость из-за автoboxing в Stream API. ❌ Плохо (создаются объекты Integer): Stream<Integer> boxed = Stream.of(1, 2, 3, 4, 5); int sum = boxed.reduce(0, Integer::sum); Каждое число → объект → лишняя память + нагрузка на GC ✅ Хорошо (работа с примитивами): int sum = IntStream.of(1, 2, 3, 4, 5).sum(); Без лишних объектов. Быстрее. Чище. Запомни: - IntStream → для int - LongStream → для long - DoubleStream → для double Если работаешь с числами — всегда используй primitive streams. Это мелочь, которая на больших данных превращается в реальную экономию ресурсов. Сохрани, чтобы не писать медленный код.1,12%
- 20 апр.⚡️ Перестаём писать методы с 7+ параметрами Если сигнатура выглядит как: createUser(firstName, lastName, email, phone, address, city, country) Это уже сигнал, что модель данных развалилась. Проблема не только в читаемости. Такие методы сложнее поддерживать, расширять и тестировать. Любое изменение ломает сигнатуру и тянет за собой каскад правок. Нормальный вариант - собрать связанные данные в объект: UserInfo userInfo Получаем: - чище API - проще добавлять поля - меньше ошибок при передаче параметров - код начинает отражать доменную модель, а не список строк Это базовый приём, но именно на нём чаще всего экономят, а потом платят сложностью.0,90%
- 2 июл.Сколько строк выведет этот код?0,90%
- 29 апр.Каким будет результат выполнения кода?0,45%
- 26 окт.# Хитрая задачка на Java: не то, чем кажется Внимательно изучите следующий код: public class WhatTheJava { public static void main(String[] args) { String s1 = "hello"; String s2 = "hello"; String s3 = new String("hello"); String s4 = new String("hello").intern(); System.out.println(s1 == s2); // (1) System.out.println(s1 == s3); // (2) System.out.println(s1 == s4); // (3) System.out.println(s3 == s4); // (4) Integer i1 = 1000; Integer i2 = 1000; Integer i3 = 100; Integer i4 = 100; System.out.println(i1 == i2); // (5) System.out.println(i3 == i4); // (6) Boolean b1 = true; Boolean b2 = true; Boolean b3 = Boolean.valueOf("true"); Boolean b4 = new Boolean(true); System.out.println(b1 == b2); // (7) System.out.println(b1 == b3); // (8) System.out.println(b1 == b4); // (9) } } Вопрос: Что напечатает эта программа? Обоснуйте каждый вывод, опираясь на спецификацию Java и особенности работы с пулом строк, кэшированием обёрток и автоупаковкой.0,24%
- 3 мая⚙️ Динамическое изменение поведения объектов с помощью InvocationHandler и Proxy В Java можно динамически изменять поведение объектов, используя InvocationHandler и Proxy. 🗣️ Это полезно для создания прокси-объектов, которые могут оборачивать существующие объекты и добавлять новые функции, такие как логирование, кеширование или контроль доступа. • InvocationHandler позволяет перехватывать вызовы методов у прокси-объекта и добавлять дополнительное поведение, такое как логирование. • Использование Proxy позволяет динамически создавать новый объект, который ведет себя как реальный объект, но с добавленным поведением. • Этот подход позволяет добавлять новое поведение к существующим объектам без изменения их кода, что делает его мощным инструментом для реализации аспектно-ориентированного программирования (AOP).0,20%
- 30 июн.🔴 Завтра тестовое собеседование с Java-разработчиком 1 июля(уже завтра!) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Java-разработчика. Как это будет: 📂 Виктор Анохин, старший разработчик из WildBerries, будет задавать реальные вопросы и задачи разработчику-добровольцу 📂 Виктор будет комментировать каждый ответ респондента, чтобы дать понять чего от вас ожидает собеседующий на интервью 📂 В конце можно будет задать любой вопрос Виктору Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Java-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы. Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_sh_bot Реклама. О рекламодателе.0,15%
- 18 февр.#java #oca0,07%
- 18 февр.❓Что выведет код на изображении выше?0,06%
- 17 дек.Что напечатает код?👆0,04%
- 12:53☕ Java-баг, который выглядит нормально, но ломает `HashMap` Что выведет этот код? Map<List<Integer>, String> map = new HashMap<>(); List<Integer> key = new ArrayList<>(List.of(1, 2)); map.put(key, "Ritesh"); key.add(3); System.out.println(map.get(key)); Многие ожидают: Ritesh Но результат: ```text null ``` Почему? HashMap ищет ключ через: ```java hashCode() equals() ``` Когда мы сделали: ```java map.put(key, "Ritesh"); ``` ключ был: ```text [1, 2] ``` У него был один hashCode. Но потом: ```java key.add(3); ``` ключ стал: ```text [1, 2, 3] ``` И его hashCode изменился. HashMap уже положил объект в bucket по старому hash, а при get() ищет по новому. Схема: ```text put() [1,2] hash = X ↓ bucket X key.add(3) [1,2,3] hash = Y get() ищем bucket Y → запись не найдена ``` Главное правило: ❌ Не изменяйте объект после того, как использовали его как ключ в HashMap. Лучше использовать: ✅ String ✅ Integer ✅ record ✅ immutable-объекты Например: ```java Map<List<Integer>, String> map = new HashMap<>(); List<Integer> key = List.of(1, 2); map.put(key, "value"); ``` Самые опасные баги в Java - те, где объект всё ещё существует, ссылка всё та же, но структура данных уже не может его нормально найти. #java #backend #programming0,00%