В продолжение нашей предыдущей статьи 101 основной вопрос для собеседования по Java, чтобы пройти собеседование, это вторая часть.

Читать первую часть — 101 основной вопрос на собеседовании по Java, чтобы пройти собеседование — Часть 1

Q.51: Какова цель ключевого слова throw в java?

Ключевое слово throw используется для явного создания исключения в java. Мы можем генерировать либо проверенное, либо непроверенное исключение. Но ключевое слово throw обычно используется для создания пользовательского или определяемого пользователем исключения.

Q.52: Какова цель ключевого слова throws в java?

«Броски» — это ключевое слово в обработке исключений Java, которое используется в сигнатуре метода, указывающее, что этот метод может генерировать одно из перечисленных исключений. Вызывающий эти методы должен обрабатывать исключение с помощью блока try-catch.

Q.53: Что такое утверждения в Java?

Утверждения — это операторы в java. Его можно использовать для проверки ваших предположений о программе. При выполнении утверждения предполагается, что оно истинно. В случае сбоя JVM выдаст ошибку AssertionError. Он в основном используется для целей тестирования.

Сканер сканер = новый сканер (System.in); System.out.print («Введите число»); целое значение = scan.nextInt(); утвердить значение ›= 18 : «Недействительно»; System.out.println («значение равно» + значение); сканер.закрыть();

Сканер сканер = новый сканер (System.in);

System.out.print («Введите число»);

целое значение = scan.nextInt();

утвердить значение ›= 18 : «Недействительно»;

System.out.println («значение равно» + значение);

Q.54: Объясните абстрактный класс?

Класс, объявленный с использованием ключевого слова abstract, называется абстрактным классом. Он может иметь абстрактные методы (только объявление метода без тела), а также конкретные методы (обычные методы с телом).

Абстрактные классы не могут быть созданы и требуют подклассов для реализации абстрактных методов.

Если мы наследуем абстрактный класс, то должны предоставить реализации всем абстрактным методам в нем. Абстрактный класс может иметь элемент данных, абстрактный метод, тело метода и конструктор. Абстрактный класс обеспечивает абстракцию от 0 до 100%.

Q.55: Почему мы не можем создать объект абстрактного класса?

Абстрактный класс подобен шаблону, поэтому вы должны расширить его и потребовать, чтобы подклассы предоставляли реализации для абстрактных методов. Так что эти классы неполные, у них есть абстрактные методы, которых нет ни у кого.

поэтому, если Java позволяет вам создать объект этого класса, то, если кто-то вызовет абстрактный метод, используя этот объект, что произойдет, поскольку не будет фактической реализации вызываемого метода. Вот почему объекты абстрактного класса не допускаются.

Q.56: Что такое интерфейс.

Интерфейс в Java — это механизм для достижения стопроцентной абстракции.

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

Класс, реализующий интерфейс, должен реализовать все методы, объявленные в интерфейсе. Методы должны иметь точно такую ​​же сигнатуру, как объявлена ​​в интерфейсе.

Поля интерфейса являются общедоступными, статическими и конечными по умолчанию, а методы являются общедоступными. Множественное наследование, не поддерживаемое в Java, достигается через интерфейс. Мы можем использовать интерфейсы в Java как способ достижения полиморфизма.

Q.57: Что такое маркер или тегированный интерфейс?

Интерфейс, не имеющий элементов, называется маркерным или тегированным интерфейсом. Например, Serializable, Cloneable, Remote и т. д. Он используется для предоставления некоторой важной информации для JVM.

Например, интерфейс Cloneable используется для пометки клонирования объекта, а интерфейс Serializable — для пометки сериализации и десериализации объекта. Маркерные интерфейсы дают инструкции JVM о том, что классы, реализующие их, будут иметь особое поведение и должны обрабатываться с осторожностью.

Q.58: В чем разница между абстрактным классом и интерфейсом?

