返回顶部

随笔分类 -  jvm

摘要:Java虚拟机规范中定义了Java内存模型(Java Memory Model,JMM)用来屏蔽掉各种硬件和操作系统的内存访问差异,以实现让Java程序在各种平台下都能达到一致的内存访问效果(“即Java程序的 write once run anywhere”)。 在此之前,主流程序语言(如C/C+ 阅读全文
posted @ 2018-12-08 16:02 jaden好青年 阅读(444) 评论(0) 推荐(0)
摘要:1、垃圾收集对象 垃圾收集主要是针对堆和方法区进行。 程序计数器、虚拟机栈和本地方法栈这三个区域属于线程私有的,只存在于线程的生命周期内,线程结束之后也会消失,因此不需要对这三个区域进行垃圾回收。 哪些内存需要回收? 死亡的对象-->对象存活判定算法(引用计数、可达性分析、finalize()方法) 阅读全文
posted @ 2018-12-04 22:19 jaden好青年 阅读(171) 评论(0) 推荐(0)
摘要:1、对象的创建 在语言层面上,创建对象(例如克隆,反序列化)通常仅仅是一个new关键字而已。 在虚拟机中,对象(文中讨论的对象限于普通 Java 对象,不包括数组和 Class 对象等)的创建过程如下: 1.1、分配内存 空间分配的两种方式 指针碰撞:当已分配空间被集中存放,已分配和未分配空间使用一 阅读全文
posted @ 2018-12-04 19:47 jaden好青年 阅读(187) 评论(0) 推荐(0)
摘要:1、类加载时机 类的整个生命周期包括了:加载( Loading )、验证( Verification )、准备( Preparation )、解析( Resolution )、初始化( Initialization )、使用( Using )和卸载( Unloading )七个阶段。其中验证、准备和 阅读全文
posted @ 2018-11-13 18:47 jaden好青年 阅读(308) 评论(0) 推荐(0)
摘要:JVM: 1、完成了 class 文件到机器语言的翻译转换。2、可以进行内存管理。 1、运行时数据区 1.1、程序计数器 记录当前线程正在执行的字节码指令的地址,如果正在执行的是 Native 方法,这个计数器值则为空。 1.2、虚拟机栈 每个 Java 方法在执行的同时会创建一个栈帧用于存储局部变 阅读全文
posted @ 2018-11-13 18:43 jaden好青年 阅读(333) 评论(0) 推荐(0)
摘要:将常量压入栈的指令 aconst_null 将null对象引用压入栈iconst_m1 将int类型常量-1压入栈iconst_0 将int类型常量0压入栈iconst_1 将int类型常量1压入栈iconst_2 将int类型常量2压入栈iconst_3 将int类型常量3压入栈iconst_4 阅读全文
posted @ 2018-11-12 11:48 jaden好青年 阅读(614) 评论(0) 推荐(0)