Java Interview Tasks
الذهاب إلى القناة على Telegram
Реальные вопросы и задачи с собеседований. Оригинальный авторский контент. Актуальный материал. Уровень вопросов от junior до supersenior. Автор канала - @alexzelentsov По рекламе: @alexzelentsov
إظهار المزيد4 899
المشتركون
+624 ساعات
+757 أيام
+19030 أيام
أرشيف المشاركات
4 900
### 🧮 Задача: (7x−y)(7y−z)(7z−x) = 11, где x, y, z — целые числа
### Решение: 🚫
Ключевое наблюдение — посмотрим на чётность произведения
(7x−y)(7y−z)(7z−x).
Сложим все три множителя:
(7x − y) + (7y − z) + (7z − x) = 6x + 6y + 6z = 6(x + y + z)
Сумма трёх множителей всегда чётна (кратна 6). Если сумма трёх целых чисел чётна, то среди них либо все три чётные, либо ровно два нечётных и одно чётное. В обоих случаях хотя бы один множитель — чётный. А значит, произведение (7x−y)(7y−z)(7z−x) всегда чётно при любых целых x, y, z.
Но 11 — нечётное число.
### Вывод:
Уравнение не имеет решений в целых числах.
#math #numbertheory #diophantine #интервью #java_interview_tasks4 900
Задача с собеседования в grok:
x,y,z -целые числа, решить уравнение:
(7x-y)(7y-z)(7z-x)=114 900
🔍 Ответ на задачу про PECS: Producer Extends, Consumer Super 🦆
Это правило PECS:
- Producer Extends: Если коллекция "производит" данные (мы из нее читаем), используйте
extends. Мы гарантируем, что там лежат объекты типа T или его наследники, поэтому их безопасно приводить к T.
- Consumer Super: Если коллекция "потребляет" данные (мы в нее пишем), используйте super. Мы можем безопасно положить туда T. Но при чтении мы получим только Object, так как не знаем реального типа.
Вывод:
Верна только строка A.
⚡️ Не перепутайте:
List<? extends T> — только для чтения.
List<? super T> — в основном для записи.
#java #generics #pecs #clean_code #интервью #java_interview_tasks4 900
🤖Что нового в АI?
В мире технологий каждую неделю — революция. За всеми новостями не уследить, а выгорать от инфошума не хочется.
Нас включили в ламповую 🥰 подборку каналов про ИИ, IT и диджитал.
Что внутри:
• регулярные дайджесты нейросетей
• разборы апдейтов ИИшек
• лайфхаки для маркетологов и проджектов
• вакансии и зарплаты на рынке IT
🔠 Тык и забрать себе https://t.me/addlist/0e6bqS8qJA0xYmVi
4 900
Когда использовать
? extends, а когда ? super?
Из какого списка можно ЧИТАТЬ данные (получать объекты типа T)?
void process(List<? extends T> list1, List<? super T> list2) {
T item1 = list1.get(0); // A
T item2 = list2.get(0); // B
}4 900
Когда использовать `? extends`, а когда `? super`?
Из какого списка можно ЧИТАТЬ данные \(получать объекты типа T\)?
4 900
🔍 Ответ на задачу про Wildcards: List<Object> vs List<?> ❓
1.
List<Object> не является родителем для List<String>. Несмотря на то, что String — это Object, сами коллекции инвариантны. Иначе мы могли бы положить Integer в список строк через ссылку на List<Object>.
2. List<?> (wildcard) — это родитель для любого List. Строка 2 верна.
3. В List<?> нельзя ничего добавлять (кроме null), так как мы не знаем, список какого типа там на самом деле.
Вывод:
Не скомпилируются строки 1 и 3.
⚡️ Не перепутайте:
List<Object> — это список, в который можно класть любые объекты.
List<?> — это список какого-то неизвестного типа, из него можно только читать.
#java #generics #wildcards #basics #интервью #java_interview_tasks4 900
Можно ли положить String в список "любых объектов"?
Какие строки кода НЕ скомпилируются?
List<Object> list1 = new ArrayList<String>(); // 1
List<?> list2 = new ArrayList<String>(); // 2
list2.add("hello"); // 34 900
Можно ли положить String в список "любых объектов"?
Какие строки кода НЕ скомпилируются?
4 900
🔍 Ответ на задачу про Generics: Стирание типов (Type Erasure) 🧼
В Java дженерики реализованы через стирание типов. Это сделано для обратной совместимости с кодом до Java 5. Во время компиляции проверки проводятся, но в байт-коде вся информация о типах
<String> и <Integer> удаляется, и оба списка превращаются в просто ArrayList (работающий с Object).
Вывод:
Оба списка принадлежат одному и тому же классу java.util.ArrayList. Результат: true.
⚡️ Не перепутайте:
Из-за стирания типов вы не можете сделать instanceof List<String> или создать массив дженериков new T[10].
#java #generics #jvm #internals #basics #интервью #java_interview_tasks4 900
Что знает JVM о ваших дженериках во время выполнения?
Что выведет код?
List<String> strings = new ArrayList<>();
List<Integer> ints = new ArrayList<>();
System.out.println(strings.getClass() == ints.getClass());4 900
Что знает JVM о ваших дженериках во время выполнения?
Что выведет код?
4 900
Если вы работаете в сфере IT, развиваетесь в технологиях или просто хотите быть в курсе самых важных новостей и трендов - эта папка для вас!
Что внутри:
▪️ IT-новости и главные события технологического мира
▪️ Полезные сервисы и инструменты для работы
▪️ Полезные материалы, которые можно сразу применять в работе
А также в папке есть Чат-нетворкинг: "ЗАЯВИ О СЕБЕ", где вы можете разместить информацию о себе, своих услугах, кейсах и оставить свои контакты.
🔥 Изучайте, подписывайтесь на интересные каналы и забирайте полезные знания, собранные в одной папке!
Жми на ссылку и присоединяйся: 👇
https://t.me/addlist/_QVXbIwPJiViNTZk
ЗАПИСАТЬ СВОЙ КАНАЛ В ПАПКУ
4 900
🔍 Ответ на задачу про Final поля: Безопасная публикация 🏗
Согласно JMM, поля
final обеспечивают "гарантию заморозки". Если объект был правильно сконструирован (ссылка this не утекла во время работы конструктора), то любой поток, увидевший ссылку на этот объект, гарантированно увидит корректные значения всех его final полей.
Вывод:
При условии отсутствия "утечки" this в конструкторе , после создания объекта другой тред увидеть не может ничего кроме 5. Это одна из основ создания Immutable объектов в Java.
⚡️ Не перепутайте:
Обычные (не final) поля без синхронизации могут быть видны другим потокам в их дефолтном состоянии (например, 0 или null), даже если конструктор уже отработал.
#java #concurrency #jmm #final #multithreading #интервью #java_interview_tasks4 900
Гарантирует ли
final, что другой поток увидит значение поля?
Может ли другой поток увидеть p.x == 0, если объект p был создан как p = new Point(5)?
class Point {
final int x;
Point(int val) { this.x = val; ... }
}4 900
Гарантирует ли `final`, что другой поток увидит значение поля?
Может ли другой поток увидеть `p.x == 0`, если объект `p` был создан как `p = new Point(5)`?
4 900
📱 Держим AI-Новости ПОД РУКОЙ — собрали в одну Telegram-папку каналы про нейросети, новые инструменты и полезные обновления.
Внутри - IT, AI & HR Tech: свежие сервисы, рабочие фишки и материалы, которые помогают быстрее разбираться в новых технологиях и найти работу по специальности.
Добавляем всю [подборку] одним нажатием и не ищем каждый канал вручную.
📩 Запись в папку
4 900
📂 Подборка каналов по AI, IT & HR Tech
Каналы для тех, кто работает в IT и хочет держать руку на пульсе без мониторинга сотни источников ✔️
Что внутри:
AI-блок: новости, нейросети, ИИ-инструменты и кейсы внедрения, стартапы, датасеты
Dev-блок: Java, Python, JS (Frontend/Backend), Mobile, QA, промышленная автоматизация (IIoT)
Отдельно: Cybersecurity, SciPop, IT-вакансии, биржа фриланса, бизнес-новости, Agile/PMP-менеджмент
Бонус: IT-мемы и юмор
Посмотреть и подписаться можно здесь ⬇️ https://t.me/addlist/nXNk7Y2TLoE0Y2Jk
📩 Записаться в папку
4 900
🔍 Ответ на задачу про Static:
Статические методы привязаны к классу, а не к объекту. В Java нет полиморфизма для статики. Это называется method hiding. Какой метод вызовется, определяется типом переменной во время компиляции, а не типом объекта во время выполнения.
Вывод:
Так как переменная
obj имеет тип A, вызовется A.staticMethod(). Результат: "A".
⚡️ Не перепутайте:
Никогда не вызывайте статические методы через экземпляры объектов (obj.method()). Всегда пишите ClassName.method(), чтобы не вводить в заблуждение.
#java #static #inheritance #basics #clean_code #интервью #java_interview_tasks4 900
Почему статические методы ведут себя не так, как обычные?
Что выведет код?
class A {
static void staticMethod() { System.out.print("A"); }
}
class B extends A {
static void staticMethod() { System.out.print("B"); }
}
A obj = new B();
obj.staticMethod();