diff --git a/dev/architecture/Паттерн проектирования.md b/dev/architecture/Паттерн проектирования.md index ec1d031c..1d3a6430 100644 --- a/dev/architecture/Паттерн проектирования.md +++ b/dev/architecture/Паттерн проектирования.md @@ -10,25 +10,27 @@ linked: --- - [[Dependency Injection]] - [[Порождающий паттерн проектирования]] + - Abstract Factory: создаёт группы связанных элементов. - [[Builder Pattern|Builder Pattern]]: строит объекты поэтапно, разделяя процесс создания и внешний вид. - -- Abstract Factory: создаёт группы связанных элементов. -- Prototype: создаёт копии полностью подготовленных экземпляров. -- Singleton: One and Only — особый класс, имеющий только один экземпляр. -- Adapter: Universal Plug — соединяет объекты с разными интерфейсами. -- Bridge: Function Connector — связывает, как объект работает, с тем, что он делает. -- Composite: Tree Builder — формирует древовидные структуры из простых и сложных частей. -- Decorator: Customizer — добавляет функции объектам, не меняя их основу. -- Facade: One-Stop-Shop — представляет всю систему через один упрощённый интерфейс. -- Flyweight: Space Saver — эффективно использует небольшие, многократно используемые элементы. -- Proxy: Stand-In Actor — представляет другой объект, управляя доступом или действиями. -- Chain of Responsibility: Request Relay — передаёт запрос по цепочке объектов до его обработки. -- Command: Task Wrapper — превращает запрос в объект, готовый к выполнению. -- Iterator: Collection Explorer — последовательно получает доступ к элементам коллекции. -- Mediator: Communication Hub — упрощает взаимодействие между различными классами. -- Memento: Time Capsule — сохраняет и восстанавливает состояние объекта. -- Observer: News Broadcaster — уведомляет классы об изменениях в других объектах. -- Visitor: Skillful Guest — добавляет новые операции классу, не изменяя его. + - [[../other/Статическая фабрика|Статическая фабрика]] + - Prototype: создаёт копии полностью подготовленных экземпляров. + - Singleton: One and Only — особый класс, имеющий только один экземпляр. +- Структурные паттерны + - Adapter: Universal Plug — соединяет объекты с разными интерфейсами. + - Bridge: Function Connector — связывает, как объект работает, с тем, что он делает. + - Composite: Tree Builder — формирует древовидные структуры из простых и сложных частей. + - Decorator: Customizer — добавляет функции объектам, не меняя их основу. + - Facade: One-Stop-Shop — представляет всю систему через один упрощённый интерфейс. + - Flyweight: Space Saver — эффективно использует небольшие, многократно используемые элементы. + - Proxy: Stand-In Actor — представляет другой объект, управляя доступом или действиями. +- Поведенческие паттерны + - Chain of Responsibility: Request Relay — передаёт запрос по цепочке объектов до его обработки. + - Command: Task Wrapper — превращает запрос в объект, готовый к выполнению. + - Iterator: Collection Explorer — последовательно получает доступ к элементам коллекции. + - Mediator: Communication Hub — упрощает взаимодействие между различными классами. + - Memento: Time Capsule — сохраняет и восстанавливает состояние объекта. + - Observer: News Broadcaster — уведомляет классы об изменениях в других объектах. + - Visitor: Skillful Guest — добавляет новые операции классу, не изменяя его. - [[../../../../_inbox/Transactional Inbox|Transactional Inbox]] - [[Transactional Outbox]] @@ -50,4 +52,5 @@ linked: - [[Dependency Injection]] - [[Transactional Outbox]] - [[Порождающий паттерн проектирования]] +- [[Статическая фабрика]] diff --git a/dev/java/ClassLoader.md b/dev/java/ClassLoader.md index 2ee9b890..6439751e 100644 --- a/dev/java/ClassLoader.md +++ b/dev/java/ClassLoader.md @@ -1,5 +1,7 @@ --- -aliases: +aliases: + - Class Loader + - Class Loaders tags: - maturity/🌱 date: 2024-11-04 diff --git a/dev/java/Execution Engine.md b/dev/java/Execution Engine.md new file mode 100644 index 00000000..cff8821e --- /dev/null +++ b/dev/java/Execution Engine.md @@ -0,0 +1,29 @@ +--- +aliases: +tags: + - maturity/🌱 +date: 2024-11-24 +--- +Execution Engine — это основная часть [[Java Virtual Machine]] (JVM), которая выполняет [[Java байт-код|байт-код]] Java. Он играет важную роль в преобразовании скомпилированного байт-кода (`.class` файлы) в машинный код, который может быть выполнен на конкретной платформе. + +Этот процесс делает Java переносимой, позволяя одной и той же программе выполняться на различных устройствах и операционных системах. Это достигается тем, что байт-код, сгенерированный компилятором Java, является платформенно-независимым, а Execution Engine адаптирует его для конкретной машины. + +**Основные компоненты Execution Engine** +- [[ClassLoader|Class Loader]] (Загрузчик классов). Class Loader отвечает за загрузку классов и интерфейсов в JVM по мере их необходимости. Например, это полезно при работе с фреймворками, такими как Spring, где классы могут загружаться динамически в зависимости от конфигурации или окружения. Это позволяет программам динамически подключать классы, снижая начальное время загрузки и делая систему более гибкой. +- **Interpreter (Интерпретатор)** Интерпретатор отвечает за выполнение байт-кода, читая его инструкции и выполняя их одну за другой. Хотя интерпретация обеспечивает гибкость, она может быть медленнее по сравнению с компилированным исполнением, так как требует постоянного преобразования байт-кода в машинный код во время выполнения. +- **Just-In-Time Compiler (JIT-компилятор)** Для повышения производительности JVM использует JIT-компилятор. JIT-компиляция преобразует часто выполняемые части байт-кода в машинный код, который может выполняться напрямую процессором. Это значительно ускоряет выполнение программы по сравнению с постоянной интерпретацией. +- [[gc/Garbage Collector|Garbage Collector]] (Сборщик мусора). Сборщик мусора управляет памятью JVM, автоматически освобождая её от объектов, которые больше не используются. Это предотвращает утечки памяти и снижает риск ошибок, связанных с ручным управлением памятью. + +*** +## Мета информация +**Область**:: [[../../meta/zero/00 Java разработка|00 Java разработка]] +**Родитель**:: [[Java Virtual Machine|JVM]] +**Источник**:: +**Создана**:: [[2024-11-24]] +**Автор**:: +### Дополнительные материалы +- [[Процесс выполнения Java программы|Процесс выполнения Java программы]] + +### Дочерние заметки + + diff --git a/dev/java/Java Virtual Machine.md b/dev/java/Java Virtual Machine.md index 856540d0..018d60cc 100644 --- a/dev/java/Java Virtual Machine.md +++ b/dev/java/Java Virtual Machine.md @@ -13,16 +13,4 @@ JVM (Java Virtual Machine) — это виртуальная машина, ко - [[gc/Garbage Collector|Сборка мусора]] (Garbage Collection). JVM использует сборщик мусора для автоматического освобождения памяти, занятой объектами, которые больше не используются. Это предотвращает утечки памяти и улучшает производительность приложения. - **Безопасность**. JVM обеспечивает безопасное выполнение кода с помощью системы управления доступом, проверяющей разрешения для выполнения определённых операций, таких как доступ к файловой системе, что помогает предотвратить выполнение вредоносного кода. - **Многопоточность**. JVM поддерживает [[../fundamental/Multithreading|многопоточность]], позволяя разрабатывать многопоточные приложения на уровне языка. Она управляет созданием, синхронизацией и выполнением потоков. -- **Управление исключениями**. JVM предоставляет механизм обработки исключений, который позволяет программам Java надёжно обрабатывать ошибки во время выполнения, повышая стабильность и устойчивость приложений. - -**Как работает JVM** -1. **Компиляция исходного кода в байт-код** - Исходный код (.java файлы) компилируется компилятором Java (javac) в байт-код (.class файлы), который является платформонезависимым промежуточным представлением. -2. **Загрузка байт-кода** - Класс-загрузчики JVM (Class Loaders) загружают байт-код в память. Существуют различные типы загрузчиков, такие как Bootstrap Class Loader, Extension Class Loader и Application Class Loader. -3. **Проверка байт-кода** - JVM проверяет байт-код для обеспечения его корректности и безопасности, чтобы предотвратить выполнение некорректного или вредоносного кода. -4. **Интерпретация или компиляция JIT** - JVM может интерпретировать байт-код или использовать Just-In-Time (JIT) компиляцию, которая преобразует байт-код в машинный код во время выполнения, улучшая производительность. -5. **Выполнение кода** - После загрузки и проверки байт-кода JVM выполняет его, управляя памятью, потоками и исключениями, обеспечивая надёжное выполнение программы. +- **Управление исключениями**. JVM предоставляет механизм обработки исключений, который позволяет программам Java надёжно обрабатывать ошибки во время выполнения, повышая стабильность и устойчивость приложений. \ No newline at end of file diff --git a/dev/java/Процесс выполнения Java программы.md b/dev/java/Процесс выполнения Java программы.md new file mode 100644 index 00000000..03f90cfa --- /dev/null +++ b/dev/java/Процесс выполнения Java программы.md @@ -0,0 +1,26 @@ +--- +aliases: +tags: + - maturity/🌱 +date: 2024-11-24 +--- +1. **Компиляция исходного кода в байт-код:** исходный код (`.java` файлы) компилируется компилятором Java (javac) в [[Java байт-код|байт-код]] (`.class` файлы). +2. **Загрузка байт-кода и классов:** класс-загрузчики [[Java Virtual Machine|JVM]] ([[ClassLoader|Class Loaders]]) загружают байт-код в память по мере необходимости. Сначала загружается основной класс, затем все остальные классы, необходимые для выполнения программы. +3. **Проверка байт-кода:** JVM проверяет байт-код для обеспечения его корректности и безопасности, чтобы предотвратить выполнение некорректного или вредоносного кода. +4. **Интерпретация:** интерпретатор начинает выполнение программы, интерпретируя байт-код в машинный код построчно. Этот этап позволяет сразу начать выполнение программы, не тратя время на полную компиляцию. Однако интерпретация может быть медленной, так как каждая инструкция должна заново преобразовываться в машинный код. +5. **JIT-компиляция:** Чтобы ускорить выполнение, JVM использует Just-In-Time (JIT) компилятор, который преобразует часто выполняемые части байт-кода в машинный код, позволяя процессору выполнять их напрямую. +6. **Сборка мусора:** Сборщик мусора (Garbage Collector) автоматически освобождает память от объектов, которые больше не используются, что предотвращает утечки памяти и снижает нагрузку на разработчика. Это улучшает управление ресурсами и обеспечивает надёжное выполнение программы. + +*** +## Мета информация +**Область**:: [[../../meta/zero/00 Java разработка|00 Java разр аботка]] +**Родитель**:: [[Java Virtual Machine|JVM]] +**Источник**:: +**Создана**:: [[2024-11-24]] +**Автор**:: +### Дополнительные материалы +- + +### Дочерние заметки + + diff --git a/dev/linux/Команды управления диском в Linux.md b/dev/linux/Команды управления диском в Linux.md new file mode 100644 index 00000000..a584248a --- /dev/null +++ b/dev/linux/Команды управления диском в Linux.md @@ -0,0 +1,63 @@ +--- +aliases: +tags: + - maturity/🌱 +date: 2024-11-24 +--- +## Просмотр информации о дисках +- `lsblk` - Список блочных устройств (диски и разделы). +- `fdisk -l` - Показать таблицу разделов и информацию о диске. +- `blkid` - Показать атрибуты блочного устройства (UUID, файловые системы). +- `df -h` - Показать использование дискового пространства в удобочитаемом формате. +- `du -sh ` - Суммировать использование пространства директорией. +## Разделение дисков +- `fdisk ` - Интерактивный инструмент для разделения диска. +- `parted ` - Создание, изменение и управление разделами на диске. +- `cfdisk ` - Инструмент с текстовым интерфейсом для манипуляции разделами. +- `gdisk ` - Редактор таблицы разделов GPT. +## Управление файловыми системами +- `mkfs.ext4 ` - Создать файловую систему ext4 на разделе. +- `mkfs.xfs ` - Создать файловую систему XFS на разделе. +- `mkfs.vfat ` - Создать файловую систему FAT32 на разделе. +- `mkfs.ntfs ` - Создать файловую систему NTFS на разделе. +- `tune2fs -L