摘要: 垃圾收集策略与算法 垃圾回收只针对线程共享内存: 堆、方法区 判断对象是否存活——不被任何对象或变量引用的是无效对象,需要被回收 引用计数法——存在循环引用的问题 对象头中维护一个计数器记录对象被引用的次数,当计数为零时对象无效 可达性分析法(HotSpot) 所有和 GC Roots 直接或间接关 阅读全文
posted @ 2020-08-25 20:09 CodeSPA 阅读(150) 评论(0) 推荐(0) 编辑
摘要: HotSpot虚拟机对象 对象内存模型 结构: 对象头(Header) 实例数据(Instance Data) 对齐填充(Padding) 对象头: 对象指针(类型指针/数组长度/...) 哈希码 GC分代年龄 锁状态标志 线程持有的锁 偏向线程ID 偏向时间戳 实例数据: 父类成员变量 本类成员变 阅读全文
posted @ 2020-08-25 20:07 CodeSPA 阅读(84) 评论(0) 推荐(0) 编辑
摘要: JVM内存结构 (线程)共享内存 堆 方法区(JDK1.7 永久代(位于虚拟机数据区) → JDK1.8 元数据区(位于本地内存)) (线程)私有内存 JVM虚拟机栈 本地方法栈 程序计数器PC 程序计数器(PC) 定义: 当前线程正在执行的字节码指令的地址。若线程正在执行的是本地方法,则为Unde 阅读全文
posted @ 2020-08-25 20:06 CodeSPA 阅读(103) 评论(0) 推荐(0) 编辑
摘要: LeetCode 633 平方数之和 题目描述: 给定一个非负整数 c ,你要判断是否存在两个整数 a 和 b,使得 a2 + b2 = c。 逆向双指针逼近 对于给定的整数target,可能存在的两个整数a、b均不可能大于floor(sqrt(c)), 因此在[0, floor(sqrt(c))] 阅读全文
posted @ 2020-08-25 00:11 CodeSPA 阅读(134) 评论(0) 推荐(0) 编辑