387 просмотров
От 25 февраля

Вопросы для собеседования Java-разработчика

1. Какие типы данных в Java?

В Java существует 8 простых типов данных: 1. byte - 8-битное целое число со знаком (-128 до 127) 2. short - 16-битное целое число со знаком (-32,768 до 32,767) 3. int - 32-битное целое число со знаком (-2,147,483,648 до 2,147,483,647) 4. long - 64-битное целое число со знаком (-9,223,372,036,854,775,808 to 9,223,372,036,854,775,807) 5. float - 32-битное число с плавающей точкой (1.4E-45 до 3.4028235E+38) 6. double - 64-битное число с плавающей точкой (4.9E-324 до 1.7976931348623157E+308) 7. char - 16-битный символ Unicode ('\u0000' до '\uffff') 8. boolean - логическое значение (true или false) Также в Java есть объектные типы данных, которые являются экземплярами классов, и могут хранить некоторые данные и иметь методы. Объекты могут хранить данные разных типов, даже простых типов данных. Например, объект типа Integer может хранить целое число типа int. Разница между простыми типами данных и объектами заключается в способе хранения данных и доступе к ним. Простые типы данных хранятся в стеке, в то время как объекты - в куче. Объекты также могут иметь методы для обработки своих данных, тогда как простые типы данных этого не могут.

2. Что такое JVM, JDK, JRE?

JVM, JDK и JRE - это три основных понятия в мире Java-разработки. JVM (Java Virtual Machine) - виртуальная машина Java , которая выполняет Java-байткод. Все программы на Java компилируются в байткод, который может быть выполнен на любой платформе, на которую установлена JVM. JDK (Java Development Kit) - это пакет разработчика Java , который включает в себя всё необходимое для разработки Java-приложений, включая компилятор javac, библиотеки классов, документацию, примеры кода и JVM. JRE (Java Runtime Environment) - это пакет для запуска Java-приложений, который включает в себя JVM, библиотеки классов и другие необходимые компоненты для запуска Java-приложений. Кратко говоря, если вы планируете разработку Java-приложений, то вам нужна JDK. Если же вы планируете только запускать Java-приложения, то вам достаточно установить JRE, которая включает в себя JVM.

3. Зачем используют JVM?

JVM (виртуальная машина Java) — важнейший компонент языка программирования Java. Это абстрактная машина, предоставляющая среду выполнения, в которой может выполняться скомпилированный код Java. Вот несколько причин, почему JVM важна и широко используется в разработке программного обеспечения: 1. Переносимость: код Java можно написать один раз и запустить на любой платформе, на которой установлена ​​JVM, независимо от базового оборудования и операционной системы. Это делает Java-программы легко переносимыми и уменьшает количество кода, необходимого для конкретной платформы. 2. Управление памятью: JVM управляет распределением памяти и автоматически освобождает неиспользуемую память посредством сборки мусора. Это освобождает разработчиков от утомительной и чреватой ошибками задачи ручного управления памятью. 3. Безопасность. Поскольку JVM выполняет код Java в изолированной среде, это предотвращает причинение вреда базовой системе вредоносным кодом. Это делает Java популярным выбором для создания безопасных и надежных приложений. 4. Производительность: JVM создана для оптимизации выполнения кода Java и использует передовые методы, такие как своевременная компиляция, для достижения высокой производительности. В целом, JVM играет критическую роль в языке программирования Java, предоставляя многочисленные преимущества, которые делают его популярным выбором для создания надежных, безопасных и переносимых приложений.

4. Что такое bytecode?

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

5. Что такое Reflection?

Рефлексия (Reflection) - это механизм получения данных о программе во время её выполнения (runtime). В Java Reflection осуществляется с помощью Java Reflection API, состоящего из классов пакетов java.lang и java.lang.reflect. Возможности Java Reflection API: - Определение класса объекта; - Получение информации о модификаторах класса, полях, методах, конструкторах и суперклассах; - Определение интерфейсов, реализуемых классом; - Создание экземпляра класса; - Получение и установка значений полей объекта; - Вызов методов объекта; - Создание нового массива.

