Редактор собрал письменные вопросы тестирования в очень популярном интервью 2017 года для друзей, которые интервьюируют программисты Java. Если вы читатель, который готовится к интервью с программистами Java, выучите это быстро.
1. Следующее утверждение верно ()
A. Два публичных модифицированных класса могут существовать одновременно в файле.
B. Конструктор может быть переопределен
C. Подклассы не могут получить доступ к свойствам, которые не изменяются родительским классом общественным и защищенным.
D.final Modified Class можно унаследовать
Ответ: c
В исходном файле Java может быть только один публичный класс. Когда есть открытый класс, имя исходного файла должно соответствовать ему, в противном случае его нельзя составить. Если в исходном файле нет открытого класса, между именем файла и классом нет требований к согласованности. Что касается main (), его не нужно помещать в публичный класс для запуска программы.
Перезапись - это изменение методов родительского класса после того, как урок дочернего класса будет наследуется от родительского класса. Имя метода, параметр и возвратное значение должны быть одинаковыми. Методы, отмеченные финалом, не могут быть переписаны. Если вы не можете наследовать метод, вы не можете переопределить этот метод.
Расширение: разница между перезагрузкой и перегрузкой перегрузки и перегрузкой
Метод Java перегрузка
Это то, что в классе можно создать несколько методов, которые имеют одинаковое имя, но имеют разные параметры и разные определения. При вызове методов конкретный метод определяется количеством различных параметров и типов параметров, передаваемых им. Типы возвращаемых значений могут быть одинаковыми или разными, что также является объектно-ориентированным полиморфизмом.
Метод Java переписывает
Полиморфизм между родительским классом и классом ребенка переопределяет функции родительского класса. Если метод, определенный в подклассе, имеет одинаковое имя и параметры, что и его родительский класс, мы говорим, что метод переоценен. В Java подклассы могут наследовать методы от родительского класса, не переписывая тот же метод. Но иногда подкласс не хочет наследовать методы родительского класса, а скорее хочет внести определенные модификации, которые требуют переписывания метода. Перезапись метода также называется перезаписанием метода.
Если метод в подклассе имеет одинаковое имя метода, тип возврата и таблицу параметров, что и метод в родительском классе, новый метод будет переопределять исходный метод. Если вам нужен оригинальный метод в родительском классе, вы можете использовать супер -ключевое слово, которое относится к родительскому классу текущего класса.
Разрешения на модификацию доступа функций подкласса не могут быть меньше, чем у родительского класса;
Методы переписывания могут существовать только в отношениях наследования, а методы переписывания могут переписать только методы, которые не являются частными в родительском классе.
2. Количество времени выполнения для (int x = 0, y = 0; (y! = 0) && (x <4); x ++)
А. Неограниченное время
B. Выполнить 4 раза
C. Выполнить 3 раза
D. Не выполняйте его один раз
Ответ: D.
Первоначальное значение y равно 0. Во всем для цикла значение y остается неизменным, поэтому утверждение суждения (y! = 0) не верно, поэтому оно не выполняется один раз.
3. Что касается кучи Java, следующее утверждение неверно ()
A. Все экземпляры и массивы классов выделяются памятью на куче.
B. Хиповая память, занятая объектом, собирается автоматической системой управления памятью.
C. Хиповая память состоит из выживающих и мертвых объектов и свободных фрагментов.
D. Массивы выделяются в стеке
Ответ: D.
Прежде всего, массив выделяется в куче, поэтому утверждение D неверно.
Структура кучи Java: куча JVM - это область данных времени выполнения, а все экземпляры и массивы классов выделяются памятью на куче. Это создано, когда JVM начинается. Память кучи, занятая объектом, собирается автоматической системой управления памятью, то есть коллекционером мусора. Хиповая память состоит из объектов, которые выживают и умирают. Выжившие объекты доступны для приложения и не будут собирать мусор. Мертвый объект - это объект, который не доступен для приложения и не был переработан коллекционером мусора. Они будут занимать пространство памяти кучи, пока коллектор мусора не восстановит эти объекты.
4. При использовании супер и этого ключевых слов правильное описание ниже ()
A. Используйте Super () в конструкторе подкласса, чтобы отобразить конструктор, который называет родительский класс;
Super () должен быть записан на первой строке конструктора подкласса, в противном случае компиляция не будет передана.
B.super () и это () не нужно размещать в первой строке в методе конструктора
C. This () и Super () могут появляться в конструкторе одновременно
D. This () и Super () могут использоваться в статических средах, включая статические методы и статические блоки операторов
Ответ: а
Ключевое слово Java, которое можно использовать только в теле метода. Когда создается объект, виртуальная машина Java (JVM) назначит указатель объекту, который относится к себе, и название этого указателя является этим. Следовательно, это может использоваться только в нестатических методах в классе, и это не должно появляться в статических методах и статических блоках кода.
Ключ к Super аналогичен этому, который состоит в том, что заблокированная переменная элемента или метод члена становится видимой или используется для обозначения переменной заблокированной элемента и метода члена.
Тем не менее, Super используется в подклассах, с целью доступа к заблокированным членам в классе прямого родительского класса. Обратите внимание, что это прямой родительский класс (это самый последний суперкласс выше класса)
5. Какое из следующих утверждений верно ()
A. После составления Java -программы будет создан машинный код
B. Программа Java будет производить байтовый код после его составления.
C. Java программы будут генерировать DLL после составления
D. Ничто из вышеперечисленного не верно
Ответ: б
Java Bytecode - это промежуточный файл, сгенерированный компиляцией исходного файла Java
Кроссплатформенная природа виртуальных машин Java-это воображаемый компьютер, который может запускать Java Bytecode. Это также относительно похоже на другие языки программирования.
Давайте сначала представим процесс компиляции языка C: файл C составлен программой компилятора C и генерирует исполняемый файл исполняемого файла Windows, а затем выполняет его в Windows.
Давайте представим процесс компиляции Java: файл Java составлен компилятором Java. Файл Java Bytecode - это файл класса в виртуальной машине Java. Машинный код выполняется ЦП; Java составлена с ByteCode.
Компьютеры могут запускать только машинные коды. Когда Java работает, она превращает Bytecode в машинный код. C/C ++ непосредственно скомпилируется в машинный код при компиляции
6. Какое из следующих утверждений верно ()
A. Аннотация модификатор изменяет поля, методы и классы
B. Часть тела абстрактного метода должна быть обернута в пару скобков {}
C. объявить абстрактные методы, скобки являются необязательными
D. Объявить абстрактные методы не могут быть написаны в брекетах
Ответ: D.
Абстрактный модификатор используется для изменения классов и методов членов
Классы, модифицированные абстрактными, представляют абстрактные классы. Абстрактные классы расположены в абстрактном слое дерева наследования. Абстрактные классы не могут быть созданы.
Абстрактный метод используется для выражения абстрактного метода, а абстрактный метод не имеет тела метода. Абстрактные методы используются для описания того, какие функции выполняют систему, но не предоставляют конкретные реализации.
Аннотация является важным ключевым словом в Java и может использоваться для изменения класса или метода.
При изменении метода это означает, что метод имеет только подпись функции (подпись) и не имеет конкретных реализаций, но оставляет конкретную реализацию подклассу, который наследует класс, поэтому не может быть скоб.
7. Следующие утверждения верны ()
A. Конструктор в классе не может быть пропущен
B. Конструктор должен иметь то же имя, что и класс, но метод не может иметь то же имя, что и в классе
C. Конструктор выполняется, когда объект является новым
D. класс может определить только один конструктор
Ответ: c
Здесь могут быть недоразумения. На самом деле, обычные методы класса могут иметь то же имя, что и имя класса. Единственная разница между ними и конструктором заключается в том, что конструктор не имеет возврата.
8. Это нить GC Deemon Thread ()
Ответ: Да
Потоки делятся на потоки демона и потоки без даемонов (то есть пользовательские потоки).
До тех пор, пока в текущем экземпляре JVM нет нити, не являющейся бездоновой, поток демона все будет работать; Только когда заканчивается последняя нить не-дамон, поток демона закончится работой с JVM.
Наиболее типичным применением нитей демона является GC (Collector Carbage)
9. относительно Sleep () и Wait (), следующая ошибка - ()
A. Сон - это метод класса потока (поток), подождите - это метод класса объекта;
B. Сон не выпускает блокировку объекта, подождите оставлять блокировку объекта;
C. Сон пауза, но состояние мониторинга остается и автоматически возобновится после окончания;
D. После ожидания введите бассейн ожидания. Только после выпуска метода уведомления для этого объекта получается блокировка объекта и входит в состояние работающего.
Ответ: D.
Сон - это метод класса потока (поток), заставляющий этот поток приостановить выполнение в течение определенного времени и предоставлять возможности выполнения другим потокам, но состояние мониторинга остается и автоматически возобновится после этого. Вызов Sleep не выпустит блокировку объекта.
Подождите, метод объектного класса. Вызов метода ожидания в этом объекте заставляет поток отказаться от блокировки объекта и ввести пул ожидания, ожидающий этого объекта. Только после выпуска метода уведомления (или уведомления) для этого объекта этот поток входит в пул блокировки объекта и готовится к получению блокировки объекта и входит в состояние работы.
10. Метод Resume () отвечает за восстановление выполнения, какие потоки ()
A, поток, который останавливается, вызывая метод Stop ().
B, нить, которая останавливается при вызове метода Sleep ().
C, поток, который останавливается, вызывая метод wait ().
D, поток, который останавливается, вызывая метод приостановки ().
Ответ: D.
Приостановка может приостановить поток, что означает приостановление потока. Он занимает ресурсы, но не работает. Используйте резюме, чтобы восстановить подвесную поток и позвольте потоке продолжать выполнять.