摘要:
全表扫描这种情况的查询,很多缓冲页其实只会被访问一次,但是它却只因为被访问了一次而进入到 young 区域,从而导致热点数据被替换了 LRU 链表中 young 区域就是热点数据,只要我们提高进入到 young 区域的门槛,就能有效地保证 young 区域里的热点数据不会被替换掉 MySQL 是这样 阅读全文
摘要:
System.arraycopy() 方法用于将一个数组中的部分元素复制到另一个数组中的指定位置 System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length) src: 源数组srcPos:源数组中要复制 阅读全文
摘要:
interrupt(): 打断 sleep、wait、join 的线程会抛出 InterruptedException 异常并清除打断标记,如果打断正在运行的线程、park 的线程则会重新设置打断标记isInterrupted(): 不会清除打断标记interrupted(): 会清除打断标记 一、 阅读全文
摘要:
案例代码 @Slf4j public class JoinDemo { public static void main(String[] args) throws InterruptedException { Thread t1 = new Thread(() -> { log.info("{} 线 阅读全文
摘要:
Java 中的变量主要分为静态变量、普通成员变量、局部变量等,这些变量在单线程环境下是不会有线程安全问题的,但是多线程环境下实际情况又是什么样子的呢? 1、成员变量和静态变量 如果成员变量和静态变量不存在多个线程共享操作,那么不会有线程安全问题 如果成员变量和静态变量被多个线程共享,多个线程对共享变 阅读全文
摘要:
程序计数器 (Program Counter Register) 是一块较小的内存空间,它可以看做是当前线程所执行的字节码的行号指示器,存储的下一条将要执行的字节码指令的内存地址,在 Java 虚拟机的概念模型里,字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,它是程序 阅读全文
摘要:
类加载子系统负责从文件系统或者网络中加载字节码文件 类加载子系统整体架构图 可以看出,整个类加载子系统分为三个部分,加载、链接、初始化 一、加载 JVM 支持两种类型的类加载器,分别是引导类加载器(BootStrapClassLoader)和自定义加载器 从概念上来讲,自定义加载器一般指的是程序中由 阅读全文
摘要:
count(*): 底层会转化为 count(0) 来处理,默认横向扫描聚集索引树,如果有二级索引就扫描二级索引树(因为二级索引树更小,扫描成本低),扫描到一行记录之后,将该记录返回给 Server 层,由于参数是 0,不为 NULL,所以不需要读取记录中的任何字段,直接将 count 变量加 1 阅读全文