абстрактный класс интерфейс Абстрактный класс обеспечивает частичную абстракцию. Интерфейс обеспечивает полную абстракцию. Он может иметь абстрактные методы, а также конкретные методы. Интерфейс содержит только абстрактные методы (Java 8 предоставляет методы по умолчанию и статические методы). Абстрактный класс может иметь переменную static, final или static final с любым спецификатором доступа. интерфейс может иметь только общедоступную статическую конечную переменную. Абстрактные классы могут иметь конструкторы Интерфейсы не могут иметь конструкторов. Абстрактные классы могут расширять другие классы и реализовывать интерфейсы. Интерфейс может только расширять другие интерфейсы. Подкласс может расширять только один интерфейс абстрактного класса, реализуя несколько интерфейсов. Абстрактный класс может содержать метод main() Интерфейс не может содержать метод main().

Q.59: Какие модификаторы разрешены для методов интерфейса?

Только 2 модификатора используются с методами интерфейса, то есть общедоступными и абстрактными.

Q.60: Как ключевое слово super используется с конструкторами?

Конструкторы используют ключевое слово super для вызова конструктора суперкласса. Если конструктор использует ключевое слово super, он должен использовать его в первой строке; в противном случае возникнет ошибка времени компиляции.

Q.61: Что такое System.out.println?

  • System: System — это класс в пакете java.lang.
  • out: out является статическим членом класса System и экземпляром java.io.PrintStream.
  • println: println — это метод java.io.PrintStream.

Q.62: Что такое одноэлементный класс в java?

Синглтон — это класс, который создается ровно один раз в виртуальной машине Java. Одноэлементные шаблоны используются в логировании, кэшах, пулах потоков, настройках конфигурации, объектах драйверов устройств.

Как реализовать одноэлементный класс

  1. Сделать конструктор приватным
  2. Объявить объект статической переменной класса
  3. Объявите статический метод для возврата экземпляра

Q.63: Что такое вложенный класс?

Класс внутри класса называется вложенным классом. Класс, написанный внутри, называется вложенным классом, а класс, содержащий внутренний класс, называется внешним классом.

Класс Внешний Класс { Класс Внутренний Класс { … } }

Существует 2 типа вложенных классов.

  1. Нестатические вложенные классы или внутренний класс — это нестатические члены класса.
  2. Статические вложенные классы — это статические члены класса.

Q.64: Что такое внутренний класс в Java.

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

Кроме того, он может получить доступ ко всем членам внешнего класса, включая частные данные.

Существует 3 типа внутреннего класса.

  1. Внутренний класс члена: класс, созданный внутри класса.
  2. Анонимный внутренний класс: класс, созданный для реализации интерфейса или класса расширения.
  3. Локальный внутренний класс: класс, написанный внутри метода.

Q.65: Что такое локальный внутренний класс.

Этот тип класса написан внутри метода, и область действия этого класса ограничена только этим методом. Мы должны создать экземпляр этого класса внутри метода, в котором определен внутренний класс.

Q.66: Что такое статический вложенный класс?

Статический класс, созданный внутри класса, называется статическим вложенным классом в java, который является статическим членом внешнего класса. Он не может получить доступ к нестатическим элементам данных и методам внешнего класса. Доступ к нему можно получить по имени внешнего класса.

При этом нет необходимости создавать объект внешнего класса, потому что вложенный класс имеет статический тип.
Он может обращаться к статическим членам данных внешнего класса, включая частные.

Q.67: Что такое внутренний класс Anonymous?

Класс без имени известен как анонимный внутренний класс. Анонимный класс определяется и создается в одном операторе.

Анонимный внутренний класс, созданный с помощью расширения класса или реализации интерфейса.
Поскольку анонимный внутренний класс не имеет имени, невозможно определить конструктор для анонимного класса. Анонимные внутренние классы доступны только в том месте, где они определены.

Thread anon = new Thread(new Runnable() { @Override public void run() { System.out.println("Выполняется поток с анонимным классом!"); } }); анон.старт();