6. Какие модификаторы доступа есть в Java?

1. private: члены класса доступны только внутри класса. 2. default, package-private, package level: видимость класса/членов класса только внутри пакета. Является модификатором доступа по умолчанию - специальное обозначение не требуется. 3. protected: члены класса доступны внутри пакета и в наследниках. 4. public: класс/члены класса доступны всем. Последовательность модификаторов по возрастанию уровня закрытости: public, protected, default, private. Во время наследования возможно изменения модификаторов доступа в сторону большей видимости (для поддержания соответствия принципу подстановки Барбары Лисков).

7. Зачем нужен модификатор static?

Поддержите проект и получите доступ ко всему контенту всего за 290

8. Что такое статический класс?

Поддержите проект и получите доступ ко всему контенту всего за 290

9. Что такое статические поля?

Поддержите проект и получите доступ ко всему контенту всего за 290

10. Что такое статические константы?

Поддержите проект и получите доступ ко всему контенту всего за 290

11. Что такое статические инициализаторы?

Поддержите проект и получите доступ ко всему контенту всего за 290

12. Что такое статические методы?

Поддержите проект и получите доступ ко всему контенту всего за 290

13. Какие подводные камни есть у ключевого слова static?

Поддержите проект и получите доступ ко всему контенту всего за 290

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

Поддержите проект и получите доступ ко всему контенту всего за 290

15. Что такое переопределение метода?

Поддержите проект и получите доступ ко всему контенту всего за 290

16. Как инициализируются переменные по умолчанию?

Поддержите проект и получите доступ ко всему контенту всего за 290

17. Что такое интерфейс?

Поддержите проект и получите доступ ко всему контенту всего за 290

18. Почему в некоторых интерфейсах не определяют методов?

Поддержите проект и получите доступ ко всему контенту всего за 290

19. Что такое абстрактный класс?

Поддержите проект и получите доступ ко всему контенту всего за 290

20. Чем абстрактный класс отличается от интерфейса?

Поддержите проект и получите доступ ко всему контенту всего за 290

21. Что имеет более высокий уровень абстракции - класс, абстрактный класс или интерфейс?

Поддержите проект и получите доступ ко всему контенту всего за 290

22. Зачем нужно ключевое слово abstract?

Поддержите проект и получите доступ ко всему контенту всего за 290

23. Зачем нужно ключевое слово final?

Поддержите проект и получите доступ ко всему контенту всего за 290

24. Почему нельзя объявить метод интерфейса с модификатором final?

Поддержите проект и получите доступ ко всему контенту всего за 290

25. Расскажите про Heap и Stack память в Java

Поддержите проект и получите доступ ко всему контенту всего за 290

26. Что вы знаете о функции main()?

Поддержите проект и получите доступ ко всему контенту всего за 290

27. Может ли объект получить доступ к private члену класса?

Поддержите проект и получите доступ ко всему контенту всего за 290

28. Что такое конструкторы?

Поддержите проект и получите доступ ко всему контенту всего за 290

29. Зачем нужны блоки инициализации?

Поддержите проект и получите доступ ко всему контенту всего за 290

30. Зачем нужны статические блоки инициализации?

Поддержите проект и получите доступ ко всему контенту всего за 290

31. Может ли статический метод быть переопределён или перегружен?

Поддержите проект и получите доступ ко всему контенту всего за 290

32. Могут ли нестатические методы перегрузить статические?

Поддержите проект и получите доступ ко всему контенту всего за 290

33. Как получить доступ к переопределенным методам родительского класса?

Поддержите проект и получите доступ ко всему контенту всего за 290

34. Можно ли объявить метод абстрактным и статическим одновременно?

Поддержите проект и получите доступ ко всему контенту всего за 290

