Skip to main content
JVM 是什么

Java 虚拟机是一台包含类加载、运行时数据区、垃圾收集算法、Java 虚拟机指令优化等功能的一台【虚拟机】,就像一个接口,只是定义了一些方法和参数类型等,但是其内部的具体实现是没有的。

所以,说 Hotspot 是 Java 虚拟机没错,但是如果说 Java 虚拟机就是 Hotspot 则是错的,因为 Hotspot 虚拟机只是 Oracle JDK 的实现罢了,曾经的我也一度以为 Java 虚拟机就是 Hotspot ,Hotspot 就是 Java 虚拟机,后来也是在拜读了周志明老师的《深入理解Java虚拟机:JVM高级特性与最佳实践》一书后恍然。

此处引用官方对 Java 虚拟机的描述即


MarshioAbout 1 minjavabase
Java 中的类加载机制

简单来说,类加载就是Java将 .class 文件加载到程序内存中,随时准备被调用,其中所做的一些列动作就是类加载,包括加载连接初始化三个步骤,其中连接又分为验证准备解析三步。。

加载(Loading)

这是类加载的第一步,其作用是通过类的全限定名来获取定义该类的二进制字节流(编译好的 .class 文件),然后将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构,最后在内存中生成一个代表这个类的 java.lang.Class 对象,作为方法区这个类的各种数据的访问入口。


MarshioAbout 6 minjavabase
Java Base

Currently, the latest version of Java is 24,the latest LTS (Long-Term Support) version is 21.


MarshioAbout 2 minjavabase
构建工具之 gradle

本文对应的项目请参考demo gradle

项目结构

demo-gradle/
├── gradle/
│   └── wrapper/                        // 包含 Gradle Wrapper 的 JAR 文件和配置文件
│       ├── gradle-wrapper.jar          // Gradle Wrapper 的可执行 JAR 文件
│       └── gradle-wrapper.properties   // 包含 Gradle Wrapper 的配置信息
├── src/
│   ├── main/
│   │   ├── java/
│   │   │   └── com/
│   │   │       └── example/
│   │   │           └── project/
│   │   │               └── Main.java
│   │   └── resources/
│   │       └── application.properties
│   └── test/
│       ├── java/
│       │   └── com/
│       │       └── example/
│       │           └── project/
│       │               └── MainTest.java
│       └── resources/
│           └── test.properties
├── .gitignore
├── build.gradle        // Gradle 构建脚本
├── gradlew             // Gradle Wrapper 的可执行脚本
├── gradlew.bat         // Gradle Wrapper 的 Windows 版本的可执行脚本
└── settings.gradle     // Gradle 设置文件

MarshioAbout 4 minjavabase
Spring Mybatis Plus

简介

背景

Mybatis-plus: 3.5.2 springboot: 2.3.8.RELEASE

快速开始

添加依赖

        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
        </dependency>

MarshioAbout 3 minjavajavaMybatis Plus
Spring Dynamic Datasource

依赖


        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
        </dependency>

MarshioAbout 1 minjavajavaswaggerknife4j
Spring Swagger

介绍

Swagger 又称Open API,是一种API规范,用于描述RESTful API,就像接口,只是定义需要哪些东西,但是不包括具体的实现。

springfox

使用前我们需要先了解一下springfox.

快速开始

pom

        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-boot-starter</artifactId>
            <version>3.0.0</version>
        </dependency>

MarshioAbout 2 minjavajavaswagger