Обзор
После выхода спектакля в середине года или в конце года всегда есть и радостные, и грустные. Боссы, у которых больше возможностей хорошо работать, пользуются доверием и будут более мотивированы. Если производительность не очень хорошая, а начальник не настроен оптимистично, может возникнуть желание уйти.
Если у вас есть идея уйти в отставку, вам все равно нужно потратить некоторое время на подготовку, ведь хорошие интернет-компании все еще довольно требовательны к программистам, и вам нужны всевозможные способности.
В этой статье в основном представлены некоторые вопросы интервью, с которыми я столкнулся после выпуска. Некоторые вопросы дают ответы, некоторые тестовые вопросы - нет.
Основы Java
-
int занимает несколько байт
Отвечать:
4 -
Как поменять местами значения двух переменных без использования третьей переменной
public class TestSwitchVar { public static void main(String[] args) { int a = 1; int b = 2; a = a + b; b = a - b; a = a - b; System.out.println(a); System.out.println(b); } }
-
Какая технология используется для динамического прокси JAVA
Отвечать:
отражение -
Принцип загрузчика классов JAVA
Отвечать:
изучить загрузчик классов JAVA
Класс коллекции
-
Как реализован метод добавления HashSet и как дедуплицировать;
Отвечать:
Нижний слой HashSet реализуется с помощью HashMap.При вызове метода add нижний слой также реализуется с помощью метода put HashMap. Причина, по которой HashSet имеет возможность дедупликации, также заключается в том, что в методе put HashMap, если обнаруживается, что ключ уже существует, значение, соответствующее ключу, будет перезаписано, но для HashSet это все еще исходный ключ. То есть набор ключей не изменился. -
Принцип реализации HashMap;
Отвечать:
посмотри что я писал раньшеПринцип использования методов put и get HashMapиРасширение HashMapа такжеПричины бесконечных циклов в многопоточности HashMapВсего несколько постов в блоге. -
Принцип реализации JDK 1.7 ConcurrentHashMap
Отвечать:
Изучение ConcurrentHashMap
- В чем разница между реализацией ConcurrentHashMap в JDK 1.8 и JDK7;
-
Является ли ArrayList потокобезопасным
Отвечать:
Небезопасный поток ArrayList -
Как CopyOnWriteArrayList является потокобезопасным;
Отвечать:
Сценариев использования CopyOnWriteArrayList очень мало.
NIO
Опишите принцип работы JAVA NIO и в чем преимущества по сравнению с JAVA IO
Отвечать:
Узнать о НИО
потоки и параллелизм
-
В чем разница между методом сна и методом ожидания
Отвечать:
1. Метод ожидания снимает блокировку, а метод сна не снимает блокировку.
2. Метод ожидания должен находиться в синхронизированном блоке кода, таком как ключ синхронизации, но метод ожидания не имеет этого ограничения. -
Что происходит после вызова метода wait()
Отвечать:
Метод ожидания объекта -
Есть ли другой способ синхронизации, кроме использования ключевого слова synchronized?
Отвечать:
изменчивое ключевое слово
заблокировать() и разблокировать()
- Что такое поток демона
- Если есть несколько потоков для одновременной работы с файлом, как добиться безопасности потоков, пожалуйста, напишите псевдокод
- что такое безопасность потоков
-
В чем польза ключевого слова volatile
Отвечать:
Анализ изменчивого ключевого слова -
Разница между пессимистической блокировкой и оптимистичной блокировкой
- Какие модели параллелизма существуют, какие модели параллелизма использовались и на чем основан выбор этих моделей (например, режим Master-Worker)
- Использовали ли вы ThreadLocal? В каких сценариях вы его использовали?
- Каковы состояния потока
- Принципы КАС
Отвечать:
Узнать о CAS
- Напишите тупиковый код JAVA и опишите, как избежать тупиковой ситуации?
- Как работает операционная система, когда поток переходит в состояние блокировки (включая режим пользователя и режим ядра)
- Разговор о том, как оптимизировать «замок»
- Что такое реентерабельная блокировка
JVM
-
Какие виды алгоритмов сборки мусора существуют? Каковы характеристики каждого из них?
Отвечать:
Столбец JVM -
Когда запускать молодой сборщик мусора, когда запускать полный сборщик мусора
Отвечать:
Молодой сборщик мусора выполняется при заполнении Эдема в новом поколении, а полный сбор — при заполнении старого поколения.
-
Если процесс JAVA внезапно завис, как проверить причину зависания
Отвечать:
После зависания процесса java будет сгенерирован файл дампа ядра, и вы сможете использовать команду jstack для вывода информации о стеке потоков. -
Как настраивается JVM
Отвечать
Настройка JVM — учебные статьи
- Что такое инструменты мониторинга JVM, каково их использование, и краткое введение в использование
- Описать модель памяти JVM.
- Как узнать, какая строка кода вызывает высокую загрузку ЦП системы
mysql
- Какие ключевые слова использовать для анализа производительности SQL
- На что обратить внимание при создании индекса
Отвечать:
Очки знаний индекса Mysql
Что такое индекс покрытия
Отвечать:
Очки знаний индекса Mysql
-
При каких обстоятельствах вам необходимо создать составной индекс
Отвечать:
Очки знаний индекса Mysql -
По какому принципу индексируется и какая структура данных используется внизу
Отвечать:
Обучение дереву Mysql B+ -
Как база данных приложения выполняет аварийное восстановление
- Как динамически добавлять бизнес-поля без изменения кода
- Разница между блокировками строк и блокировками таблицы, какая блокировка используется движком innodb
-
innodb myisam разница
Отвечать:
Очки знаний индекса Mysql -
Как оптимизировать, когда пакет mysql вставляет данные
- Выполняют ли проекты, в которых вы участвуете, обработку подбаз данных, и каковы правила маршрутизации к подбазам данных?
nosql
Какие базы данных NoSQL использовались, краткое введение
тайник
- Принцип memcache
- Разница между memcache и Redis
- Есть ли в системе локальный кеш?Как считается частота попаданий?
- На чем основан выбор кеша вне кучи и кеша в куче?
- Десериализация необходима для получения данных из кэша вне кучи, есть ли способ избежать этого, просто расскажите об идее
алгоритм
- Принцип согласованного алгоритма хеширования
- Быстрая сортировка с использованием JAVA
- Используйте JAVA для реализации бинарного поиска
- Используйте JAVA для обхода бинарного дерева (предварительный/по порядку/по порядку, просто напишите один)
- Принцип красно-черного дерева
HTTP
Как разобрать HTTP-запрос с JAVA-кодом и описать идею реализации
Разница между HTTP 1.0 HTTP1.1 HTTP 2.0
Архитектурный дизайн
- Насколько система устойчива к сбоям
- Как выполняется кэш-дизайн системы?
- Как сделать защиту от лавин
- Опишите конкретную схему или алгоритм ограничения тока
linux
- Какую команду использует оболочка для проверки использования жесткого диска и памяти?
- Какую переменную использует сценарий оболочки для получения параметров?
Spring
- Принцип Spring IOC
-
Подпружиненный жизненный цикл компонента
Отвечать:
Жизненный цикл фасоли Spring в деталях очень сложен, в грубом плане:
1. Вызвать конструктор для создания объекта;
2. Вызовите метод set объекта, чтобы установить значение свойства;
3. Вы можете использовать некоторые интерфейсы, предоставляемые Spring, вы можете выполнить некоторую работу по обработке или внедрить некоторую реализацию пользовательского кода после вызова метода набора компонентов;
4. После инициализации всего bean-компонента и внедрения всех зависимых объектов, если вы хотите выполнить некоторую работу по инициализации, вы можете использовать некоторые аннотации, такие как @PostConstruct.
5. Выполните некоторую обработку перед уничтожением компонента
6. Уничтожить бобы -
Принцип реализации Spring АОП
- Какие шаблоны проектирования использует Spring
- В чем разница между cglib и динамическим прокси
- Что эффективнее, cglib или динамический прокси
- Каковы области применения spring bean
Шаблоны проектирования
Пожалуйста, напишите высокопроизводительный потокобезопасный синглтон
public class Singleton
{
private static Singleton singleton = null;
private Singleton() { }
public static Singleton getInstance() {
if (singleton != null) {
return singleton;
}
synchronized (Singleton.class) {
if (singleton== null) {
singleton= new Singleton();
}
}
}
}
Описать шаблон проектирования шаблона
Микросервисы
- Что такое микросервисы
- Опишите принципы микросервисной инфраструктуры, которую вы использовали.
- Какие технологии используют микросервисы для сериализации и десериализации данных?
- Знаете о воровстве? Объясните, пожалуйста, принцип воровства
- Как работает управление сервисами для микросервисов?
- Каковы плюсы и минусы микросервисов
MQ
- Разница между rabbitMQ и kafka
- Механизм реализации RabbitMQ
- Как держать сообщения в порядке
- Как предотвратить потерю сообщений
Интернет
- Процесс трехстороннего рукопожатия TCP/IP
- Нетти (о нетти см.Нетти столбец)
разное
- С какими проблемами столкнулась система и как их решить
- Что больше всего удовлетворяет
Оригинальная ссылка