
JVM
monkey-jie
这个作者很懒,什么都没留下…
展开
-
Java内存模型(JMM)知识整理
Java内存模型的主要目标定义程序中各个变量的访问规则,即在虚拟机中将变量存储到内存和从内存中取出变量这样的底层细节。一、主内存和工作内存1、主内存:类似物理硬件的主内存,是所有线程共享的。线程间变量值的传递均需通过主内存来完成。2、工作内存:每个线程自己的独有内存,这里保存了在线程中需要使用的主内存数据的副本(只是要用的那部分),线程对变量的所有操作都必须在工作内存中进行,不能直接读写主内...原创 2019-05-28 21:36:35 · 342 阅读 · 0 评论 -
jvm高级特性——垃圾收集算法
一、对象是否死亡?1、引用计数法给对象添加一个引用计数器,每当对象被引用一次时,计数器+1,引用失效时,计数器-1.任何时刻计数器为0的对象就是不可能再被使用的,也就是对象已经死亡。但是jvm没有选择这个算法来管理内存,因为它不能解决对象之间相互循环引用的问题。2、可达性分析算法将“GC roots”(类静态属性引用的对象或者常量引用的对象等)作为起始点,向下搜索(搜索所走过的路径称为引用...原创 2019-06-05 22:05:32 · 136 阅读 · 0 评论 -
OutOfMemoryError异常总结
1、OutOfMemoryError系列(1): Java heap space2、OutOfMemoryError系列(2): GC overhead limit exceeded3、OutOfMemoryError系列(3): Permgen space4、OutOfMemoryError系列(4): Metaspace5、OutOfMemoryError系列(5): Unable t...转载 2019-06-04 16:14:04 · 310 阅读 · 0 评论 -
java虚拟机运行时数据区域与虚拟机对象
一、运行时数据区域Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,已经创建和销毁时间,有的区域随着虚拟机进程的启动而创建,有些区域则依赖用户线程的启动和结束而创建和销毁。1、程序计数器它是一块较小的内存空间,可看做线程执行字节码的行号指示器。字节码解释器通过改变计数器的值来选取下一条要执行的指令。每条线程都需要有一个独立的程序...原创 2019-06-03 15:12:35 · 144 阅读 · 0 评论 -
Java字节码指令简介
Java虚拟机采用基于栈的架构,其指令由操作码和操作数组成。操作码:一个字节长度(0~255),意味着指令集的操作码个数不能操作256条。操作数:一条指令可以有零或者多个操作数,且操作数可以是1个或者多个字节。编译后的代码没有采用操作数长度对齐方式,当处理超出一个字节的数据时,不得不在运行时从字节中重建出具体数据的结构,比如16位无符号整数需使用两个字节储存(假设为byte1和byte2),...原创 2019-07-01 20:08:22 · 607 阅读 · 0 评论 -
Class类文件的结构(一)常量池、访问标志和索引
前言:Class类文件是一组以8字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑地排列在Class文件之中,中间没有添加任何分隔符,这使得整个Class文件中存储的内容几乎全部是程序运行的必要数据,没有空隙存在。当遇到需要占用8位字节以上空间的数据项时,则会按照高位在前的方式分隔成若干8位字节进行存储。Class文件采用一种类似C语言结构体的伪结构来存储数据。伪结构中有两种数据类型:无...原创 2019-06-30 18:06:38 · 418 阅读 · 0 评论 -
Class类文件的结构(二)字段表集合
字段表较复杂,用于描述接口或类中声明的变量。字段包含了类级变量(static修饰的类变量)或实例级变量,但不包括方法内部声明的变量。字段包含的信息有:字段的作用域及其它可能的修饰符(final,static,volatile之类)字段数据类型(基本数据类型、数组或对象)字段名称字段表的结构如下:access_flags(字段的作用域及其它修饰符)同 访问标志 一节中类似,也是通过...原创 2019-06-30 19:27:55 · 332 阅读 · 0 评论 -
Class类文件的结构(三)方法表和属性表
一、方法表方法表结构如下图所示:和字段表类似,依次包含访问标志(access_flags)、名称索引(name_index)、描述符索引(descriptor_index)、属性表集合(attributes)几项。因为volatile关键字和transient关键字不能修饰方法,所以方法表中的访问标志没有这两个。与之相对的,synchronized、native、strictfp和abst...原创 2019-06-30 20:44:31 · 809 阅读 · 0 评论