игра брюс 2048
Главная / Программирование / Углубленное программирование на Java / Тест 23

Углубленное программирование на Java - тест 23

Упражнение 1:
Номер 1
 Чтобы отметить на UML диаграмме protected поле или метод, надо использовать:

Ответ:

 (1)

 (2) – 

 (3)

 (4) курсивом 


Номер 2
 Класс Class это:

Ответ:

 (1) тип данных, который представляет другие классы 

 (2) тип данных, объекты которого содержат данные о классах в runtime 

 (3) общий предок всех библиотечных классов 

 (4) общий предок всех классов в Java 


Номер 3
 Чтобы получить объект типа Class у объекта object, нужно:

Ответ:

 (1) вызвать object.getClass() 

 (2) вызвать Class.getClass(object) 

 (3) ClassLibrary.get(object) 

 (4) Object.toClass() 


Упражнение 2:
Номер 1
 Вы работаете с объектом типа StudentPersonalDatA.
Можно ли вызвать у этого объекта метод toString():

Ответ:

 (1) да 

 (2) только если этот метод переопределен в классе StudentPersonalData 

 (3) только если этот класс явно унаследован от Object (StudentPersonalData extends Object) 


Номер 2
 Вам надо записать число в тип данных int.
При записи каких чисел произойдет переполнение типа?

Ответ:

 (1) 3 000 000;  

 (2) 1 000 000 000  

 (3) 3 000 000 000 

 (4) 10 000 000 000 


Номер 3
 Вы завели переменную short index = 0; можно ли вызвать index.toString()?

Ответ:

 (1) да 

 (2) нет 


Упражнение 3:
Номер 1
 Какое количество байт содержит простой тип данных char?

Ответ:

 (1)

 (2)

 (3) 4  

 (4) 8  


Номер 2
 Какое из приведенных ниже утверждений неверно?

Ответ:

 (1) шаблоны позволяют задать тип данных контейнера при создании контейнера 

 (2) шаблоны позволяют задать тип данных контейнера в runtime 

 (3) шаблоны позволяют типизировать параметры функций и находить ошибки во время компиляции 

 (4) на шаблонах построена часть стандартной библиотеки Java, которая работает с контейнерами 


Номер 3
 Интерфейс Iterator extends Iterable:

Ответ:

 (1) да  

 (2) нет 

 (3) нет, Iterable extends Iterator 


Упражнение 4:
Номер 1
 Контейнер для доступа к элементу по индексу за константное время:

Ответ:

 (1) ArrayList 

 (2) LinkedList 

 (3) Set 

 (4) Map 

 (5) Queue 


Номер 2
 Контейнер для поиска элемента по ключу:

Ответ:

 (1) ArrayList 

 (2) LinkedList 

 (3) Set 

 (4) Map 

 (5) Queue 


Номер 3
 Контейнер для удаления/добавления элементов в начало или конец контейнера за константное время:

Ответ:

 (1) ArrayList 

 (2) LinkedList 

 (3) Set 

 (4) Map 

 (5) Queue 


Упражнение 5:
Номер 2
 FIFO контейнер:

Ответ:

 (1) ArrayList 

 (2) LinkedList 

 (3) Set 

 (4) Map 

 (5) Queue 


Номер 3
 Любой поток – это объект?

Ответ:

 (1) да 

 (2) нет 


Упражнение 6:
Номер 1
 Можно ли использовать в коде ThreaD.currentThread().wait()?

Ответ:

 (1) да, это остановит выполнение текущего потока до тех пор, пока в другом потоке не будет вызван notify() по ссылке на объект этого треда 

 (2) да, это остановит выполнение текущего потока до тех пор, пока в другом потоке не будет вызван ThreaD.currentThread().notify() 

 (3) да, но если вызвать wait() на объекте потока ничего не произойдет 

 (4) нет, у потока нет метода wait() 


Номер 2
 Метод ThreaD.currentThread(), вызванный в методе void main(String args[]):

Ответ:

 (1) закончит работу с ошибкой 

 (2) вернет ссылку на первый, созданный в этот методе поток, если он был создан, иначе вернет null 

 (3) вернет ссылку на главный поток приложения 


Номер 3
 ThreaD.sleep(10):

Ответ:

 (1) остановит текущий поток на 10 секунд  

 (2) остановит все приложение на 10 секунд  

 (3) остановит текущий поток на 10 тактов процессора 

 (4) остановит текущий поток на 10 миллисекунд 

 (5) остановит текущей поток на 10 миллисекунд, если это не главный поток 


Упражнение 7:
Номер 1
 threaD.interrupt():

Ответ:

 (1) пошлет прерывание текущему потоку 

 (2) пошлет прерывание потоку, который представлен объектом thread 

 (3) остановит выполнение потока, который представлен объектом thread 

 (4) приведет к исключению InterruptedException в потоке thread 

 (5) приведет к исключению InterruptedException в потоке thread, только если этот поток спит 


Номер 2
 threaD.join():

