JVM的运行时内存区域是怎样的? 根据 Java 虚拟机规范的定义,JVM 的运行时内存区域主要由 Java 堆、虚拟机栈、本地方法栈、方法区和程序计数器以及运行时常量池组成。其中堆、方法区以及运行时常量池是线程之间共享的区域,而栈(本地方法栈+虚拟机栈)、程序计数器都是线程独享的。 程序计数器:一
JVM 如何判断对象是否存活 引用计数法 给对象添加一个引用计数器,每当有一个地方引用它,计数器就会加 1; 当引用失效,计数器就减 1; 任何时候计数器为 0 的对象就是不可能再被使用的。 这个方法简单高效,但是目前
空间分配担保机制 在每一次执行 Young GC 之前,虚拟机会检查老年代的最大可用的连续空间是否大于新生代的所有对象的总空间。 如果大于,那么说明本次 Young GC 是安全的。 如果小于,那么虚拟机会查看 HandlePromotionFailure(JDK 7 已移除)参数设置的值判断是否允
JVM中的垃圾回收算法 标记-清除 标记清除是最简单和干脆的一种垃圾回收算法,他的执行流程是这样子的:当 JVM 识别出内存中的垃圾以后,直接将其清除,但是这样有一个很明显的缺点,就是会导致内存空间的不连续,也就是会产生很多的内存碎片。 优点 速度快,因为不需要移动和复制对象
JVM 代码沙箱机制 Java 中的代码沙箱(Sandbox)机制是一种安全措施,旨在限制 Java 应用程序的行为,以防止潜在的安全风险。它为应用程序提供了一个受控的执行环境,确保这些应用只能访问被允许的资源和功能,从而保护主机系统免受恶意或不可信代码的危害。沙箱机制在 Java Applet 和
JVM 双亲委派机制 双亲委派机制(Parent Delegation Model)是 Java 类加载器体系结构中的一个核心原则,它规定了类加载器在尝试加载一个类时的行为模式。根据这一机制,当一个类加载器收到类加载请求时,它首先不会自己去尝试加载这个类,而是把这个请求委派给父类加载器去完成。只有当
MySQL binlog、redolog和undolog的区别 binlog 主要用来对数据库进行数据备份、崩溃恢复和数据复制等操作,redolog 和 undolog主要用于事务管理,记录的是数据修改操作和回滚操作。redolog 用来做恢复,undolog 用来做回滚。