mhuahe Documentation
website·Indexed 30 days ago
https://mhuahe.github.io/mhuahe.com/A personal knowledge base and technical guide covering full-stack development. Includes documentation on Java (Spring Boot, Spring Cloud, multi-threading, Jsoup), Web technologies (React, Vite, CSS Grid, ElementUI, HTML), database tools (Elasticsearch, MongoDB), and development environment configurations for IntelliJ IDEA and VS Code.
What's inside mhuahe
- PKCS (Public-Key Cryptography Standards) is a set of standards developed by RSA Data Security and its partners. These standards define protocols for public key cryptography, including certificate requests, certificate updates, certificate revocation lists (CRLs), extended certificate content, and formats for digital signatures and digital envelopes.
Overview of JVM Architectural Components
The JVM architecture consists of three primary components that work together to execute Java programs:
- Class Loader: Responsible for loading
.classfiles into memory. The process follows three stages: Loading $\rightarrow$ Linking $\rightarrow$ Instantiation. If class loading fails, the program cannot proceed to the data area or execution engine. - Runtime Data Areas: Memory regions that store bytecode information and execution data. This area is the target for the Garbage Collector. Key regions include the Method Area, Heap, JVM Stack, Native Method Stack, and Program Counter Register (note: specific divisions vary between JDK 1.6, 1.7, and 1.8).
- Execution Engine: Translates bytecode instructions into native machine instructions for the host platform. It consists of:
- Interpreter: Reads and executes bytecode line-by-line (fast to start, slower execution).
- JIT (Just-In-Time) Compiler: Compiles 'hot' code paths into native code stored in cache for significantly faster execution.
- Garbage Collector: Reclaims unused objects from the Heap memory.
- Class Loader: Responsible for loading
Overview of SHA1 Hashing
SHA1 is a popular message digest algorithm similar to MD5. It is primarily used in digital signature standards. SHA1 is a one-way (irreversible) hashing algorithm, meaning the original data cannot be recovered from the hash.Introduction to CSS Grid Layout concepts
CSS Grid defines a layout system based on a container and items.
- Container: The area adopting the grid layout (defined by
display: grid). - Item: The direct children of the container. Only direct children are treated as grid items; nested children (grandchildren) are not.
<!-- The outer div is the 'container', the inner divs are 'items' --> <div> <div><p>1</p></div> <div><p>2</p></div> <div><p>3</p></div> </div>- Container: The area adopting the grid layout (defined by
Overview of JVM Architecture Components
The JVM architecture consists of three primary components that work together to execute Java applications:
- Class Loader: Responsible for loading
.classfiles into memory. The process follows three stages: Loading $ ightarrow$ Linking $ ightarrow$ Instantiation. If loading fails, the program cannot proceed to the runtime data areas or execution engine. - Runtime Data Areas: Memory regions used during program execution to store bytecode information and execution data. This area is the target for the Garbage Collector. Key regions include the Method Area, Heap, JVM Stack, Native Method Stack, and Program Counter Register (note: specific divisions vary between JDK 1.6, 1.7, and 1.8).
- Execution Engine: A software-implemented engine that translates bytecode instructions into platform-specific native machine instructions. It consists of:
- Interpreter: Reads and executes bytecode line-by-line; fast to start but slower during execution.
- JIT (Just-In-Time) Compiler: Compiles 'hot spot' code into native code stored in cache for significantly faster execution.
- Garbage Collector: Reclaims unused objects from the Heap memory.
- Class Loader: Responsible for loading
Overview of IDEA and DSA algorithms
IDEA (International Data Encryption Algorithm) is a symmetric-key algorithm that uses a 128-bit key to provide strong security. DSA (Digital Signature Algorithm) is a standard for digital signatures (DSS) and is used only for signing, not for encryption or decryption.Overview of IDEA and DSA algorithms
IDEA (International Data Encryption Algorithm) provides strong security using a 128-bit key. DSA (Digital Signature Algorithm) is a standard for digital signatures (DSS) and is used strictly for signing, not for encryption or decryption.Overview of other Java 11 features
Java 11 introduced several key technical updates:
- Epsilon GC: A 'no-op' garbage collector that handles memory allocation but does not reclaim it, used for performance testing and short-lived apps.
- Low-overhead Heap Profiling: A sampling method to obtain Java object allocation information via JVMTI.
- TLS 1.3: Implementation of RFC 8446 for improved security and performance over TLS 1.2.
- Java Flight Recorder (JFR): Open-sourced analysis tool for monitoring JVM performance.
Overview of Elgamal encryption algorithm
The ElGamal algorithm is a public-key cryptosystem based on the Diffie-Hellman key exchange. It is based on the difficulty of computing discrete logarithms in a cyclic group and can be used for both data encryption and digital signatures.Overview of Java Design Pattern Categories
Design patterns are categorized into four main groups based on their intent:
- Creational Patterns: Hide the logic of object creation, avoiding direct instantiation via the
newoperator. Examples: Factory, Abstract Factory, Singleton, Builder, Prototype. - Structural Patterns: Focus on the composition of classes and objects, using inheritance to combine interfaces and define new functionality. Examples: Adapter, Bridge, Filter/Criteria, Composite, Decorator, Facade, Flyweight, Proxy.
- Behavioral Patterns: Focus on communication between objects. Examples: Chain of Responsibility, Command, Interpreter, Iterator, Mediator, Memento, Observer, State, Null Object, Strategy, Template, Visitor.
- J2EE Patterns: Focus on the presentation layer and enterprise architecture. Examples: MVC, Business Delegate, Composite Entity, Data Access Object (DAO), Front Controller, Intercepting Filter, Service Locator, Transfer Object.
- Creational Patterns: Hide the logic of object creation, avoiding direct instantiation via the
Overview of popular OpenJDK distributions
Several organizations provide builds of OpenJDK with varying focuses:
- Temurin (Adoptium): Community-driven, free, and stable builds. Offers a choice between HotSpot and OpenJ9 JVMs.
- Oracle OpenJDK: A free version of OpenJDK compiled by Oracle without trademarks, though timely updates are not guaranteed.
- Azul Zulu: An open-source version provided by Azul. For enterprise-grade performance, they offer the commercial 'Azul Platform Prime' (Zing JVM).
- Microsoft OpenJDK: A production-ready distribution supporting Windows, macOS, and Linux, used internally for Azure, SQL Server, and VS Code.
- Alibaba Dragonwell: A free, production-ready distribution optimized for high-concurrency scenarios (e-commerce, finance). It focuses on LTS versions (Java 8 and 11) and currently supports Linux x64.
Overview of Java 11 key features
Java 11 introduced several significant updates:
- Epsilon GC: A non-collecting GC that allocates a fixed amount of memory and does not reclaim it, minimizing overhead.
- Low-overhead Heap Profiling: Provides sampling of heap allocations via JVMTI.
- TLS 1.3: Implementation of RFC 8446 for improved security and performance.
- Java Flight Recorder (JFR): Open-sourced analysis tool for monitoring application behavior.