Try English version of Quizful



Раздаем бесплатные Q! подробности в группе Quizful.Alpha-test
Партнеры
Рекрутерам: Прескрининг кандидатов about
Топ контрибуторов
loading
loading
Знаете ли Вы, что

Вы можете подписаться на RSS ленту новых тестов сервиса Quizful, в том числе и отдельно по каждой категории

Лента обновлений
ссылка 04:28:22
Комментарий от SuperEgor:
как раз для Junior'a вопрос ))
ссылка Aug 19 17:40
Комментарий от scyber:
Мы создаем наследника абстрактного в вииде анонимного - ...
ссылка Aug 19 09:39
Комментарий от elenalizina:
Ясно, просто моя ошибка была именно в приведении тип...
ссылка Aug 19 02:46
Комментарий от Croessmah:
Суть вопроса не в этом. Не смотря на то, что B унаслед...
ссылка Aug 18 22:27
Комментарий от Didulka:
Резервируем две ячейки в одну записываем первое сравнива...
Статистика

Тестов: 152, вопросов: 8545. Пройдено: 376208 / 1821954.

Java - Основы - Общие вопросы (basics)

Общие вопросы по Java

Одним из разделов в тесте по Java является раздел общих вопросов. Сюда входят вопросы следующего плана:

  • Основные термины (класс, объект, и т.д.)
  • Основные аббревиатуры (JDK, JRE, и т.д.)
  • Понимание принципов работы виртуальной машины java
  • Понимание принципов работы сборщика мусора (garbage collector)
  • Умение запустить простую программу

На что обратить внимание

В первую очередь при ответе на любой вопрос нужно четко понять, о чем идет речь в вопросе. Это особенно важно для сложных вопросов.

Если вопрос содержит фрагмент кода на java сперва убедитесь, что код компилируется, затем пересмотрите код на возможные ошибки времени выполнения (runtime exceptions) и только потом переходите к "выполнению" кода в уме.

Если в вопросе требуется выбрать несколько вариантов ответов, не спешите и прочтите все варианты, затем начните читать еще раз и отмечайте правильные, и наконец прочтите варианты ответов еще раз чтобы убедиться в правильности ответов.

Примеры общих вопросов по Java

Ниже представлены несколько примеров общих вопросов по Java с указанием правильных ответов и минимальным объяснением.

Пример 1

Что произойдет после компиляции кода и запуска программы без аргументов:


public class Main {
    public static void main(String[] args) {
        System.out.println(args.length);
    }
} 
  • 1. Код не скомпилируется
  • 2. Код скомпилируется, но во время выполнения будет выброшено исключение NullPointerException
  • 3. Код скомпилируется, а на консоль будет выведено число '0'
  • 4. Код скомпилируется, но ничего не выведет на консоль

Правильным ответом бует ответ номер 3. Метод main является точкой входа в любую программу на java. Данный метод может принимать параметры снаружи. Эти параметры помещаются в массив и затем могут использоваться внутри программного кода. Массив аргументов инициализируется изначально, а значит NullPointerException брошен не будет, даже при нулевом количестве аргументов.

Пример 2

Как можно уничтожить объект в Java?

  • 1. присвоить null всем ссылкам на объект
  • 2. вызвать Runtime.getRuntime().gc()
  • 3. вызвать метод finalize() у объекта
  • 4. этого нельзя сделать вручную
  • 5. вызвать деструктор у объекта

Правильный ответ - 4 - этого нельзя сделать вручную. Метод finalize используется в основном для освобождения ресурсов перед уничтожением объекта. Понятия деструктор в java нет (деструкторы есть в c++).

Вызов Runtime.getRuntime().gc() всего лишь дает запрос виртуальной машине о том, что было бы неплохо начать сборку мусора.

Наконец присвоение всем ссылкам на объект значения null сделает объект доступным для сборщика мусора, но нет никакой гарантии, когда сборка мусора начнется и начнется ли вообще.