Рекомендуется читать веб-сайты онлайн-чтения для лучшего опыта и более высокой скорости! Адрес: javaguide.cn.
- Специальное издание для интервью : Друзья, которые готовятся к собеседованию по Java, могут рассмотреть специальное издание для интервью: «Руководство по собеседованию на Java» (высокое качество, специально созданное для собеседований и используемое вместе с JavaGuide).
- Планета знаний : эксклюзивный буклет для собеседования/индивидуальное общение/изменение резюме/эксклюзивное руководство по поиску работы. Добро пожаловать на JavaGuide Knowledge Planet (щелкните ссылку, чтобы просмотреть подробное описание планеты, убедитесь, что вам действительно нужно присоединиться снова) .
- Рекомендации по использованию : Квалифицированные интервьюеры всегда изучают технические вопросы, основываясь на опыте реализации проекта. Не заучивайте наизусть технические восьмичастные эссе! Подробные предложения по обучению см. в разделе: Рекомендации по использованию JavaGuide.
- Попросите звезду : если вы считаете, что содержание JavaGuide вам полезно, нажмите на бесплатную звезду. Для меня это самое большое поощрение. Спасибо, что идете вместе и подбадриваете друг друга. Адрес Github: https://github.com/Snailclimb/JavaGuide.
- Примечание при перепечатке : все следующие статьи являются оригинальными для JavaGuide, если в начале статьи не указано, что они перепечатаны. Для перепечатки укажите источник в начале статьи. В случае обнаружения злонамеренного плагиата/перевозки для защиты прав будет использовано законное оружие. Давайте вместе поддерживать хорошую среду технического творчества!
Связанные с проектом
- Введение в проект
- Рекомендации по использованию
- Руководство по вкладу
- Часто задаваемые вопросы
Ява
База
Краткое изложение знаний/вопросов для собеседования : (обязательно прочитать: +1: ):
- Общие сведения об основных знаниях Java и краткое изложение вопросов на собеседовании (Часть 1)
- Общие сведения об основных знаниях Java и краткое изложение вопросов на собеседовании (часть 2)
- Общие сведения об основных знаниях Java и краткое изложение вопросов на собеседовании (часть 2)
Подробное объяснение важных моментов знаний :
- Почему в Java передача осуществляется только по значению?
- Подробное объяснение сериализации Java
- Подробное объяснение дженериков и подстановочных знаков
- Подробное объяснение механизма отражения Java
- Подробное объяснение режима прокси Java
- Подробное объяснение BigDecimal
- Подробное объяснение магического класса Java Unsafe.
- Подробное объяснение механизма Java SPI.
- Подробное объяснение синтаксического сахара Java
собирать
Краткое изложение знаний/вопросов для собеседования :
- Сборник общих знаний Java и краткое изложение вопросов для собеседования (Часть 1) (обязательно прочитать?)
- Сборник общих знаний Java и краткое изложение вопросов для собеседования (Часть 2) (обязательно прочитать?)
- Краткое изложение мер предосторожности при использовании контейнеров Java
Анализ исходного кода :
- Исходный код ядра ArrayList + анализ механизма расширения
- Анализ исходного кода ядра LinkedList
- Исходный код ядра HashMap + базовый анализ структуры данных
- Основной исходный код ConcurrentHashMap + базовый анализ структуры данных
- Анализ исходного кода ядра LinkedHashMap
- Анализ исходного кода ядра CopyOnWriteArrayList
- Анализ исходного кода ядра ArrayBlockingQueue
- Анализ исходного кода ядра PriorityQueue
- Анализ исходного кода ядра DelayQueue
ИО
- Краткое изложение базовых знаний IO
- Краткое изложение шаблонов проектирования ввода-вывода
- Подробное объяснение модели ввода-вывода
- Краткое изложение основных знаний NIO
одновременно
Краткое изложение знаний/вопросы для собеседования : (обязательно прочитать?)
- Общие сведения о параллелизме Java и краткое изложение вопросов для собеседования (часть 1)
- Общие сведения о параллелизме Java и краткое изложение вопросов для собеседования (часть 2)
- Общие сведения о параллелизме Java и краткое изложение вопросов для собеседования (часть 2)
Подробное объяснение важных моментов знаний :
- Подробное объяснение оптимистической блокировки и пессимистической блокировки.
- Подробное объяснение CAS
- Подробное объяснение JMM (модель памяти Java)
- Пул потоков : подробное объяснение пула потоков Java, лучшие практики использования пула потоков Java
- Подробное объяснение ThreadLocal
- Сводка по параллельному контейнеру Java
- Сводка атомарного атомарного класса
- Подробное объяснение AQS
- Подробное объяснение CompletableFuture
JVM (нужно посмотреть?)
Эта часть JVM в основном относится к спецификации виртуальной машины JVM — Java8 и «Углубленному пониманию виртуальной машины Java (3-е издание)» г-на Чжоу Чжимина (настоятельно рекомендуется прочитать ее несколько раз!).
- Область памяти Java
- Сбор мусора JVM
- Структура файла класса
- Процесс загрузки класса
- загрузчик классов
- [Надо завершить] Краткое описание наиболее важных параметров JVM (перевод наполовину завершен)
- [Дополнительный обед] Давайте познакомимся с JVM на простом английском языке.
- Инструменты мониторинга и устранения неполадок JDK
новые возможности
- Java 8 : обзор новых функций Java 8 (перевод), обзор общих новых функций Java 8.
- Обзор новых функций Java 9
- Обзор новых функций Java 10
- Обзор новых функций Java 11
- Обзор новых функций Java 12 и 13
- Обзор новых функций Java 14 и 15
- Обзор новых функций Java 16
- Обзор новых функций Java 17
- Обзор новых функций Java 18
- Обзор новых функций Java 19
- Обзор новых функций Java 20
- Обзор новых функций Java 21
- Обзор новых функций Java 22 и 23
основы компьютера
Операционная система
- Общие сведения об операционных системах и краткое изложение вопросов на собеседовании (Часть 1)
- Общие сведения об операционных системах и краткое изложение вопросов на собеседовании (Часть 2)
- Линукс :
- Краткое изложение базовых знаний Linux, необходимых для серверных программистов
- Краткое изложение базовых знаний программирования Shell.
сеть
Краткое изложение знаний/вопросов для собеседования :
- Общие сведения о компьютерных сетях и краткое изложение вопросов на собеседовании (Часть 1)
- Общие сведения о компьютерных сетях и краткое изложение вопросов на собеседовании (Часть 2)
- Краткое изложение содержания «Компьютерной сети» учителя Се Сирэня (дополнение)
Подробное объяснение важных моментов знаний :
- Подробное объяснение моделей сетевых уровней OSI и TCP/IP (основы)
- Краткое описание общих протоколов прикладного уровня (прикладной уровень)
- HTTP против HTTPS (уровень приложения)
- HTTP 1.0 против HTTP 1.1 (уровень приложений)
- Общие коды состояния HTTP (уровень приложения)
- Подробное объяснение системы доменных имен DNS (уровень приложений)
- Трехэтапное рукопожатие TCP и четырехсторонняя волна (транспортный уровень)
- Гарантия надежности передачи TCP (транспортный уровень)
- Подробное объяснение протокола ARP (сетевой уровень)
- Подробное объяснение протокола NAT (сетевой уровень)
- Краткое изложение распространенных средств сетевых атак (безопасность)
структура данных
Графическая структура данных:
- Линейные структуры данных: массивы, связанные списки, стеки, очереди.
- картина
- куча
- Дерево: сосредоточьтесь на красно-черных деревьях, деревьях B-, B+, B*, деревьях LSM.
Другие часто используемые структуры данных:
алгоритм
Эта часть алгоритма очень важна. Если вы не умеете изучать алгоритмы, можете прочитать то, что я написал:
- Книги по изучению алгоритмов + рекомендации по ресурсам.
- Как прошить Литкод?
Краткое изложение распространенных проблем алгоритмов :
- Краткое изложение нескольких распространенных вопросов по строковым алгоритмам
- Краткое изложение нескольких распространенных вопросов об алгоритмах связанных списков
- Меч указывает на некоторые вопросы по программированию в предложении.
- Десять лучших классических алгоритмов сортировки
Кроме того, сайт GeeksforGeeks обобщает общие алгоритмы и является более полным и систематическим.
база данных
База
- Краткое изложение базовых знаний о базах данных
- Краткое изложение базовых знаний NoSQL
- Подробное объяснение наборов символов
- SQL:
- Краткое изложение базовых знаний синтаксиса SQL
- Краткое изложение распространенных вопросов на собеседовании по SQL
MySQL
Краткое изложение знаний/вопросов для собеседования:
- Общие сведения о MySQL и краткое изложение вопросов на собеседовании (обязательно прочитать?)
- Сводка рекомендаций по спецификациям высокопроизводительной оптимизации MySQL
Важные моменты знаний:
- Подробное объяснение индекса MySQL
- Уровень изоляции транзакций MySQL (подробное графическое и текстовое объяснение)
- Подробное объяснение трех основных журналов MySQL (binlog, журнал повторов и журнал отмены).
- Реализация MVCC с помощью механизма хранения InnoDB.
- Процесс выполнения операторов SQL в MySQL
- Подробное объяснение кэша запросов MySQL
- Анализ плана выполнения MySQL
- Должен ли автоматически увеличивающийся первичный ключ MySQL быть непрерывным?
- Рекомендации по хранению данных типа времени MySQL
- Неявное преобразование MySQL вызывает сбой индекса
Редис
Краткое изложение знаний/вопросов для собеседования : (обязательно прочитать: +1: ):
- Общие сведения о Redis и краткое изложение вопросов на собеседовании (часть 1)
- Общие сведения о Redis и краткое изложение вопросов на собеседовании (часть 2)
Важные моменты знаний:
- Подробное объяснение трех часто используемых стратегий чтения и записи кэша.
- Подробное объяснение 5 основных структур данных Redis.
- Подробное объяснение трех специальных структур данных Redis.
- Подробное объяснение механизма сохранения Redis.
- Подробное объяснение фрагментации памяти Redis
- Краткое изложение распространенных причин блокировки Redis
- Подробное объяснение кластера Redis
МонгоБД
- Общие сведения о MongoDB и краткое изложение вопросов на собеседовании (Часть 1)
- Общие сведения о MongoDB и краткое изложение вопросов на собеседовании (часть 2)
поисковая система
Краткое изложение распространенных вопросов на собеседовании в Elasticsearch (платно)
инструменты разработки
Мавен
- Краткое изложение основных концепций Maven
- Лучшие практики Maven
Градл
Краткое изложение основных концепций Gradle (необязательно, Maven по-прежнему более распространен в Китае)
Докер
- Краткое изложение основных концепций Docker
- Докер на практике
Гит
- Краткое изложение основных концепций Git
- Краткое изложение практических советов GitHub
Проектирование системы
- Краткое изложение общих вопросов собеседования по проектированию систем
- Краткое изложение распространенных вопросов на собеседовании о шаблонах проектирования
База
- Краткое руководство по RestFul API
- Краткое руководство по программной инженерии Краткое руководство по программной инженерии
- Рекомендации по присвоению имен кода
- Руководство по рефакторингу кода
- Руководство по модульному тестированию
Часто используемые фреймворки
Spring/SpringBoot (нужно прочитать?)
Краткое изложение знаний/вопросов для собеседования :
- Общие сведения о Spring и краткое изложение вопросов на собеседовании
- Общие сведения о SpringBoot и краткое изложение вопросов на собеседовании
- Сводка общих аннотаций Spring/Spring Boot
- Руководство по началу работы с SpringBoot
Подробное объяснение важных моментов знаний :
- Подробное объяснение IoC и AOP (быстро поймете)
- Подробное объяснение транзакций Spring
- Подробное объяснение шаблонов проектирования в Spring
- Подробное объяснение принципа автоматической сборки SpringBoot
МойБатис
Краткое изложение распространенных вопросов на собеседовании MyBatis
Безопасность
Аутентификация и авторизация
- Подробное объяснение основных понятий аутентификации и авторизации.
- Подробное объяснение основных концепций JWT
- Анализ преимуществ и недостатков JWT и решения распространенных проблем
- Подробное объяснение единого входа в систему
- Подробное объяснение конструкции системы разрешений
- Краткое изложение распространенных алгоритмов шифрования
Десенсибилизация данных
Десенсибилизация данных означает, что мы искажаем конфиденциальные информационные данные в соответствии с определенными правилами. Например, мы используем * для замены определенных цифр номеров мобильных телефонов и идентификационных номеров.
Чувствительная фильтрация слов
Краткое изложение решений по фильтрации конфиденциальных слов
запланированные задачи
Подробное объяснение запланированных задач Java
Отправка веб-сообщений в режиме реального времени
Подробное объяснение отправки сообщений в режиме реального времени через Интернет.
распределенный
Теория, алгоритм и протокол
- Интерпретация теории CAP и теории BASE
- Интерпретация алгоритма Паксоса
- Интерпретация алгоритма Рафта
- Подробное объяснение протокола Gossip
ПКП
- Краткое изложение базовых знаний RPC
- Общие сведения о Даббо и краткое изложение вопросов на собеседовании
смотритель зоопарка
Эти две статьи могут иметь пересекающееся содержание, поэтому рекомендуется прочитать их обе.
- Краткое изложение концепций, связанных с ZooKeeper (начало работы)
- Краткое изложение концепций, связанных с ZooKeeper (расширенный уровень)
API-шлюз
- Краткое изложение основ API-шлюза
- Общие сведения о Spring Cloud Gateway и краткое изложение вопросов на собеседовании
Распределенный идентификатор
- Введение в распределенный идентификатор и краткое описание решений по внедрению
- Руководство по проектированию распределенных идентификаторов
Распределенная блокировка
- Введение в распределенные блокировки
- Краткое изложение распространенных решений по реализации распределенных блокировок
Распределенные транзакции
Общие сведения о распределенных транзакциях и краткое изложение вопросов на собеседовании
Центр распределенной конфигурации
Общие сведения о центре распределенной конфигурации и краткое изложение вопросов на собеседовании
высокая производительность
Оптимизация базы данных
- Разделение чтения и записи базы данных, подбаза данных и подтаблица
- Разделение горячих и холодных данных
- Краткое изложение распространенных методов оптимизации SQL
- Подробное представление о пейджинге и предложения по оптимизации.
балансировка нагрузки
Общие сведения о балансировке нагрузки и краткое изложение вопросов на собеседовании
CDN
CDN (сеть распространения контента): общие сведения и краткое изложение вопросов на собеседовании
очередь сообщений
- Краткое изложение базовых знаний об очереди сообщений
- Общие сведения о Disruptor и краткое изложение вопросов на собеседовании
- Общие сведения о RabbitMQ и краткое изложение вопросов на собеседовании
- Общие сведения о RocketMQ и краткое изложение вопросов на собеседовании
- Общие сведения о Кафке и краткое изложение вопросов на собеседовании
Высокая доступность
Руководство по проектированию высокодоступной системы
Резервируемая конструкция
Подробное объяснение избыточной конструкции
Ограничение тока
Подробное объяснение ограничения рабочего тока
Понижение версии и автоматический выключатель
Подробное объяснение понижения версии и автоматического выключателя
Тайм-аут и повторная попытка
Подробное объяснение тайм-аута и повторной попытки
кластер
Разверните несколько копий одной и той же службы, чтобы избежать единых точек сбоя.
Проектирование аварийного восстановления и многофункциональность в удаленных местах
Аварийное восстановление = аварийное восстановление + резервное копирование.
- Резервное копирование : сделайте несколько копий всех важных данных, созданных системой.
- Аварийное восстановление : установите две идентичные системы в разных местах. Когда где-то вдруг зависает система, всю прикладную систему можно переключить на другую, чтобы система могла нормально предоставлять сервисы.
Мультиактивность в удаленных местах описывает развертывание услуг в удаленных местах, при этом услуги предоставляются внешнему миру одновременно. Основным отличием от традиционного дизайна аварийного восстановления является «мультиактивность», то есть все сайты одновременно предоставляют услуги внешнему миру. Жить в разных местах – значит справляться с чрезвычайными ситуациями, такими как пожары, землетрясения и другие природные или техногенные катастрофы.
Звездные Тенденции
Официальный аккаунт
Если вы хотите следить за моими обновленными статьями и общей информацией в режиме реального времени, вы можете подписаться на мой официальный аккаунт.