摘要: 一、概述 虚拟机把描述类的数据从Class文件(一串二进制的文件流)加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的java类型,这就是虚拟机的类加载机制。 二、类的生命周期 类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载、验证、准备、 解析 阅读全文
posted @ 2020-07-29 00:24 轨迹320 阅读(144) 评论(0) 推荐(0) 编辑
摘要: Java虚拟机所管理的内存包括一下几个运行时数据区域: 其中,方法区、堆是线程共享的,虚拟机栈、本地方法栈、程序计数器 是线程私有的。 1. 程序计数器 程序计数器是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器。分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器 阅读全文
posted @ 2020-07-29 00:15 轨迹320 阅读(81) 评论(0) 推荐(0) 编辑
摘要: 在Java虚拟机规范的描述中,除了程序计数器外,虚拟机内存的其他几个运行时区域都有发生OutOfMemoryError异常的可能。 1.Java堆溢出 Java堆用于存储对象实例,只要不断地创建对象,并且保证GC Roots到对象之间有可达路径来避免垃圾回收机制清除这些对象,那么在对象数量到达最大堆 阅读全文
posted @ 2020-07-29 00:13 轨迹320 阅读(593) 评论(0) 推荐(0) 编辑
摘要: 引用强度:强引用 > 软引用 > 弱引用 > 虚引用 强度依次逐渐减弱 1. 强引用 强引用就是指在程序代码之中普遍存在的,类似“Object obj = new Object()”这类的引用,只要强引用还存在,垃圾收集器永远不会回收掉被引用的对象。 2. 软引用 软引用是用来描述一些还有用但并非必 阅读全文
posted @ 2020-07-29 00:10 轨迹320 阅读(2734) 评论(0) 推荐(0) 编辑