Java tests
Открыть в Telegram
Java задачи и тесты По всем вопросам- @workakkk @itchannels_telegram - 🔥лучшие ит-каналы @pythonl - 🐍 @ai_machinelearning_big_data- ml @ArtificialIntelligencedl - AI @datascienceiot - ml 📚 @pythonlbooks-📚
Больше2 481
Подписчики
-424 часа
-87 дней
-1830 день
Архив постов
2 481
⚙️ Динамическое изменение поведения объектов с помощью InvocationHandler и Proxy
В Java можно динамически изменять поведение объектов, используя
InvocationHandler и Proxy.
🗣️ Это полезно для создания прокси-объектов, которые могут оборачивать существующие объекты и добавлять новые функции, такие как логирование, кеширование или контроль доступа.
• InvocationHandler позволяет перехватывать вызовы методов у прокси-объекта и добавлять дополнительное поведение, такое как логирование.
• Использование Proxy позволяет динамически создавать новый объект, который ведет себя как реальный объект, но с добавленным поведением.
• Этот подход позволяет добавлять новое поведение к существующим объектам без изменения их кода, что делает его мощным инструментом для реализации аспектно-ориентированного программирования (AOP).2 481
🔴 Сегодня тестовое собеседование с Java-разработчиком
Уже сегодня в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Java-разработчика.
Как это будет:
📂 Виктор Анохин, старший разработчик из WildBerries, будет задавать реальные вопросы и задачи разработчику-добровольцу
📂 Виктор будет комментировать каждый ответ респондента, чтобы дать понять чего от вас ожидает собеседующий на интервью
📂 В конце можно будет задать любой вопрос Виктору
Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Java-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.
Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_sh_bot
Реклама.
О рекламодателе.
2 481
⚡️ Перестаём писать методы с 7+ параметрами
Если сигнатура выглядит как:
createUser(firstName, lastName, email, phone, address, city, country)
Это уже сигнал, что модель данных развалилась.
Проблема не только в читаемости.
Такие методы сложнее поддерживать, расширять и тестировать. Любое изменение ломает сигнатуру и тянет за собой каскад правок.
Нормальный вариант - собрать связанные данные в объект:
UserInfo userInfo
Получаем:
- чище API
- проще добавлять поля
- меньше ошибок при передаче параметров
- код начинает отражать доменную модель, а не список строк
Это базовый приём, но именно на нём чаще всего экономят, а потом платят сложностью.2 481
⚡️ Java лайфхак: не убивай производительность боксингом
Многие даже не замечают, как теряют скорость из-за автoboxing в Stream API.
❌ Плохо (создаются объекты Integer):
Stream 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.
Это мелочь, которая на больших данных превращается в реальную экономию ресурсов.
Сохрани, чтобы не писать медленный код.
2 481
👨💻 Как уверенно работать с чужим кодом и быстро разбираться в новых проектах.
24 февраля встречаемся в онлайн-формате, где наш эксперт, Иван Маринин, инженер-разработчик Рексофт, поделится секретами успешной работы с незнакомыми Java-проектами.
Нас ждет насыщенная лекция:
🔴 Разберем, как эффективно знакомиться с кодовой базой проекта.
🔴 Поделимся методами нахождения бизнес-логики и точек входа.
🔴 Покажем, как использовать IDE не только для редактирования кода, но и для навигации по проекту.
Лекция будет полезна как начинающим, так и опытным специалистам.
📍 Встречаемся 24 февраля, в 17:00 (МСК), участие бесплатное.
Хотите уверенно ориентироваться в чужом коде и улучшить свои навыки? Тогда регистрируйтесь на лекторий.
#PRO_Рексофт
2 481
🔍 Сегодня тестовое собеседование с Java-разработчиком
17 декабря(уже сегодня!) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Java-разработчика.
Как это будет:
📂 Сергей Чамкин, старший разработчик из Uzum, ex-WildBerries, будет задавать реальные вопросы и задачи разработчику-добровольцу
📂 Cергей будет комментировать каждый ответ респондента, чтобы дать понять чего от вас ожидает собеседующий на интервью
📂 В конце можно будет задать любой вопрос Сергею
Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Java-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.
Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_sh_bot
Реклама.
О рекламодателе.
2 481
# Хитрая задачка на 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 и особенности работы с пулом строк, кэшированием обёрток и автоупаковкой.2 481
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 вообще.2 481
Какое из следующих утверждений правильно описывает поведение этой программы?
Уже доступно! Исследование Telegram 2025 — ключевые инсайты года 
