ch
Feedback
Java Interview Tasks

Java Interview Tasks

前往频道在 Telegram

Реальные вопросы и задачи с собеседований. Оригинальный авторский контент. Актуальный материал. Уровень вопросов от junior до supersenior. Автор канала - @alexzelentsov По рекламе: @alexzelentsov

显示更多
4 899
订阅者
+624 小时
+757 天
+19030 天
帖子存档
🔍 Ответ на задачу про Integer.MIN_VALUE: Математические странности 🧮 Диапазон int в Java — от -2,147,483,648 до 2,147,483,647. Заметьте, что отрицательных чисел на одно больше. При попытке вычислить -Integer.MIN_VALUE происходит переполнение, и число превращается... снова в Integer.MIN_VALUE! Вывод: Оба условия выведут true. Отрицание минимального значения int дает то же самое отрицательное число. ⚡️ Не перепутайте: Всегда помните об асимметрии диапазона целых чисел в Java. Это частый источник багов при использовании Math.abs(). #java #int #overflow #math #basics #интервью #java_interview_tasks

Может ли отрицательное число при смене знака остаться отрицательным? Что выведет код?
int x = Integer.MIN_VALUE;
System.out.println(x < 0);
System.out.println(-x < 0);

Может ли отрицательное число при смене знака остаться отрицательным? Что выведет код?
Anonymous voting

🔍 Ответ на задачу про HashSet: Опасность мутабельных объектов 🧩 Когда мы положили p в сет, он попал в "корзину" (bucket), соответствующую hashCode = 1. После изменения p.x = 2, hashCode объекта тоже стал равен 2. Когда мы вызываем contains(p), сет ищет объект в корзине №2, но наш объект всё еще лежит в корзине №1! Сет его не найдет. Вывод: contains вернет false, но размер сета по-прежнему 1. Объект "застрял" в неправильной корзине. ⚡️ Не перепутайте: Никогда не используйте изменяемые (mutable) поля в hashCode и equals, если объекты будут храниться в сетах или мапах. #java #collections #hashset #hashcode #bug #интервью #java_interview_tasks

Что будет, если изменить объект, который уже лежит в HashSet? Сколько элементов будет в сете в конце?
class Point {
    int x;
    Point(int x) { this.x = x; }
    @Override public int hashCode() { return x; }
    @Override public boolean equals(Object o) { return x == ((Point)o).x; }
}
HashSet<Point> set = new HashSet<>();
Point p = new Point(1);
set.add(p);
p.x = 2;
        System.out.println(set.contains(p));
        System.out.println(set.size());

Что будет, если изменить объект, который уже лежит в `HashSet`? Сколько элементов будет в сете в конце?
Anonymous voting

🔍 Ответ на задачу про Double.NaN: 👻 - Согласно стандарту IEEE 754, NaN не равен самому себе. Поэтому x == y всегда false. - Однако Double.equals() реализован так, что он считает два NaN равными. Это сделано для того, чтобы NaN можно было использовать в коллекциях (например, как ключ в HashMap). Вывод: Сравнение примитивов даст false, а объектов — true. ⚡️ Не перепутайте: Для проверки на NaN у примитивов используйте Double.isNaN(x). #java #double #nan #floatingpoint #интервью #java_interview_tasks

Как сравнить два NaN (Not-a-Number) в Java?! Что выведет этот код?
double x = Double.NaN;
double y = Double.NaN;
System.out.println(x == y);
System.out.println(Double.valueOf(x).equals(Double.valueOf(y)));

Что выведет этот код?
Anonymous voting

🔍 Ответ на задачу про String.contains: Ловушка экранирования 🪤 Часто при переходе от регулярных выражений к обычным строковым методам в Java возникает путаница с экранированием. Многие методы в Java (например, split, replaceAll) принимают регулярные выражения. В regex символ | (pipe) является специальным (логическое ИЛИ) и требует экранирования — \|. Однако метод String.contains(CharSequence s) ищет буквальное совпадение подстроки. В данном примере: - MULTIPLE_VALUES_SPLITTER инициализируется строкой \| (обратный слеш и вертикальная черта). - Метод contains честно ищет эти два символа подряд. - В строке "apple|orange|banana" есть только символ |, но нет символа \. Вывод: Результат будет false. Для корректной проверки наличия разделителя в данном случае нужно использовать val.contains("|"). ⚡️ Не перепутайте: - Методы contains, indexOf, replace работают с литералами. - Методы split, replaceAll, matches работают с регулярными выражениями. #java #string #contains #regex #backslash #интервью #java_interview_tasks