Ответ:

 (1) остановит текущий поток до завершения потока thread 

 (2) остановит поток thread до завершения текущего потока 

 (3) потоки будут объединены, команды в них будут выполнены по очереди 


Номер 3
 private final int a = 1:

Ответ:

 (1) значение переменной нельзя изменить, оно всегда будет = 1 

 (2) значение переменной можно задать в конструкторе и после этого нельзя будет изменить 

 (3) значение переменной можно менять только в приватных методах 

 (4) значение переменной можно менять только в этом потоке 


Упражнение 8:
Номер 1
 private volatile int a = 1:

Ответ:

 (1) значение переменной будет закэшированно в локальной памяти процессора 

 (2) значение переменной нельзя кэшировать и надо всегда читать из общей памяти 

 (3) переменная доступна для потокобезопасного чтения из нескольких потоков одновременно 


Номер 2
 Какие операции атомарные?

Ответ:

 (1) i++ 

 (2) ++i  

 (3) чтение из памяти  

 (4) запись в память 

 (5) a+b 


Номер 3
 Для объекта, переданного в качестве параметра для ключевого слова synchronized внутри функции, верно: 

Ответ:

 (1) этот объект будет захвачен потоком при входе в синхронный участок и освобожден при выходе  

 (2) у этого объекта будет вызван метод wait() для всех потоков, кроме того, который вошел в синхронный участок  

 (3) данные этого объекта могут быть безопасно изменены из нескольких потоков 


Упражнение 9:
Номер 1
 Deadlock это:

Ответ:

 (1) ситуация в runtime, когда два потока ждут друг друга 

 (2) ситуация в runtime, когда поток захватил lock объект и хочет захватить его снова 

 (3) ошибка при компиляции, когда непонятно в каком порядке собирать модули 

 (4) ситуация в runtime, когда два потока одновременно меняют значение переменной и это приводит к потере результата 


Номер 2
 Следующие утверждения о наследовании в Java верны:

Ответ:

 (1) можно наследовать только один класс 

 (2) можно наследовать (реализовывать) только один интерфейс 

 (3) можно наследовать один класс и один абстрактный класс 

 (4) Можно наследовать только абстрактный класс 

 (5) Можно реализовывать сколько угодно интерфейсов 


Номер 3
 Класс Object это:

Ответ:

 (1) класс, от которого унаследованы все типы в Java 

 (2) класс, от которого унаследованы все библиотечные типы  

 (3) класс, от которого унаследованы все типы, кроме примитивных 


Упражнение 10:
Номер 1
 В Java можно создать свои классы и свои методы, зависящие от шаблонного типа?

Ответ:

 (1) да 

 (2) нет 

 (3) Только классы  

 (4) Только методы 


Номер 2
 Все коллекции в Java реализуют интерфейс:

Ответ:

 (1) Iterator 

 (2) Iterable 

 (3) Collections 


Номер 3
 У вас есть собственный класс MyClass и контейнер List<MyClass>.
Что нужно, чтобы отсортировать контейнер объектов класса MyClass с помощью Collections.sort(...)?

Ответ:

 (1) унаследовать MyClass от Comparable 

 (2) унаследовать MyClass от Collections 

 (3) унаследовать MyClass от Iterable 

 (4) перегрузить для MyClass операцию сравнения 


Упражнение 11:
Номер 1
 Отметьте верные утверждения о потоках:

Ответ:

 (1) каждое запущенное приложение это как минимум один поток 

 (2) у всех потоков одного приложения общая Heap память 

 (3) у всех потоков одного приложения общий Stack 

 (4) каждое приложение - это строго один поток 

 (5) потоки могут взаимодействовать только через Inter Process Communication ресурсы 

 (6) потоки могут порождать другие потоки и взаимодействовать с ними 


Номер 2
 Потоки могут взаимодействовать:

Ответ:

 (1) через общую память (heap) 

 (2) через общий стек 

 (3) через внешние ресурсы 


Номер 3
 Для функции, отмеченной ключевым словом synchronized, гарантированно:

Ответ:

 (1) только один поток может выполнять код этой функции для всех объектов этого класса 

 (2) только один поток может выполнять код функции каждого конкретного объекта этого класса 

 (3) только один поток может выполнять код этой функции для всех объектов этого класса, если функция статическая  


Номер 4
 Любой объект в Java может быть использован как lock для синхронного (synchronized) участка кода. Зачем?

Ответ:

 (1) это избыточность стандартной библиотеки, на практике она не нужна 

 (2) это нужно, чтобы у каждого объекта можно было вызвать wait() и notify() методы 

 (3) это нужно всем объектам, так как в любом классе может быть synchronized метод, а для такого метода сам объект будет lock объектом 

 (4) это нужно чтобы можно было задать массив lock объектов 

 (5) это нужно всем объектам, так как в любом классе может быть static метод, синхронность которого можно гарантировать только через lock на сам объект 




Главная / Программирование / Углубленное программирование на Java / Тест 23