В этом документе представлено всестороннее обобщение знаний по изучению Java, структурированное на основе карты технологического стека. Целью документа является руководство изучающих Java по структурированному пути, минимизация обходных путей и разъяснение направлений продвижения. Содержание охватывает различные аспекты, от шаблонов проектирования и параллелизма до JVM. внутренние устройства, платформы и распределенные системы. Отметьте этот репозиторий, если он вам полезен!
Это краткое изложение моих знаний по изучению Java. Я буду шаг за шагом улучшать всю структуру знаний на основе интеллект-карты стека технологий, представленной ниже.
Я надеюсь, что, поделившись им с вами, изучающими Java, вы сможете избежать некоторых обходных путей и найти направление для развития.
Если вы считаете это полезным, поставьте ему звезду и поддержите его~
Создание ссылок на значки происходит по адресу: https://shields.io/.
Создание онлайн-карт мозга: https://www.processon.com/
Каталог (используйте Ctrl+F)
Часто используемые шаблоны проектирования
Научите вас, как использовать шаблон стратегии для решения множества if-else.
Статья для понимания модели агентства
Научите вас элегантно создавать объекты, используя паттерн строитель (генератор).
Шаблон наблюдателя — применение механизма событий Spring
Применение шаблона декоратора и потока ввода-вывода
Схема-прототип и технология клонирования
Шаблон адаптера и SpringMVC
Интервьюер: Брат, давай поговорим о модели цепочки ответственности.
Искусство параллельного программирования
Интервьюер спросил меня, что такое JMM.
Для многопоточной разработки сначала узнайте о пулах потоков.
Пессимистическая блокировка и оптимистическая блокировка в параллельном программировании
Подробное объяснение AQS, которое необходимо изучить при параллельном программировании.
Придерживайтесь основного принципа синхронизированного ключевого слова
Просмотрите знания о параллелизме, начиная с ThreadLocal.
Базовые знания JVM
Объясните подробно! От JVM к загрузчику классов
Давайте поговорим о сборке мусора (GC) в JVM.
Что делать с OOM, научит генерировать файлы дампов и просматривать их.
Служба кэширования
Углубленное изучение пяти основных типов данных Redis.
Лавина Redis-кэша, разрушение кеша, проникновение в кеш
Играть с фильтрами Блума на самом деле очень просто.
Как Redis реализует распределенные блокировки
Структуры данных и алгоритмы
Краткое изложение восьми классических алгоритмов сортировки (с анимационной демонстрацией)
Обмен вопросами по классическому алгоритму литкода (строка)
Десять постов подряд, обмен вопросами по алгоритму Leetcode (хеш-таблица)
Отличная техническая основа, которую необходимо изучить
Глобальный механизм обработки исключений SpringMVC
Краткое изложение SpringMVC объемом 5000 слов, думаю, оно вам понадобится.
Хардкор! Анализ исходного кода Mybatis на основе шаблона проектирования
Что сделал SpringBoot при запуске? Вы поймете, прочитав это!
Какие шаблоны проектирования использует Spring?
Мибатис-Плюс так приятно пахнет!
Mybatis-Plus, анализ исходного кода BaseMapper
Как интегрировать несколько источников данных с Mybatis-Plus?
mybatis-plus анализ нескольких источников данных
сетевое программирование
NIO от начала до выбивания двери
Атакуйте НИО! Режим реактора!
Чтобы получить очень подробное представление о Netty, просто прочитайте эту статью!
Проблемы с расширенной упаковкой и распаковкой Netty
Если не понимаете, просто изучите, что такое JWT?
распределенный
Чтобы начать работу с ZooKeeper, просто прочитайте эту статью
Объясните подробно! От чата Flash Sale до распределенной блокировки ZooKeeper
Три тысячи слов, которые помогут вам понять платформу планирования задач XXL-JOB.
Центр конфигурации Apollo, конфигурация также может быть «умной»
Не знаете, что такое SkyWalking? Посмотрите на это!
Что такое ЭЛК? Вы поймете, прочитав это!
Очень подробное введение в Sentinel
Эта волна~ Эта волна представляет собой конфигурацию с несколькими средами.
Микросервисная архитектура
Микросервис SpringCloud: Центр регистрации
Микросервисы SpringCloud: OpenFeign
Шлюз очень важен, изучите Шлюз
Фильтр шлюза службы шлюза
База данных MySQL
Чтобы получить очень подробное введение в канал, просто прочитайте эту статью.
Canal+Kafka реализует синхронизацию данных между MySQL и Redis
Чтобы узнать, как разделить чтение и запись в репликации master-slave MySQL, просто прочитайте эту статью.
Хотите освоить оптимизацию SQL? Тогда научитесь объяснять!
Три типа журналов MySQL, которые вы должны знать
Что такое грязное чтение, неповторяемое чтение и фантомное чтение?
Давайте поговорим о понимании MySQL MVCC.
Что такое идентификатор снежинки?
Поговорите о том, как индекс MYSQL повышает эффективность запросов.
промежуточное программное обеспечение
Супер подробное введение в RabbitMQ
Объясните подробно! RabbitMQ предотвращает потерю данных
Позвольте мне начать с Кафки. Чем больше вы знаете, тем больше вы не знаете!
Начало работы с промежуточным программным обеспечением Pulsar
Основы Java
Основы Java непросты, давайте поговорим о перечислениях
Как настроить аннотации в Java?
Глубокое понимание класса String.
Основы Java непросты. Давайте поговорим о связи между hashCode() и Equals().
Основы Java непросты, дженерики очень важны!
большие данные
Изучение больших данных начинается с установки Hadoop (автономная версия)
Изучите MapReduce с помощью WordCount
Несколько небольших примеров использования MapReduce
Встречающиеся подводные камни
Подводные камни коллекции List
Обмен личным опытом
Запомните краткий обзор вопросов для собеседования по продвинутой разработке Java.