Что выведет код?
String MULTIPLE_VALUES_SPLITTER = "\|";
String val = "apple|orange|banana";
System.out.println(val.contains(MULTIPLE_VALUES_SPLITTER));

Что выведет код?
Anonymous voting

IT-кошка принесла кладесь знаний IT & AI каналов много, но по-настоящему качественные медиа часто скрываются в потоках информ
IT-кошка принесла кладесь знаний IT & AI каналов много, но по-настоящему качественные медиа часто скрываются в потоках информации К счастью мне удалось отискать кладесь знаний из сферы технологий Внутри папки можно найти:
Новости из мира IT Нейросети Реальные кейсы из практики Вакансии
Всё самое полезное и актуальное собралось здесь: https://t.me/addlist/ZPicVwIc1bJkMzE6

🔍 Ответ на задачу про BigDecimal: equals vs compareTo ⚖️ - equals() у BigDecimal сравнивает не только значение, но и scale (точность/количество знаков после запятой). Так как у "1.0" scale=1, а у "1.00" scale=2, они не равны. - compareTo() сравнивает только математические значения. 1.0 и 1.00 математически равны. Вывод: equals вернет false, а compareTo вернет true. ⚡️ Не перепутайте: Для проверки равенства денежных сумм почти всегда нужно использовать compareTo() == 0. #java #bigdecimal #math #finance #интервью #java_interview_tasks

При работе с финансами мы используем BigDecimal. Но как их правильно сравнивать? Что выведет код?
BigDecimal d1 = new BigDecimal("1.0");
BigDecimal d2 = new BigDecimal("1.00");
System.out.println(d1.equals(d2));
System.out.println(d1.compareTo(d2) == 0);

Что выведет код?
Anonymous voting

🔍 Ответ на задачу про List.remove(): Индекс или Объект? 🔢 Удаление из списка List<Integer> — классическая ловушка из-за перегрузки метода remove(). У List есть два метода: remove(int index) и remove(Object o). Если в списке лежат Integer, то при вызове remove(1) Java выберет версию с примитивом int (по индексу), так как это точное совпадение. В итоге удалится элемент под индексом 1 (это число 2). Вывод: Список станет [1, 3]. Чтобы удалить именно число 1, нужно вызвать list.remove(Integer.valueOf(1)). ⚡️ Не перепутайте: Будьте осторожны с коллекциями чисел! Всегда проверяйте, удаляете вы по индексу или по значению. #java #collections #arraylist #list #интервью #java_interview_tasks

Что останется в списке после удаления?
List<Integer> list = new ArrayList<>(Arrays.asList(1, 2, 3));
list.remove(1);
System.out.println(list);

Что останется в списке после удаления?
Anonymous voting

😲 Маркетинг или реальный прогресс? Наш канал добавили в папку каналов про ИИ, IT, digital и технологии. Для тех, кто привык
😲 Маркетинг или реальный прогресс? Наш канал добавили в папку каналов про ИИ, IT, digital и технологии. Для тех, кто привык проверять источники (а не верить каждому хайповому треду на 100500 репостов 🫠) Там пишут: • где реально происходит технологический прорыв, а где просто очень хороший маркетинг • какие инструменты и тренды стоит держать на радаре уже сейчас • как расти в профессии, когда рынок опять «немного штормит» (как будто когда-то было иначе) • кейсы, новости и наблюдения без инфоцыганства и криков СРОЧНО ОСВАИВАЙТЕ ЭТО!!1! 👉 Тык на папку https://t.me/addlist/4vTF0SzpFI8wZjAy P.S. Если у вас есть коллега, который всё еще читает новости по заголовкам — спасите его 🥺