-
Java 使用 MapStruct 转换对象
介绍 MapStruct的作用是将类A转换为类B,省去了转换的setter、getter编码。 插件 IDEA可安装MapStruct插件。 添加依赖 <
-
Java 使用 SnakeYAML 解析 YAML 文件
介绍 SnakeYAML是针对YAML 1.1的Java解析器。 Maven 依赖 <dependency> <groupId>or
-
Java Lombok @RequiredArgsConstructor 注解
注解 @RequiredArgsConstructor 作用 在Spring中写在类上可以代替@Autowired或@Resource标注成员变量。 需要注意的
2022-06-03, Views: 4014 , Topics: Java Lombok Spring Boot
-
Java JDBC 开启事务
代码 connection.setAutoCommit(false);:开启事务。 connection.commit();:提交事务。 connection.rollback();:回滚事务。 b
-
OpenJDK 与 AdoptOpenJDK 的区别
OpenJDK 下载地址 https://jdk.java.net/archive AdoptOpenJDK 下载地址 官方下载地址:https://adopt
2022-06-01, Views: 4039 , Topics: Java
-
Java中的串行、并行、CMS 垃圾收集器
GC 算法 引用计数 复制 标记清除 标记整理 垃圾收集器 Serial串行:为单线程环境设计且只使用一个线程进行垃圾回收,会暂停所有用户的线程,所以不适
-
Java G1 垃圾回收器
以前收集器特点 年轻代和老年代是各自独立且连续的内存块。 年轻代收集使用eden+S0+S1进行复制算法。 老年代收集必须扫描整个老年代区域。 都是以尽可能少
-
JVM 常用参数
通用参数 -version -help java -showverison X 参数 -Xint:解释执行 -Xcomp:第一次使用就编译成本地代码 -Xmix
-
JVM:运行时方法区之常量池
Java 代码 public class StringTableDemo { public static void main(String[] arg
-
JVM:运行时数据区之虚拟机栈
基本内容 Java Virtual Machine Stack、Java栈、虚拟机栈。 每个线程在创建时都会创建一个虚拟机栈,其内部保存一个个的栈帧Stack
-
JVM:浅堆、深堆和保留集
浅堆 Shallow Heap。 浅堆是指一个对象所消耗的内存。 在32位系统中,一个对象引用会占据4个字节,一个int类型会占据4个字节,long型变量会占据
-
JVM:开启标量替换后仍有部分对象在堆中生成
标量替换 将普通对象中的字段拆解为基本数据类型和字符串,并且直接讲这些字段存放在线程栈中的局部变量表中,使得不用在堆中开辟空间初始化对象。避免了在堆中竞争锁去申
-
JVM:垃圾标记阶段算法之可达性分析法
可达性分析法 也叫根搜索算法、追踪性垃圾收集。 相对于引用计数算法而言,可达性分析算法不仅具备实现简单和执行高效等特点,更重要的是该算法可以有效地解决在引用计算
-
JVM:垃圾标记阶段算法之引用计数法
垃圾标记阶段 对象存活判断。 引用计数法 Reference Counting。 对每个对象保存一个整型的引用计数器属性。用于记录对象被引用的情况。 对于一个对
-
JVM:运行时数据区之程序计数器
名称 程序计数器、PC寄存器、Program Counter Register。 作用 用来存储指向下一条指令的地址,也即:将要执行的指令代码。由执行引擎取下一
-
JVM:类加载器
说明 基于Java11。 系统类加载器 ClassLoader systemClassLoader = ClassLoader.getSystemClassLo
-
JVM:类的加载过程
加载 Loading 通过一个类的全限定名获取定义此类的二进制字节流 将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构 在内存中生成一个代表这个类
-
Java 中的 GC Roots
判断是否会被回收 Java使用的是可达性分析法,为了解决引用计数法的循环引用问题。 引用计数法 枚举根节点做可达性分析(根搜索路径) 基本思想 以GC Ro
-
单例双重校验为什么还要加 volatile
单例代码 双重校验 + volatile public class Singleton { //防止在new对象时指令重排序 private
-
为什么匿名内部类引用外部局部变量必须要加 final 关键字
Java 代码 public class Test { public static void main(String[] args) {