02 2023 档案
摘要:JVM整体结构以及内存模型public class Math { public static final int initData = 666; public static User user = new User(); public int compute() { //一个方法对应一块栈帧内存区域
阅读全文
摘要:再来一个沙箱安全机制示例,尝试打破双亲委派机制,用自定义类加载器加载我们自己实现的 java.lang.String.class public class MyClassload1 extends ClassLoader { private String classPath; public MyCl
阅读全文
摘要:为什么要设计双亲委派机制? 沙箱安全机制:自己写的java.lang.String.class类不会被加载,这样便可以防止核心API库被随意篡改 避免类的重复加载:当父亲已经加载了该类时,就没有必要子ClassLoader再加载一次,保证被加载类的唯一性 全盘负责委托机制 “全盘负责”是指当一个Cl
阅读全文
摘要:Java里有如下几种类加载器 引导类加载器:负责加载支撑JVM运行的位于JRE的lib目录下的核心类库,比如rt.jar、charsets.jar等 扩展类加载器:负责加载支撑JVM运行的位于JRE的lib目录下的ext扩展目录中的JAR类包 应用程序类加载器:负责加载ClassPath路径下的类包
阅读全文
摘要:其中loadClass的类加载过程有如下几步: 加载 >> 验证 >> 准备 >> 解析 >> 初始化 >> 使用 >> 卸载 加载:在硬盘上查找并通过IO读入字节码文件,使用到类时才会加载,例如调用类的main()方法,new对象等等,在加载阶段会在内存中生成一个代表这个类的java.lang.C
阅读全文
摘要:锁分类 从性能上划分 乐观锁 适合读多的场景 悲观锁 适合写多的场景 从操作粒度划分 表锁 一般用作数据迁移、开销小加锁快 手动加表锁 lock table 表名称 read(write), 表名称2 read(write); 查看表上加过的锁 show open tables; 删除表锁 unlo
阅读全文
摘要:框架依赖 junit-4.13.2.jar junit-jupiter-5.9.2.jar junit-jupiter-api-5.9.2.jar junit-jupiter-engine-5.9.2.jar junit-jupiter-params-5.9.2.jar junit-platform
阅读全文
摘要:Mysql索引为什么选择B+树这种数据结构 1、二叉树无法解决单边增长的问题。 2、红黑树虽然可以通过节点旋转来达到节点自动平衡的问题、但无法有效控制树的高度。 3、B树、B+树 B树、B+树区别 相同点 每个数据页的节点都是从左到右依次递增的 不同点 B树数据都存储在对应的每个索引节点上且不会做冗
阅读全文
摘要:Explain用途 分析mysql中sql语句的执行计划 Explain变种 5.7之前用explain加上extended在分析结果中会多出一列filtered 5.7之前用explain加上partitions在分析的结果中会多出一列partitions partitions:当前表有没有分区(
阅读全文