Java Interview Tasks
Відкрити в Telegram
Реальные вопросы и задачи с собеседований. Оригинальный авторский контент. Актуальный материал. Уровень вопросов от junior до supersenior. Автор канала - @alexzelentsov По рекламе: @alexzelentsov
Показати більше4 899
Підписники
+624 години
+757 днів
+19030 днів
Архів дописів
4 899
🔍 Ответ на задачу про String: replace vs replaceAll 🧐
-
replace(CharSequence target, CharSequence replacement) заменяет литеральные строки. Точка воспринимается просто как символ.
- replaceAll(String regex, String replacement) принимает регулярное выражение. В регулярках точка . означает "любой символ". Поэтому replaceAll заменит абсолютно все символы в строке на слэш.
Вывод:
Первая строка выведет java/is/fun, а вторая — ///////////.
⚡️ Не перепутайте:
Если вам не нужны регулярные выражения, всегда используйте replace(). Он быстрее и безопаснее.
#java #string #regex #basics #интервью #java_interview_tasks4 899
Друзья, собрали для вас новую папку с IT & AI каналами
* здесь есть где порыться ))
В Подборке вы найдёте (кратко):
AI-блок: новости, нейросети, ИИ-инструменты и кейсы внедрения, стартапы, датасеты
Dev-блок: Java, Python, JS (Frontend/Backend), Mobile, QA, промышленная автоматизация (IIoT)
Отдельно: Cybersecurity, SciPop, IT-вакансии, биржа фриланса, бизнес-новости, Agile/PMP-менеджмент
Бонус: IT-мемы и юмор
Посмотреть и подписаться можно здесь ⬇️ https://t.me/addlist/moHzMEDfCqxmMzJk
4 899
В чём разница между
replace() и replaceAll(), если оба принимают две строки?
Что выведет этот код?
String str = "java.is.fun";
System.out.println(str.replace(".", "/"));
System.out.println(str.replaceAll(".", "/"));4 899
Десятки обновлений нейросетей и новых AI-инструментов выходят еженедельно. Вопрос только в том — узнаешь ли ты об этом первым?
Хочешь быть в их числе?
Мы собрали ПОДБОРКУ со всеми свежими ИИ-инструментами, фишками и апдейтами. Никакой воды — только то, что реально упрощает работу и приносит результат.
👉 Делимся знаниями и аудиторией — растём вместе ⚡️
Отписаться можно в любой момент. Остаться — тоже ✔️
Добавляй ПАПКУ в свой актив и делись с друзьями! 📌 * здесь есть что выбрать 👌
4 899
🔍Завтра тестовое собеседование с Java-разработчиком
5 августа (уже завтра!) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Java-разработчика.
Как это будет:
📂 Сергей Чамкин, старший разработчик из Uzum, ex-WildBerries, будет задавать реальные вопросы и задачи разработчику-добровольцу
📂 Сергей будет комментировать каждый ответ респондента, чтобы дать понять чего от вас ожидает собеседующий на интервью
📂 В конце можно будет задать любой вопрос Сергею
Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Java-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.
Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_sh_bot
Реклама.
О рекламодателе.
4 899
🔍 Ответ на задачу про Collectors.toMap 💥
Дефолтная версия
Collectors.toMap(keyMapper, valueMapper) предполагает, что ключи уникальны. Если встречается дубликат (и "apple", и "apricot" имеют длину 5), метод выбрасывает IllegalStateException: Duplicate key.
Вывод:
Чтобы код не падал, нужно использовать перегруженную версию с "merge function":
.collect(Collectors.toMap(s -> s.length(), s -> s, (oldValue, newValue) -> oldValue)) — это скажет стриму оставить старое значение при конфликте.
⚡️ Не перепутайте:
Всегда думайте, возможны ли дубликаты в ваших данных перед использованием toMap().
#java #streamapi #collectors #map #exception #интервью #java_interview_tasks4 899
#вп #реклама
❗️❗️❗️Дарю доступ
только на 3 дня
⠀
Собрали самые полезные каналы в сфере IT и AI
⠀
▪️️⠀Корпоративный ИИ
Рынок корпоративного ИИ глазами системного интегратора. Новости, кейсы и аналитика через фильтр реального опыта.
▪️️ИИ что дальше?
▪️️Привет, Андрей!
▪️️Ebout Data Science | Дима Савелко
⠀
И другие каналы в одной ПАПКЕ.
⠀
+ канал с реально полезными промтами, которые создают крутой оффер в любой ИИ. А еще
⠀
- нормально сегментируют ЦА, а не пишут «женщины 30+»
- помогают упаковать блог/продукт
⠀
Все в одной подборке. Жмите, чтобы добавить 👉 ДОБАВИТЬ
⠀
❗️Через 3 дня удалю пост. Успевайте.
4 899
Что произойдет, если при формировании Map попадутся два одинаковых ключа?
List<String> list = Arrays.asList("apple", "banana", "apricot");
Map<Integer, String> map = list.stream()
.collect(Collectors.toMap(s -> s.length(), s -> s));4 899
Что произойдет, если при формировании Map попадутся два одинаковых ключа?
4 899
🔍 Ответ на задачу про перегрузку методов: null и неоднозначность ⚖️
Java при перегрузке (overloading) всегда выбирает наиболее специфичный (most specific) тип. Так как
String является наследником Object, он считается более специфичным. Компилятор отдаст предпочтение ему.
Вывод:
Напечатается "String". Если бы мы добавили еще метод print(Integer i), возникла бы ошибка компиляции, так как String и Integer не связаны иерархией, и Java не смогла бы выбрать.
⚡️ Не перепутайте:
Если нужно вызвать именно версию для Object, сделайте явное приведение: print((Object) null).
#java #overloading #basics #polymorphism #интервью #java_interview_tasks4 899
Когда у вас есть два метода с одинаковым именем, но разными типами аргументов, какой из них выберет Java для
null?
Какой метод вызовется?
public class Test {
public static void print(Object o) { System.out.println("Object"); }
public static void print(String s) { System.out.println("String"); }
public static void main(String[] args) {
print(null);
}
}4 899
🔍 Ответ на задачу про computeIfAbsent: Осторожно с модификациями! ⚠️
Документация
HashMap (и большинства других реализаций) прямо запрещает модификацию структуры мапы (добавление/удаление) внутри методов вычисления (compute, merge, computeIfAbsent). Это может привести к повреждению внутренней структуры данных или выбросу ConcurrentModificationException.
Вывод:
В данном случае в HashMap будет выброшен ConcurrentModificationException.
⚡️ Не перепутайте:
Никогда не меняйте коллекцию внутри методов, которые итерируются по ней или вычисляют ее значения.
#java #collections #hashmap #bug #concurrency #интервью #java_interview_tasks4 899
Метод
computeIfAbsent в Map очень удобен, но внутри лямбды скрыта ловушка.
Что произойдет, если внутри computeIfAbsent попытаться изменить эту же мапу?
Map<String, Integer> map = new HashMap<>();
map.put("A", 1);
map.computeIfAbsent("B", key -> {
map.put("C", 3);
return 2;
});4 899
Что произойдет, если внутри `computeIfAbsent` попытаться изменить эту же мапу?
4 899
🔍 Ответ на задачу про CompletableFuture: thenRun, thenAccept или thenApply? 🚀
-
thenApply(Function) — принимает результат, возвращает новый результат (меняет тип).
- thenAccept(Consumer) — принимает результат, ничего не возвращает (CompletableFuture<Void>).
- thenRun(Runnable) — не принимает результат и ничего не возвращает (CompletableFuture<Void>). Используется просто для запуска кода после завершения этапа.
Вывод:
thenRun всегда возвращает CompletableFuture<Void>, игнорируя результат предыдущего шага.
⚡️ Не перепутайте:
Выбирайте метод в зависимости от того, нужны ли вам входные данные от предыдущего шага и хотите ли вы что-то передать дальше.
#java #concurrency #completablefuture #async #multithreading #интервью #java_interview_tasks4 899
Асинхронное программирование — мощная концепция, но важно понимать разницу в цепочках методов.
Что вернет метод
thenRun(), если предыдущий этап вернул строку "Success"?
CompletableFuture<String> future = CompletableFuture.supplyAsync(() -> "Success");
CompletableFuture<Void> result = future.thenRun(() -> System.out.println("Done"));4 899
Что вернет метод `thenRun()`, если предыдущий этап вернул строку "Success"?
4 899
🔍 Ответ на задачу про instanceof: А если там null? 🧐
Согласно спецификации Java, оператор
instanceof всегда возвращает false, если левый операнд равен null. При этом никакой ошибки (NPE) не возникает.
Вывод:
Оба сравнения вернут false. null не является экземпляром ни одного класса, даже Object.
⚡️ Не перепутайте:
Вам не нужно проверять s != null перед использованием instanceof. Сам оператор уже делает эту проверку за вас.
#java #instanceof #null #basics #интервью #java_interview_tasks