Какие знания необходимы для подготовки к собеседованию?

интервью Java MySQL JVM

Обзор


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

В этой статье в основном представлены некоторые вопросы интервью, с которыми я столкнулся после выпуска. Некоторые вопросы дают ответы, некоторые тестовые вопросы - нет.


Основы 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


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

Отвечать:
HTTP1.0 HTTP 1.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
  • Нетти (о нетти см.Нетти столбец)

разное

  • С какими проблемами столкнулась система и как их решить
  • Что больше всего удовлетворяет

Оригинальная ссылка


Какие знания необходимы для подготовки к собеседованию?