JVM
文章平均质量分 86
扬帆起航_chao
以此勉励自己,多多总结经验,贴一贴项目中碰到的问题。
展开
-
划分
程序计数器 : 线程私有 唯一一个不会发生内存溢出的区域 存放了正在执行的虚拟机字节码指令地址. 栈 : 线程私有 每一个方法从调用到执行完成的过程,就对应着一个栈帧(存储了局部变量表等信息)在虚拟机栈中入栈和出栈的过程. 局部变量表存放了编译可知的各种基本数据类型 , 对象引用和returnAddress类型(指向了一条字节码指令的地址) 堆 : 线程共享 存放对象的实例原创 2018-01-23 16:32:00 · 197 阅读 · 0 评论 -
第三章 : 垃圾收集器与内存分配策略
标记为垃圾: 引用计数法 : 即当有一个地方引用A对象时,计数器就+1,当引用失效时,计数器-1.当为0时就可以回收了. 这样有个问题就是当两个可以回收的对象相互引用,这样引用不为0,不能自动回收. 目前主流的java虚拟机没有用引用计数法来管理内存. 可达性分析法 : 当对象与GC Roots没有可以到达的路径时,表示为可回收对象原创 2018-01-23 16:37:31 · 181 阅读 · 0 评论 -
第七章 虚拟机类加载机制
虚拟机把描述类的数据从Class文件加载到内存 , 并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的java类型,这就是虚拟机的类加载机制。 启动类加载器:主要加载\lib目录中的,或者被-Xbootclasspath参数所指定的路径中的类库加载到内存中. 扩展类加载器:负责加载\lib\ext目录中的,或者被java.ext.dirs系统变量所指定的路径中的所有类库原创 2018-01-24 15:26:32 · 191 阅读 · 0 评论 -
第六章 类文件结构
无关性的基石就是Class字节码文件 0~3是魔数:咖啡宝贝? 用来身份识别的; 4~7:是JDK版本号 8~9:是常量池个数 常量 常量分为两大类:字面量和符号引用,字面量就是如文本字符串,final声明的常量等. 符号引用包括三种: 类和接口的全限定名(例如:com/lc/test/TestDemo就是全限定名,将.换成了/,结束会加一原创 2018-01-24 15:26:46 · 221 阅读 · 1 评论