35. Что такое «локальный класс»?

Поддержите проект и получите доступ ко всему контенту всего за 290

36. Что такое «анонимный класс»?

Поддержите проект и получите доступ ко всему контенту всего за 290

37. Как передаются переменные в методы - по значению или по ссылке?

Поддержите проект и получите доступ ко всему контенту всего за 290

38. Для чего нужен сборщик мусора?

Поддержите проект и получите доступ ко всему контенту всего за 290

39. Какие разновидности сборщиков мусора реализованы в HotSpot?

Поддержите проект и получите доступ ко всему контенту всего за 290

40. Что такое «пул строк»?

Поддержите проект и получите доступ ко всему контенту всего за 290

41. Чем отличаются final, finally и finalize()?

Поддержите проект и получите доступ ко всему контенту всего за 290

42. Почему char[] предпочтительнее String для хранения пароля?

Поддержите проект и получите доступ ко всему контенту всего за 290

43. Перечислите методы класса object

Поддержите проект и получите доступ ко всему контенту всего за 290

44. Чем equals() отличается от операции ==?

Поддержите проект и получите доступ ко всему контенту всего за 290

45. Для чего нужен метод hashCode()?

Поддержите проект и получите доступ ко всему контенту всего за 290

46. Опишите иерархию исключений.

Поддержите проект и получите доступ ко всему контенту всего за 290

47. Как написать собственное («пользовательское») исключение?

Поддержите проект и получите доступ ко всему контенту всего за 290

48. Что такое generics?

Поддержите проект и получите доступ ко всему контенту всего за 290

49. Что такое JavaBean?

Поддержите проект и получите доступ ко всему контенту всего за 290

50. Что такое OutOfMemoryError?

Поддержите проект и получите доступ ко всему контенту всего за 290

51. Расскажите про try-with-resources

Поддержите проект и получите доступ ко всему контенту всего за 290

52. Что такое immutable значения в Java?

Поддержите проект и получите доступ ко всему контенту всего за 290

53. Что такое immutable objects?

Поддержите проект и получите доступ ко всему контенту всего за 290
Хотите стать частью сообщества Девстанции?
Вступайте в наш чат в Telegram

Вам может быть интересно

Шпаргалка
  7 вопросов

Коллекция полезных команд для Docker

Большая шпаргалка по всем командам Docker

261 просмотр
От 12 октября 2023
Шпаргалка
  60 вопросов

60 вопросов про базы данных и SQL

Вопросы и ответы с собеседования по базам данных и SQL

406 просмотров
От 20 февраля
Шпаргалка
  11 вопросов

Теория шардинга баз данных

О распределении данных между серверами

311 просмотров
От 10 октября 2023
Шпаргалка
  48 вопросов

50 вопросов для собеседования Kotlin

Шпаргалка по вопросам с собеседования на Kotlin-разработчика

445 просмотров
От 9 февраля
Шпаргалка
  10 вопросов

Всё о репликации баз данных

Описание понятий и процессов репликации БД

263 просмотра
От 8 октября 2023

Топ тредов

Gravatar for 9tokio
Tokio:
то что раньше было бесплатным теперь платное - вот это я понимаю

Последнее сообщение:
Логотип Девстанции
Девстанция:
Спасибо за поддержку проекта :) Повышение качества контента - один из важнейших приоритетов. Этому м...
3 сообщения
265 просмотров

Логотип Девстанции
Девстанция:
Поиск людей для совместной разработки IT-стартапов

Последнее сообщение:
В этом треде пока нет сообщений
0 сообщений
139 просмотров

Логотип Девстанции
Девстанция:
Какой язык программирования выбрать в качестве первого?

Последнее сообщение:
Gravatar for 2kokke
Kokke:
Python или JS - универсально. Но по уму надо бы с чего-то строгого начинать и достаточно низкоуровне...
1 сообщение
174 просмотра

Все категории