Продвинутый уровень (14 из 15)

<aside> <img src="/icons/calendar-day_gray.svg" alt="/icons/calendar-day_gray.svg" width="40px" />

13 июня 2026

</aside>

<aside> <img src="/icons/clock-alternate_lightgray.svg" alt="/icons/clock-alternate_lightgray.svg" width="40px" />

20 минут

</aside>

  1. Что будет выведено при исполнении данного участка кода?

    class SomeClass {
        public static int field = 0;
    }
    
    public class Main {
        public static void main(String[] args) {
            SomeClass someClass1 = new SomeClass();
            someClass1.field++;
            SomeClass someClass2 = new SomeClass();
            someClass2.field++;
            SomeClass someClass3 = new SomeClass();
            someClass3.field++;
            ++SomeClass.field;
            System.out.println(++SomeClass.field);
        }
    }
    
  2. Что будет выведено при исполнении следующего кода?

    public class Main {
        public static void main(String[] args) {
            int[] arr = {1, 2, 3, 4, 5};
            for (int i = 0; i < arr.length; i++) {
                if (arr[i] % 2 == 0) {
                    continue;
                }
                System.out.print(arr[i]);
            }
        }
    }
    
  3. Каким будет результат выполнения данного кода?

    String s1 = new String("Java");
    String s2 = new String("Java");
    String s3 = s1;
    
    System.out.println(s1 == s2);
    System.out.println(s1.equals(s2));
    System.out.println(s1 == s3);
    
  4. Какой вариант инициализации переменной приведет к ошибке?

    class Box<T> {
        T value;
        
        public Box(T value) {
            this.value = value;
        }
        
        public static void main(String[] args) {
            Box<? super String> b1 = new Box<>(123);
            Box<? extends String> b2 = new Box<>("123");
            Box<? extends Number> b3 = new Box<>(123);
            Box<? super Number> b4 = new Box<>(123L);
            Box<?> b5 = new Box<>("123");
        }
    }
    
  5. Что выведет на экран программа?

    public class Test {
        public static void main(String[] args) {
            try {
                throw new ArithmeticException("1");
            } catch (Exception e) {
                System.out.println(2);
            } finally {
                System.out.println(3);
            }
        }
    }
    
  6. В какой из следующих структур данные элементы будут отсортированы по умолчанию?

  7. В каком из следующих случаев возникнет ConcurrentModificationException при итерировании по LinkedList?

  8. После продолжительной работы сервиса графики показали, что память постепенно растет. Вы попросили вашего напарника проинспектировать код на наличие утечки памяти. Через пару дней он пришел с результатом, что утечкой памяти является цикличная ссылка в коде класса реализации графа. Выглядит это следующим образом. Может ли это быть причиной утечки памяти? В качестве GC используется ParallelGC.

    class Node {
        private Node edge = null;
        public Node getEdge() {
            return edge;
        }
        public void setEdge(Node edge) {
            this.edge = edge;
        }
    }
    
    public void createAndDelete() {
        val node1 = new Node();
        val node2 = new Node();
        node1.setEdge(node2);
        node2.setEdge(node1);
    }
    
  9. Что выведет на экран следующий код?

    abstract class Animal {
        abstract void sound();
    
        void eat() {
            System.out.println("Eating");
        }
    }
    
    class Dog extends Animal {
        void sound() {
            System.out.println("Bark");
        }
    }
    
    class Cat extends Animal {
        void sound() {
            System.out.println("Meow");
        }
    
        void scratch() {
            System.out.println("Scratch");
        }
    }
    
    public class Test {
        public static void main(String[] args) {
            Animal a = new Dog();
            a.sound();
            ((Cat) a).scratch();
        }
    }
    
  10. Ваша команда разработала многопоточную библиотеку, использующую ThreadLocal для хранения контекстной информации для каждого потока. Какой из следующих подходов НЕ является корректным в использовании ThreadLocal?

  11. Что выведет на экран программа?

    public class Main {
        public static void main(String[] args) {
            List<String> list = Arrays.asList("a", "b", "c");
            list.stream()
                    .forEach(s -> System.out.print(s.length()));
        }
    }
    
  12. Какая структура данных из перечисленных НЕ является lock-free в Java 8+?

  13. Какое из следующих утверждений о механизмах синхронизации в Java является неверным?

  14. Что делает flip в указанной программе?

  15. Выберите верное утверждение о PermGen.