Галерея диаграмм связей Вопросы для собеседования по JAVA-1
Это интеллектуальная карта вопроса №1 на собеседовании по JAVA, которая помогает соискателям систематически анализировать и закреплять базовые знания JAVA.
Отредактировано в 2024-03-07 14:54:13Вопросы для собеседования по JAVA
Основы JAVA
базовая грамматика
01-Что такое объектно-ориентированное программирование?
02-Три основные характеристики объектно-ориентированного подхода
03-Каков механизм полиморфизма?
04-Разница между Jdk, Jre и JVM
05-Каковы основные типы данных Java?
06-Что такое сигнатура метода?
07-Какие модификаторы доступа есть в JAVA?
08-В чем разница между & и &&?
Какая польза от 09-финала?
10-финал окончательно определит разницу?
11-это и супер ключевые слова
12-Каковы различия и функции разрыва, продолжения и возврата?
13. Можно ли модифицировать абстрактные классы с помощью Final?
14. Могут ли статически модифицированные методы вызывать нестатически модифицированные переменные и методы?
15. Когда локальные внутренние классы и анонимные внутренние классы получают доступ к локальным переменным, почему переменные должны быть окончательными?
16-Разница между перегрузкой и переопределением
17-Можно ли переопределить конструктор?
18- В чем разница между == и равно
19-Роль метода hashCode
20-Каков механизм отражения?
21-Преимущества и недостатки механизма отражения
22-Каковы сценарии применения механизма отражения?
23-Три способа получить отражение в Java
24-Каковы способы создания объектов в Java?
25-String s = new String("xyz"); создано несколько строковых объектов.
26. Является ли String str="i" тем же, что String str=new String("i")?
27-В чем разница между String, StringBuffer и StringBuilder?
28-Целое число a= 127 равно целому числу b = 127?
структура данных
01-Что такое связанный список?
02-Преимущества связанных списков?
03-Что такое красно-черное дерево?
Новые возможности JDK1.8
Лямбда
Транслировать
foreach: цикл прохождения, передача объекта типа Consumer
фильтр: фильтр
карта: конвертировать
FlatMap: выравнивание потоков
пропустить: пропустить N элементов
предел: перехватить N элементов
sorted: отсортировано, передано в компаратор
Коллекторы: Коллекторы объединяют результаты сбора данных в поток с помощью toList, toMap и т. д.
резюмеСтатистика: статистический метод
count: подсчитать количество элементов
concat: объединить 2 потока
Необязательный
собирать
01-Какие классы коллекций обычно используются?
02-Какие классы коллекций являются потокобезопасными?
03-Как Vector обеспечивает потокобезопасность?
04-Как HashTable обеспечивает потокобезопасность?
05-Каковы различные способы перемещения по списку?
06-Расскажите о преимуществах и недостатках ArrayList?
07-Как преобразовать массив в список?
08-В чем разница между ArrayList и LinkedList?
09-Как преобразовать потокобезопасную коллекцию в потокобезопасную коллекцию?
10-Расскажите о принципе реализации HashSet?
11-Как проверить дубликаты в HashSet? Как HashSet гарантирует, что данные не повторяются?
12-Расскажите о принципе реализации HashMap?
13-Как HashMap разрешает конфликты хэшей
14-В чем разница между HashMap в JDK1.7 и 1.8?
15-Каков конкретный процесс метода put HashMap?
16-Как расширяется HashMap?
17-Почему первоначальная длина HashMap равна 16?
18- Почему связный список длиной 8 превращается в красно-черное дерево?
19-Почему длина каждого расширения HashMap равна степени 2?
20-В чем разница между HashMap и ConcurrentHashMap?
21-В чем разница между ConcurrentHashMap и Hashtable?
22-Что такое TreeMap?
23-Чем отличается сопоставимый от сравнительного?
24-Как сортировать данные коллекции
ИО
01-Сколько типов потоков в Java?
02-Поговорим об общих классах в Java IO, потоке байтов, потоке символов, интерфейсе, классе реализации, блокировке методов.
03-Как преобразовать поток байтов в поток символов?
04-Что такое сериализация Java и как ее реализовать?
05-Что такое синхронный и асинхронный?
06-Что такое блокировка и неблокировка?
07-Что означают синхронная блокировка, синхронная неблокировка и асинхронная неблокировка?
08-Что такое BIO (блокировка ввода-вывода)
09-Что такое НИО
10-Что такое AIO (асинхронный ввод-вывод)
Знакомство с 5 моделями ввода-вывода
Многопоточность
Основы темы
01. Сколько состояний в тредах? Какие они?
02-Как можно создать тему?
03-В чем разница между runnable и callable?
04-В чем разница между run() и start()?
05-Часто используемые методы, связанные с синхронизацией потоков и планированием потоков.
06-Как разбудить заблокированную тему?
07-Как обеспечить безопасную работу многопоточности в Java-программах?
08-Каковы общие API для потоков?
09-Как взаимодействовать между потоками и как синхронизировать между потоками
10-Расскажите, как вы используете ключевое слово «синхронизировано»? Использовали ли вы его в проекте?
11-Вы понимаете шаблон синглтона? Объясните мне метод блокировки с двойной проверкой для реализации одноэлементного режима!
стиль ленивого человека
Голодный китайский стиль
двойной контрольный замок
12. Что такое атомарный класс? Знаете ли вы о платформе Java JUC?
13-Создайте три новых потока T1, T2 и T3. Как гарантировать, что они выполняются по порядку?
14-Что такое взаимоблокировка потоков?
15-Каковы четыре необходимых условия для образования тупика?
16-Как избежать взаимоблокировки потока?
17-Как поток B узнает, что поток A изменил переменную?
Пул потоков
01-Что такое пул потоков? Каковы преимущества использования пула потоков?
02-Каковы параметры создания пула потоков?
03- Как создать пул потоков
04-Процесс выполнения пула потоков
05-Как разумно распределить размер пула потоков?
06-В чем разница между методами submit() и Execute() запуска потока пула потоков?
07-Что произойдет, если очередь пула потоков заполнена при отправке задачи?
Замок
01-Каков принцип обновления синхронизированной блокировки в многопоточности?
02-Что такое CAS?
03-Какие проблемы могут возникнуть при использовании CAS?
04-Что такое блокировка смещения?
05-Что такое легкий замок?
06-Что такое тяжелый замок?
07-Что такое спин-лок?
08-В чем проблема со спин-блокировкой?
09-В чем разница между синхронизированным и заблокированным?
10-Роль изменчивого ключевого слова
ThreadLocal
01-Основной принцип ThreadLocal
02-Где в проекте используется ThreadLocal?
03-Какие проблемы могут возникнуть при использовании ThreadLocal Как их решить?
JVM
01-Из каких частей состоит JVM и какой процесс выполняется?
02-Давайте поговорим об области данных времени выполнения JVM.
03-Можете ли вы рассказать о своем понимании кучи Java?
04-Можете ли вы рассказать о своем понимании области методов Java?
05-Знаете ли вы о прямой памяти?
06-В чем разница между стеками?
07-Знаете ли вы глубокий и поверхностный текст?
08-В чем разница между сильной ссылкой, мягкой ссылкой, слабой ссылкой и виртуальной ссылкой?
09-Вы когда-нибудь узнавали о GC?
10-Каков принцип работы сборщика мусора? Есть ли способ выполнить сбор мусора вручную?
11-Знаете ли вы FullGC?
12-Поговорите о различиях между новым поколением, старым поколением и постоянным поколением.
13. Что такое второстепенный GC, основной GC и полный GC?
14-Когда объекты могут быть собраны сборщиком мусора?
15-Каковы алгоритмы сборки мусора JVM?
16-Происходит ли сборка мусора при постоянной генерации в JVM?
17-Что такое загрузчик классов и что такое загрузчики классов?
18-Расскажите о процессе выполнения загрузки классов?
19-Знаете ли вы, что такое родительская делегация?
20-Как сломать родительское делегирование?
21. Сталкивались ли вы когда-нибудь с настройкой JVM?
22-Каковы наиболее часто используемые параметры настройки JVM?
Здесь можно установить параметры настройки 23-JVM.
ЯВАВЕБ
Сервлет
01-Что такое сервлет?
02-Какой порт Tomcat используется по умолчанию и как его изменить?
03-Знаете ли вы жизненный цикл сервлета?
04- Знаете ли вы о переадресации и перенаправлении?
05- Что такое файлы cookie? Что такое сессия?
06-В чем разница между файлами cookie и сеансом?
07. Как Tomcat создает экземпляр класса сервлета? Какие принципы используются?
08-Сервлет — это один экземпляр или несколько экземпляров?
09-Скажите мне разницу между фильтрами, перехватчиками и слушателями?
MySQL
базовая грамматика
DDL: язык определения данных, например: создание, удаление и т. д. для управления структурой таблицы базы данных.
DCL: язык управления базой данных, GRANT и REVOKE и т. д. для управления базой данных.
DML: язык управления данными. Обычно используются INSERT, UPDATE, DELETE и т. д. для выполнения некоторых операций с данными базы данных.
DQL: язык запросов к данным, операторы извлечения данных, используемые для получения данных из таблиц. Обычно наиболее часто используемое зарезервированное слово SELECT часто используется с предложениями FROM и WHERE для формирования оператора запроса SQL.
Основной порядок синтаксиса: выберите [поле,...] из имени таблицы [где условие] [группировать по полю] [имеет условие][Упорядочить по порядку полей]
Сортировка SQL: порядок по порядку полей
Группировка SQL: поле «Группировать по группе»
Дедупликация SQL
Отчетливый
Группа по
Разбиение на страницы SQL: Ограничить [начальный] размер
SQL-функция
Текущее время: now()/sysdate
Конкатенация строк: concat
Обрезать пробелы: ОБРЕЗАТЬ
Строка замены: ЗАМЕНИТЬ
Перехват строки: SUBSTRING
Реверс строки: REVERSE
Получить текущий год: Год
Получить текущий месяц:Месяц
Получить текущую неделю: неделя
Расчет времени: DATE_ADD
Условное суждение: ЕСЛИ(выражение,v1,v2) / IFNULL(v1,v2)
Многотабличный запрос
внутреннее соединение
Неявное внутреннее соединение: выберите * из A, B, где условие соединения
Явное внутреннее соединение: выберите * из внутреннего соединения A B при условии соединения.
внешнее соединение
левое внешнее соединение
выберите * из A, слева присоединитесь к B при условии соединения
правое внешнее соединение
выберите * из A справа присоединитесь к B при условии соединения
двигатель хранения
оптимизация
дизайн
Выберите подходящий механизм хранения, соответствующий тип поля и следуйте парадигме (антипарадигмальный дизайн).
Функции: индексирование, кэширование, подбаза данных и подтаблица.
Архитектура: репликация master-slave, разделение чтения и записи, балансировка нагрузки. mycat/shardingjdbc
Разумный SQL: тестирование, опыт
Как бороться с большой подкачкой в MYSQL?
индекс
01-Знаете ли вы индекс MYSQL?
02-Какие индексы о Mysql вы знаете?
03-Знаете ли вы преимущества и недостатки индексации?
04-Знаете ли вы, как хранится индекс?
05-В чем разница между B-деревом и B-деревом?
06-Знаете ли вы, что такое некластеризованный индекс (некластеризованный индекс)?
индекс первичного ключа
Обычный индекс
07-Знаете ли вы, что такое кластерный индекс (кластерный индекс)?
индекс первичного ключа
Вспомогательный индекс
08. Индекс создается для поля, не являющегося первичным ключом. Сколько раз вам нужно запрашивать данные на основе этого поля?
09-Уместно ли использовать UUID в качестве первичного ключа базы данных?
10-Знаете ли вы, что такое запрос на возврат таблицы?
11-Знаете ли вы, что такое индекс покрытия?
12-Знаете ли вы, что такое принцип левого префикса?
13-При каких обстоятельствах индекс выйдет из строя?
14-Если оператор SQL выполняется очень медленно, как найти причину медленности?
15-Объясните, каковы общие параметры просмотра планов выполнения SQL?
ИДЕНТИФИКАТОР
select_type
стол
тип
ключ
Дополнительный
...
16. Чем больше индексов вы используете, тем лучше?
Замок
01-Что такое замок? Какие типы блокировок предусмотрены в MySQL?
02-Что такое взаимоблокировка и при каких обстоятельствах она возникает?
03-Как бороться с тупиковой ситуацией?
04-Как проверить взаимоблокировку?
05-Как избежать тупика?
06-Как InnoDB по умолчанию обрабатывает взаимоблокировки?
07-Что такое глобальная блокировка? Каковы сценарии его применения?
08-Что такое общий замок?
09-Что такое эксклюзивный замок?
10-Сколько алгоритмов блокировки имеет механизм хранения InnoDB?
11. Заблокировали ли вы MYSQL в процессе разработки?
дела
01-Знаете ли вы ACID транзакции?
02-Каковы уровни изоляции транзакций? Можете ли вы рассказать об этом подробно?
03-Каковы проблемы, если не учитывать уровень изоляции транзакции?
04-Знаете ли вы, какой уровень изоляции MYSQL по умолчанию? Как настроить уровень изоляции?
05-Что такое MVCC?
06-Знаете ли вы принцип MVCC?
07-Каков принцип реализации транзакции MySQL?
Структура SSM
Весна
01-Что такое Spring framework?
02-Поговорите о своем понимании Spring IOC
03-Поговорите о своем понимании АОП
04-В чем разница между Spring AOP и AspectJ AOP?
05-Понимаете ли вы проблемы безопасности потоков одноэлементных bean-компонентов в Spring?
06-Жизненный цикл компонента в Spring?
07-Какие шаблоны проектирования используются в среде Spring?
08-Какие аннотации в Spring вы используете?
@Controller: действует на контроллер
@Service: действует на классы бизнес-уровня.
@Repository: действует на класс уровня доступа к данным.
@Component: действует на класс
@Bean: используется для объявления объектов Bean в методах.
@Scope: объявить область действия @Bean (один случай/несколько случаев)
@Autowired: внедрение компонентов по типу
@Resource: внедрить компонент по имени
@Qualifier: если несколько типов одинаковы, укажите имя, которое будет введено по имени.
@PropertiesSource: загрузить файл конфигурации.
@Import: экспортировать другие классы конфигурации.
@Configration: аннотация к классу конфигурации.
@ConfigrationProperties: конфигурация файла конфигурации пакетной загрузки.
@Transational: поддержка транзакций
@EnableGlobalTransational: включить поддержку транзакций.
@EnableAspectJProxy: включить поддержку прокси-сервера.
@Aspect: объявить аспекты
@Before: отметить предварительное уведомление.
@After: отметить последнее уведомление.
@Around: отметить окружающие уведомления.
@Aftrowing: отметить уведомление об исключении
@AfterReturing: отметить уведомление о публикации
@PointCut: метод аннотации, объявляет выражение pointcut.
09-Сколько существует методов управления транзакциями Spring?
10-Каковы уровни изоляции в транзакциях Spring?
11-Когда @Transactional становится недействительным в Spring?
12-Расскажите мне о поведении Spring по распространению транзакций?
13-Как транзакции реализуются в Spring?
14. Каков процесс использования аннотации @Autowired для автоматического связывания?
15-Каковы способы автоматической сборки бобов с помощью пружины?
16-Каковы возможности некоторых bean-компонентов, поддерживаемых Spring?
SpringMVC
01-Что такое Spring MVC? Кратко изложите свое понимание SpringMVC?
02-Описать рабочий процесс SpringMVC
03-Какие аннотации обычно используются в Spring MVC?
@RestController: объединенная аннотация @Controller и @ResponseBody.
@RequestMapping: сопоставление запросов интерфейса
@GetMapping: сопоставление методов запроса GET
@PutMapping: сопоставление методов запроса PUT
@PostMapping: сопоставление методов запроса PUT
@DeleteMapping: сопоставление режима запроса DELETE
@RequestBody: получить данные тела запроса, JSON автоматически преобразуется в объект.
@ResponseBody: данные ответа автоматически преобразуются в JSON.
@RequestParam: получить параметры запроса.
@Cookie: получить файл cookie в запросе.
@RequestHeader: получить заголовок запроса.
@PathVariable: объявить переменную пути
04-Знаете ли вы весь процесс ввода адреса в браузере и отправки данных ответа сервера?
Мибатис
01-Вы когда-нибудь понимали принцип работы Mybatis?
02-В чем разница между #{} и ${}?
03-Как передать несколько параметров в картограф?
04-Какие теги используются в файлах сопоставления mybatis?
выберите: тег запроса
обновление: обновить метку
удалить: удалить тег
вставить: вставить тег
где: аналогично, где в операторе SQL
if: динамический SQL определяет условия
foreach: цикл обхода, объединение SQL, обычно используется для пакетной обработки.
set: аналогично ключевому слову set в операторах SQL.
resultMap: метка сопоставления набора результатов
05-Как mybatis реализует многотабличный запрос?
06-Какие атрибуты тега foreach
Коллекция: указывает коллекцию, которую нужно обходить. Если она проходит по массиву, это массив. Если она проходит по коллекции списка, это список. Если она проходит по объекту или атрибуту коллекции Map, это атрибут объекта. имя или ключ карты.
элемент: каждый пройденный элемент
index: индекс во время обхода
open: префикс конкатенации строк
разделитель: разделитель
close:: после объединения строк
07-Как Mybatis получает сгенерированный первичный ключ?
08-Что делать, если имена атрибутов в классе сущности отличаются от имен полей в таблице?
09-Каковы требования при вызове с использованием интерфейса картографа MyBatis?
10-Если методы в интерфейсе Dao имеют разные параметры, можно ли перегрузить методы?
11-Как Mybatis выполняет пейджинг? Каков принцип работы плагина подкачки?
12-Поддерживает ли Mybatis отложенную загрузку? Если поддерживается, то каков принцип ее реализации?
13-Кэш первого и второго уровня Mybatis?
Мибатис-Плюс
01-Как выполнить запрос к нескольким таблицам при использовании Mybatis-Plus?
02-Как Mybatis реализует сопоставление между классами сущностей и таблицами базы данных?
03-Вы когда-нибудь использовали автоматическое заполнение Mybatis-Plus?
микросервисы
SpringBoot
01-Каков принцип автоматической настройки SpringBoot?
02-Порядок загрузки конфигурации SpringBoot?
03-Процесс переменной среды инициализации загрузки Spring?
04-Каковы способы запуска SpringBoot?
05-Какие стартеры обычно используются в SpringBoot?
весна-загрузка-стартер-веб
весна-загрузка-стартер-jdbc
mybatis-весна-загрузка-стартер
весна-загрузка-стартер-тест
mybatis-plus-spring-boot-starter
весна-загрузка-стартер-данные-redis
весна-загрузка-стартер-данные-elasticsearch
весна-загрузка-стартер-данные-mongodb
весна-загрузка-стартер-amqp
весеннее облако-стартер-открытое притворство
весеннее облако-стартер-алибаба-накос-дискавери
.....
06-Каковы различия между SpringBoot, Spring MVC и Spring?
07-Какова основная аннотация Spring Boot? Из каких аннотаций он состоит?
08-Какие платформы ведения журналов поддерживает Spring Boot? Какова рекомендуемая и стандартная система ведения журналов?
09-Какие основные функции предоставляет Spring Boot?
10-Каковы методы настройки Spring Boot?
11-Каковы способы чтения конфигурации в Spring Boot?
12-Вы когда-нибудь использовали сервер Jetty? Как заменить встроенный сервер на Jetty?
ВеснаОблако
01-Что такое весеннее облако?
02-Какие версии SpringCloud и SpringCloudAlibaba используются в вашем проекте?
03-Какие компоненты Spring Cloud используются в вашем проекте?
Центр регистрации/центр настройки Nacos
Лента балансировки нагрузки
Вызов сервисной службы
Служба защиты стражей
Сервисный шлюз Шлюз
...
04-Знаете ли вы разницу и взаимосвязь между Spring Cloud и Spring Boot?
Накос
01-Вы когда-нибудь понимали принцип Nacos как центра конфигурации?
02-Как Nacos обеспечивает изоляцию среды? Знаете ли вы о пространстве имен?
03-Что такое иерархическая модель хранения данных службы Nacos?
04-Как Nacos реализует весовую настройку сервисов?
05-Какие типы экземпляров служб зарегистрированы в Nacos?
06-Знаете ли вы Эврику? В чем разница между Накосом и Эврикой?
07-Как управляются файлы конфигурации в вашем проекте?
08-При запуске проекта следует сначала загружать локальные файлы или файлы в Nacos?
09-Как реализовать горячее обновление конфигурации. При изменении конфигурации ее можно обновить без изменения исходного кода?
Лента
01-Как Ribbon обеспечивает балансировку нагрузки?
02-Какие стратегии балансировки нагрузки поддерживаются Ribbon?
03-Какова стратегия балансировки нагрузки Ribbon по умолчанию? Как изменить стратегию балансировки нагрузки Ribbon?
04-Вы когда-нибудь понимали, как настроить стратегию балансировки нагрузки?
Притворяться
01-Что такое притворство?
02-В чем разница между вызовом службы поддержки Feign и Dubbo?
03-Что делать, если при вызове служб с помощью Feign возник таймаут?
04-Использование Feign для удаленных вызовов, как добиться балансировки нагрузки?
05-Как повысить эффективность звонков в службу Feign?
шлюз
01-Какие функции шлюза используются в вашем проекте?
маршрутизация
Междоменный домен
Аутентификация
Ограничение
02-Какие утверждения маршрутизации вы часто используете во время разработки?
Путь: соответствие в соответствии с путем запроса.
До/После: маршрутизация по времени, обычно используется для запуска новых версий.
Заголовок: маршрутизация на основе заголовка запроса, версия в оттенках серого для обычных пользователей.
03-Какие фильтры вы часто используете в разработке?
AddRequestHeader: добавить заголовок запроса, черный и белый список дозорных пользователей.
RequestRateLimiter: текущая конфигурация ограничения
StripPrefix: отменить префикс пути.
04-Вы когда-нибудь использовали глобальный фильтр шлюза?
Сентиналь
01-Вы когда-нибудь знали о сервисной лавине?
02- Вы когда-нибудь учились решать проблемы, связанные с лавинами?
03-Вы когда-нибудь узнавали о Hystrix? В чем разница между Sentinal и Hystrix?
04-Как вы используете Sentinal в своем проекте?
05-Какие режимы управления потоком поддерживаются Sentinel?
06-Какие эффекты управления потоком поддерживаются с помощью Sentinel?
07-Может ли Sentinel ввести текущее ограничение на доступ к данным в назначенных точках доступа?
08-Как ограничить текущий поток общего метода в Sentinel?
09-Знаете ли вы, как работает дозорный выключатель?
10. При каких обстоятельствах сигнализатор срабатывания автоматического выключателя понизится?
11-Какой механизм используется для реализации нижнего уровня дозорного ограничения тока?
12-Как Sentinel контролирует источники доступа?
13-Как сохраняются правила, настроенные в Sentinel? Будут ли они действовать после перезапуска?
Редис
01-Какие структуры (типы) данных есть в Redis?
02-В чем разница между Redis и Memcached?
03-Почему однопоточная модель Redis настолько эффективна?
04-Сколько методов сохранения данных есть в Redis? как выбрать?
05-Поддерживает ли Redis транзакции?
06-Сколько стратегий «истечения срока действия» данных есть в Redis?
07-Какие стратегии «устранения» данных есть у Redis?
08-Если необходимо установить одновременный срок действия большого количества ключей, на что обычно следует обращать внимание?
09-Каковы решения для кластера Redis?
10. Что такое синхронизация Master-Slave Redis?
11. Поговорим о концепции хеш-слота Redis?
12-Какова модель репликации «главный-подчиненный» в кластере Redis?
13. Будут ли потеряны операции записи в кластере Redis? Почему?
14-Какие важные показатели здоровья есть у Redis?
15-Предположим, в Redis 100 миллионов ключей, и 100 000 из них начинаются с фиксированного известного префикса. Как их все найти? Будут проблемы с декларацией
16-Как использовать Redis для подсчета UV (количества уникальных посетителей) веб-сайта?
17-Как бороться с большими ключами в Redis?
18-Вы когда-нибудь понимали лавину кеша (инвалидацию кеша)?
19. Вы когда-нибудь понимали проникновение в кэш?
20. Вы когда-нибудь разбирались в разбивке кэша?
21. Вы когда-нибудь понимали параллелизм кэширования?
ЭластичныйПоиск
принцип
режим запроса
Фрагментация
маршрутизация
разделенный мозг
Глубокий поиск
КроликMQ
Рабочий режим RabbitMQ
переключатель мертвой буквы
очередь задержки
ленивая очередь
Надежность гарантирована
Кафка
процесс работы
Связанные понятия
Надежность гарантирована
другой
xxl-работа
фастдфс
экологическая информация
Безопасность Alibaba Cloud Shield