摘要:
内存溢出 out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory; 内存泄露 memory leak,是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄露危害可以忽略,但内存泄露堆积后果很严重,无论多少内存,迟早会被占光。 memory 阅读全文
摘要:
类的生命周期 加载 验证 准备 解析 初始化 使用 卸载 验证、准备、解析为连接 解析与初始化交换顺序为动态绑定 类加载过程 包含了加载、验证、准备、解析、初始化阶段 1、加载 通过一个类的全限定名来获取此类的二进制字节流; 将这个字节流所代表的静态存储结构转换为方法区的运行时存储结构 在堆内存中生 阅读全文
摘要:
一、判断对象是否存活 1、引用计数算法 给对象添加一个引用计数器,每当一个地方引用了该对象,计数器加1,;当引用失效,计数器减1.当计数器为0表示该对象已死,可回收。但是无法解决两个对象互相引用的情况 2、可达性分析算法 通过一系列称为的GC Roots对象为起点,从这些节点往下搜索,搜索走过的路径 阅读全文
摘要:
一、判断对象是否存活 1、引用计数算法 给对象添加一个引用计数器,每当一个地方引用了该对象,计数器加1,;当引用失效,计数器减1.当计数器为0表示该对象已死,可回收。但是无法解决两个对象互相引用的情况 2、可达性分析算法 通过一系列称为的GC Roots对象为起点,从这些节点往下搜索,搜索走过的路径 阅读全文
摘要:
一、JVM原理 java编译器只要面向JVM,生成JVM能理解的字节码文件,Java源文件经过编译成字节码程序,通过JVM将每一条指令翻译成不同平台机器码,通过特定平台运行。 二、JVM运行时数据区 程序计数器是一个比较小的内存区域,用于指示当前线程所执行的字节码执行到了第几行,是线程私有的 虚拟机 阅读全文