Thread anon = новый поток (новый Runnable () {

System.out.println("Выполняется поток с анонимным классом!");

Q.68: Что такое Enum в Java?

Перечисление — это тип данных, представляющий собой набор констант. Он добавлен из Java 5. Константы перечисления java неявно статические и окончательные. enum можно использовать в ведьме, можно пройти. enum может включать поля, конструкторы и методы.

public enum days { MON,TUE,WED,THU,FRI,SAT,SUN; }

ПН,ВТ,СР,ЧТ,ПТ,СБ,ВС;

Q.69: Каково назначение метода values() в Enum?

Все типы enum автоматически получают метод static values() компилятором Java. Метод values() возвращает массив, содержащий все значения перечисления.

public class EnumDemo { public enum weekdays { MON, TUE, WED, THU, FRI, SAT, SUN } public static void main(String[] args) { for (weekdays week: weekdays.values()) { System.out.println (неделю); } } }

ПН, ВТ, СР, ЧТ, ПТ, СБ, ВС

public static void main(String[] args) {

for (будние дни недели: weekdays.values()) {

System.out.println(неделя);

Q.70: Что такое стек Java и память кучи?

СТЕК:память стека — это пространство для потока выполнения. Это временная память, в которой хранятся значения локальных переменных при вызове их методов. После завершения выполнения метода память, содержащая эти значения, становится неиспользуемой, а затем очищается, чтобы освободить место для новых методов.

Стек зарезервирован по шаблону LIFO, последний зарезервированный блок всегда является следующим освобождаемым блоком. Когда вызывается новая функция, в стеке создается новый блок памяти. Этот новый блок будет хранить локальные значения, вызванные функцией, и ссылки на объекты, хранящиеся в куче, используемой методом.

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

HEAP: стек — это статическое выделение памяти, но куча используется для динамического выделения памяти.

Все классы среды выполнения загружаются в память кучи при запуске программы. Куча памяти используется для хранения объектов и классов JRE в Java, все объекты создаются в куче памяти и имеют глобальный доступ, и на них можно ссылаться из любой точки программы.

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

Q.71: Какие способы используются для создания строкового объекта в java?

Есть два способа создать объект String:

  1. По строковому литералу: String str = ”java”;
  2. По новому ключевому слову: String str = new String("java");

Q.72: Что такое изменяемые и неизменяемые строковые объекты?

Неизменяемые объекты подобны константам, которые нельзя изменить. Класс String используется для создания неизменяемой строки.

Изменяемые объекты изменяемы. Классы StringBuffer и StringBuilder используются для создания изменяемой строки.

Q.73: Как сравнить две строки в Java?

Методы equals() и equalsIgnoreCase() используются для сравнения со строками.

Строка s3="scos"; Строка s4="SCOS"; Строка s5="scos"; Строка s6="stes" ; System.out.println («вывод метода equals()»); System.out.println(s3.equals(s5));//true, поскольку содержимое и регистр совпадают System.out.println(s3.equals(s4));//false, поскольку регистр не совпадает System.out.println (s3.equals(s6));//false, поскольку содержимое отличается System.out.println(s3.equalsIgnoreCase(s4));//true, поскольку регистр игнорируется

System.out.println («вывод метода equals()»);

System.out.println(s3.equals(s5));//true, потому что содержимое и регистр совпадают

System.out.println(s3.equals(s4));//false, потому что регистр не тот

System.out.println(s3.equals(s6));//false, потому что содержимое не совпадает

System.out.println(s3.equalsIgnoreCase(s4));//true, потому что регистр игнорируется

Q.74: Почему в Java строки сделаны неизменяемыми?

Неизменяемые объекты подобны константам, которые нельзя изменить. Например

Строка str = новая строка («java»); ул.вверхнем регистре(); Система.out.println(строка);

Строка str = новая строка («java»);

Этот код выведет «java» в качестве вывода, он не будет преобразовывать строку str в верхний регистр, потому что класс String является неизменяемым или окончательным.

Причина в том, что строковые литералы хранятся в пуле констант String и совместно используются многими приложениями. Поэтому из соображений безопасности строки в Java делаются неизменяемыми. Мы можем использовать строки в многопоточности без синхронизации, поэтому строки являются потокобезопасными.

Q.75: Сколько объектов будет создано с помощью следующего кода?

Строка str1 = «opencodez»; Строка str2 = «opencodez»;

Строка str1 = «opencodez»;

Строка str2 = «opencodez»;

Будет создан только один строковый объект. Str1 создает новый строковый объект в области памяти кучи, и ссылка на эту строку будет добавлена ​​в пул констант String. В str2 та же самая ссылка, хранящаяся в пуле строковых констант, будет назначена для str2.

Q.76: Сколько объектов будет создано с помощью следующего кода?

Строка str1 = новая строка («opencodez»); Строка str2 = «opencodez»;

Строка str1 = новая строка («opencodez»);

Строка str2 = «opencodez»;

Приведенным выше кодом будут созданы два строковых объекта, которые будут храниться в куче.

Q.77: Что делает метод String intern()?

Это процесс создания строкового объекта в пуле строковых констант, который будет точной копией строкового объекта в куче памяти. Intern относится к строковому объекту в пуле строковых констант. Метод Intern() присутствует в классе java.lang.String.

Этот метод сначала проверяет, существует ли объект с тем же содержимым в пуле строковых констант. Если объект отсутствует в пуле, он создаст объект с тем же содержимым в пуле строковых констант и вернет ссылку на этот объект. Если объект присутствует в пуле, он возвращает ссылку на этот объект без создания нового объекта.

Вопрос 78: Что такое пул строковых констант?

Пул строковых констант, представленный внутри раздела памяти, называется кучей. Это часть памяти, которая используется для выполнения операций, работы с классами и объектами. Когда вы объявляете новую строку в Java, происходит следующее
Мы создаем новую строковую переменную с именем str и присваиваем ей значение.

String str1= «Привет, Нита»;

Java не только создаст переменную str1, но и выделит место в памяти для буквального значения «Hello Nita». Эта область памяти называется пулом строковых констант. Это похоже на пул строковых значений, доступных для других частей программы.

Теперь, если вы создали другую переменную, скажем, str2, а также присвоили ей значение «Hello Nita», Java просто повторно использует значение, которое уже находится в пуле.

Если мы создадим новый экземпляр класса String, пул констант будет работать по-другому. Теперь создайте еще одну переменную, str3, и также присвойте ей такое же буквальное значение. Однако на этот раз мы создадим новый экземпляр класса String:

Строка str3= новая строка («Привет, Нита»);

Когда этот код будет обработан, теперь Java будет реагировать по-другому. Вместо повторного использования одного и того же литерала будет создано НОВОЕ значение в памяти. В этом случае он создает его НЕ в пуле строковых констант, а в куче памяти.

Вопрос 79: В чем сходство и различие между классом String и StringBuffer и StringBuilder?

String StringBuffer StringBuilder String является неизменяемым StringBuffer является изменяемым StringBuilder является изменяемым Объект, созданный как

Строка хранится в

Постоянный пул строк

Хранится в куче Хранится в куче Потокобезопасный (строка не может использоваться двумя потоками одновременно.) Потокобезопасный (строка не может использоваться двумя потоками одновременно.) Непотокобезопасный (строка может использоваться двумя потоками одновременно.) Быстро Медленно Быстрый

Q.80: Почему массив char лучше, чем String для хранения пароля?

Строки неизменяемы, поэтому содержимое строк нельзя изменить, потому что любая попытка изменить строку приведет к созданию новой строки, а если вы используете массив char, вы все равно можете установить все его элементы как пустые или нулевые.

Поскольку строки неизменяемы в Java, если вы храните пароль в виде обычного текста, он будет доступен в памяти до тех пор, пока сборщик мусора не очистит его, а поскольку строка используется в пуле строк для повторного использования, существует довольно высокая вероятность того, что он останется в памяти в течение длительного времени. , что представляет угрозу безопасности. Поскольку тот, кто обращается к дампу памяти, может найти пароль в открытом виде, и именно поэтому вы всегда должны использовать зашифрованный пароль, а не обычный текст.

Таким образом, хранение пароля в массиве символов явно снижает риск кражи пароля.

Q.81: Сколько объектов будет создано для следующего кода и где они будут храниться?

Строка str1 = новая строка («привет»); Строка str2 = новая строка («привет»);

Строка str1 = новая строка («привет»);

Строка str2 = новая строка («привет»);

Будут созданы два объекта, и они будут храниться в куче памяти.

Q.82: Является ли строка потокобезопасной в Java?

Да.Поскольку строки неизменяемы, мы не можем изменить их значение в программе. Из-за этого он является потокобезопасным и может совместно использоваться несколькими потоками.

Q.83: Каково назначение метода trim()?

Метод обрезки строк Java удаляет начальные и конечные пробелы. Значение пробела в Юникоде — ‘ ’. Метод trim() проверяет это значение Unicode до и после строки, если оно существует, затем удаляет пробелы и возвращает строку с опущенными начальными и конечными пробелами.

Q.84: Что такое JDK, JRE, JVM?

JVM: виртуальная машина Java (JVM) — это абстрактная вычислительная машина, которая позволяет компьютеру запускать программу Java. Он преобразует байт-код Java (файл .class) в машинный язык. JVM является частью JRE (Java Run Environment). Java не зависит от платформы, но JVM зависит от платформы. JVM — это механизм, управляющий кодом Java.

JDK: JDK называется Java Development Kit, который существует физически. Это комплект, внутри которого находится JRE вместе с инструментами разработки, такими как javac, javap, java, javadoc и т. д. Он в основном используется программистами и разработчиками.

JRE: это называется Java Runtime Environment, он используется как пакет, который предоставляет среду для запуска Java-программы на вашем компьютере. Он сочетает в себе JVM, базовые классы платформы и вспомогательные библиотеки. JRE является частью пакета Java Development Kit (JDK), но его можно загрузить отдельно.

Q.85: В чем разница между ArrayList и Vector

1. Синхронизация и потокобезопасность
Vector синхронизируется, а ArrayList не синхронизируется. Синхронизация и потокобезопасность означают, что одновременно только один поток может получить доступ к коду. В классе Vector все методы синхронизированы. Вот почему объект Vector уже синхронизирован при его создании.

2. Производительность
Vector работает медленно, поскольку он является потокобезопасным. Для сравнения, ArrayList работает быстро, поскольку не синхронизируется. Таким образом, в ArrayList два или более потока могут одновременно обращаться к коду, в то время как Vector ограничен одним потоком за раз.

3. Автоматическое увеличение емкости
Вектор по умолчанию удваивает размер своего массива. Когда вы вставляете элемент в ArrayList, он увеличивает размер своего массива на 50%. По умолчанию размер ArrayList равен 10. Он проверяет, достиг ли он последнего элемента, затем создает новый массив, копирует новые данные последнего массива в новый массив, затем старый массив представляет собой мусор, собранный виртуальной машиной Java ( JVM).

4. Установить размер приращения
ArrayList не определяет размер приращения. Вектор определяет размер приращения.

5. Счетчик

Помимо Hashtable, Vector является единственным другим классом, который использует как Enumeration, так и Iterator. В то время как ArrayList может использовать Iterator только для обхода ArrayList.

Вопрос 86: В чем разница между Iterator и ListIterator?

  • Итератор может перемещаться в одном направлении, т.е. только в прямом направлении, тогда как ListIterator может использоваться для перемещения в обоих направлениях, т.е. Прямое и обратное направление.
  • Мы не можем добавить элемент в коллекцию при обходе ее с помощью Iterator, он выдает Exception, когда вы пытаетесь это сделать. Но мы можем добавить элемент в любой момент времени при обходе списка с помощью ListIterator.
  • Итератор используется для обхода списка и набора, а ListIterator используется для обхода списка.
  • В итераторе есть 3 метода: hasNext(), next(), remove().

В ListIterator есть следующие методы: add(E e), hasNext(), hasPrevious(), next(), nextIndex(), previous(), previousIndex(), remove(), set(E e)

  • Мы не можем заменить существующее значение элемента при использовании Iterator, но с помощью метода set(E e) ListIterator мы можем заменить последний элемент, возвращаемый методами next() или previous().

Q.87: В чем разница между Iterator и Enumeration?

У Iterator есть метод remove(), а у Enumeration его нет. Следовательно, используя итератор, мы можем манипулировать объектами, добавляя и удаляя объекты из коллекций. Перечисление может только проходить объекты и извлекать их.

Вопрос 88: В чем разница между Array и ArrayList?

Массив ArrayList Объявление массива

интервал [] = новый интервал [10]

Объявление списка массивов

ArrayList‹Type› arr = new ArrayList‹Type›();

Массив - это структура данных фиксированной длины. Мы не можем изменить длину массива после его создания в Java. ArrayList — это класс Collection переменной длины. Изменения длины в ArrayList. Массив хранит как примитивные данные, так и объекты. ArrayList хранит только объекты, а не примитивные данные. Массивы могут быть многомерными. Он не может быть многомерным. Элементы добавляются с помощью оператора присваивания. Элементы добавляются с помощью метода add(). Размер массива проверяется с помощью атрибута length. Размер ArrayList можно проверить с помощью метода size(). Массивы можно повторять с помощью цикла for. В ArrayList итераторы используются для перебора их элементов.

Вопрос 89: В чем разница между ArrayList и LinkedList?

ArrayList LinkedList ArrayList внутренне использует динамический массив для хранения элементов. LinkedList внутренне использует двусвязный список для хранения элементов. Вставки в ArrayList выполняются медленно.
потому что в худшем случае, если массив заполнен, возникают дополнительные затраты на изменение размера массива и копирование элементов в новый массив, что делает время выполнения операции добавления в ArrayList O(n) за в лучшем случае это O (1). Вставки в LinkedList обычно выполняются быстрее, чем в ArrayList. Для вставки требуется операция O(1). В ArrayList нам нужно написать собственный код для перебора ArrayList в обратном направлении. В LinkedList он может выполняться в обратном направлении с помощью функции по убываниюIterator(). ArrayList требует меньше памяти, он поддерживает индексы и данные элементов. LinkedList требует больше памяти, чем ArrayList, потому что каждый узел в LinkedList хранит ссылку на предыдущий и следующий элементы.

Вопрос 90: В чем разница между HashMap и Hashtable?

HashMap Hashtable HashMap не синхронизирован.

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

Hashtable синхронизирован.

Он потокобезопасен и может использоваться в многопоточной среде.

HashMap допускает один нулевой ключ и несколько нулевых значений. Hashtable не допускает нулевого ключа или значения. HashMap — это новый класс, представленный в JDK 1.2. Hashtable — это устаревший класс. HashMap работает быстро. Hashtable работает медленно. Мы должны использовать следующий метод, чтобы сделать HashMap синхронизированной
Map m = Collections.synchronizedMap(hashMap); Hashtable внутренне синхронизирован и не может быть рассинхронизирован. HashMap просматривается Iterator. Hashtable проходит Enumerator и Iterator. Итератор в HashMap работает безотказно. Перечислитель в Hashtable не является отказоустойчивым.

Вопрос 91: В чем разница между HashSet и TreeSet?

HashSet TreeSet HashSet не поддерживает порядок элементов Элементы TreeSet по умолчанию сортируются в порядке возрастания. HashSet может хранить одно нулевое значение. TreeSet не допустит нулевой объект, иначе он вызовет исключение нулевого указателя. HashSet использует метод equals() для сравнения. TreeSet использует метод compareTo() для поддержания порядка. Он внутренне реализован с использованием HashMap. Внутренне реализован с помощью TreeMap. Он быстрее. Он медленный.

Вопрос 92: В чем разница между отказоустойчивым и отказоустойчивым итератором?

  1. На отказоустойчивый итератор никакие изменения в коллекции не повлияют. Отказоустойчивые итераторы выбрасывают ConcurrentModificationException, если происходит структурная модификация коллекции.
  2. Fail Safe Iterator делает копию внутренней структуры данных (массива объектов) и выполняет итерацию по скопированной структуре данных. Любая структурная модификация, выполненная в итераторе, влияет на скопированную структуру данных, исходная структура которой остается неизменной. Следовательно, отказоустойчивый итератор не выдает исключение ConcurrentModificationException.
  3. В отказоустойчивом итераторе нет накладных расходов на поддержание скопированной структуры данных. Они используют исходную коллекцию для обхода элементов коллекции.
  4. Отказоустойчивый итератор требует дополнительной памяти (поскольку он делает копию внутренней структуры данных)
  5. Fail-fast требует меньше памяти.

Вопрос 93. Какие классы коллекций являются потокобезопасными?

Vector, Hashtable, Properties и Stack являются синхронизированными классами или называются потокобезопасными, поэтому их можно использовать в многопоточной среде.

Вопрос 94: Каковы основные интерфейсы Java Collections Framework?

Java Collections Framework предоставляет набор интерфейсов и классов, которые поддерживают операции над коллекцией. Самые основные интерфейсы в Java Collections Framework:

Коллекция: представляет собой группу объектов, известных как ее элементы.

Set: это коллекция, которая не может содержать повторяющиеся элементы.

Список: это упорядоченная коллекция, которая может содержать повторяющиеся элементы.

Карта: это объект, который сопоставляет ключи со значениями и не может содержать повторяющиеся ключи.

Q.95: Какие классы реализуют интерфейс List и Set?

Классы интерфейса списка: ArrayList, Vector, LinkedList,

Установить классы интерфейса: HashSet, TreeSet

Вопрос 96: В чем разница между Collection и Collections?

Коллекция — это интерфейс, а коллекции — это класс, оба присутствуют в пакете java.util и являются частью структуры коллекций Java.

Q.97: В чем разница между List и Set?

Set не содержит повторяющихся элементов, тогда как List может содержать повторяющиеся элементы.
Set неупорядочен, тогда как List упорядочен, он поддерживает порядок добавления объектов.

Q.98: В чем разница между Comparable и Comparator?

Comparable Comparator Comparable присутствует в пакете java.lang Comparable присутствует в пакете java.util. В интерфейсе Comparable фактический класс изменяется. В Comparator фактический класс не изменяется. В Comparable мы можем сортировать коллекцию на основе одного элемента, такого как eid, имя, зарплата и т. д. В Comparator мы можем сортировать коллекцию на основе множества элементов, таких как (id, имя) и т. д. Использует метод compareTo() для сортировки элементов. Использует метод compare() для сортировки элементов.

Q.99: В чем разница между JAVA и C++?

  1. Java не зависит от платформы, а C++ зависит от платформы.
  2. Сборка мусора присутствует в java, но недоступна в C++
  3. Java не поддерживает множественное наследование и поддерживается C++.
  4. Java поддерживает многопоточность, а C++ не поддерживает многопоточность.
  5. В Java нет концепции указателя, но она присутствует в C++.
  6. Глобальных переменных нет в java, но они есть в C++.

Q.100: Где инициализировать пустую конечную переменную?

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

Q.101: Что такое полиморфизм времени выполнения в Java?

Полиморфизм времени выполнения также называется диспетчеризацией динамических методов. Это процесс, в котором вызов переопределенного метода разрешается во время выполнения.

В полиморфизме времени выполнения переопределенный метод вызывается через ссылочную переменную суперкласса. Определение вызываемого метода основано на объекте, на который ссылается ссылочная переменная.

Пример:

class Animal { public void speak() { System.out.println("Животное говорит..."); } } class Dog extends Animal { @Override public void speak() { System.out.println("Собачий лай.."); } } class Human extends Animal { @Override public void speak() { System.out.println("Говорящий человек..."); } }

System.out.println("Говорящий зверь...");

класс Dog расширяет Animal {

System.out.println("Собачий лай...");

класс Human расширяет Animal {

System.out.println("Говорящий человек...");

Демонстрация:

Животное животное = новая собака(); животное.говорить(); животное = новый человек(); животное.говорить();

Животное животное = новая собака();

Вывод:

Лай собаки.. Разговор человека..

Вывод:

Таким образом, мы завершили список 101 основных вопросов для собеседования по Java. Мы уверены, что эти вопросы помогут вам понять суть Java.

Первоначально опубликовано на www.opencodez.com 1 марта 2018 г.