- 博客(5)
- 收藏
- 关注
原创 AQS源码看不懂?两个断点帮你搞定
目录前言1、 一些基础知识2、CLH队列3、lock时的Debug3.1 lock方法干了些什么?3.2 acquire干了什么3.3 addWaiter干了什么3.3.1 Node对象的创建3.3.2 Node对象的插入3.4 acquireQueued干了什么3.4.1 predecessor方法3.4.2 shouldParkAfterFailedAcquire方法3.4.3 parkAndCheckInterrupt方法3.4.4 上面的if代码块4、 unlock时的Debug4.1 releas
2021-08-05 13:41:43
515
1
原创 mybatis 树结构查询时出现的坑
需求期望使用mybatis的级连查询得到树形结构数据返回, 代码如下:@Data@AllArgsConstructor@NoArgsConstructorpublic class DocumentTypeTreeNode { @ApiModelProperty("类型id") @JSONField(name = "value") private Long id; @ApiModelProperty("类型名称") @JSONField(name = "la
2021-07-21 10:38:54
868
2
原创 学习JVM中的堆?这一篇就够了!
JVM运行时数据区之——堆堆的概述异常与参数设置异常的产生通过参数修改堆大小堆的概述堆空间主要用于java中数组和实例对象的存储,其可能出现OOM,并且是GC主要关注的区域。 一般的,堆被分为以下几个部分:看不懂记不住?没关系,接下来我们一点一点的来进行了解。异常与参数设置异常的产生前面的简介中我们说到,堆上会发生OOM异常,OOM的产生情况也是很容易想到的: 我们的数组和实例对象都存放在堆上,当内存不足时发生OOM异常。public class TestOOM { public s
2021-03-30 14:42:36
276
原创 JVM运行时数据区之——虚拟机栈
JVM运行时数据区之——虚拟机栈虚拟机栈简介栈帧简介LocalVariableTableLineNumberTableDynamic LinkingReturn Adress虚拟机栈简介虚拟机栈是JVM运行时数据区的一个重要部分,他是线程私有的,同时可能存在StackOverFlowError和OutOfMemoryError。 StackOverFlowError出现在栈帧花费完栈内存容量时发生,OutOfMemoryError出现在动态扩展栈容量时无内存供其扩展时发生。 我们可以在运行时指定 -Xs
2021-03-28 11:10:38
289
原创 双亲委派机制和沙箱机制
双亲委派机制和沙箱安全机制双亲委派机制引导示例双亲委派机制沙箱安全机制问题抛出沙箱安全机制双亲委派机制引导示例当一个类被加载时,负责加载该类的类加载器(ClassLoader)是由双亲委派机制决定的。 在了解双亲委派机制之前,先来看看这样一个代码示例:package java.lang;public class Integer { static{ System.out.println("my Integer is loaded"); } public I
2021-03-25 19:39:28
340
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人