
JVM原理
深入理解JVM
-乾坤-
一名普通的研发工程师
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
JVM——栈帧的组成及工作原理
一、定义栈帧(stack frame)是用于支持虚拟机进行方法调用和方法执行的数据结构,它是虚拟机运行时数据区中的虚拟机栈的栈元素。栈帧存储了方法的局部变量表、操作数栈、动态连接和方法返回地址等信息。每一个方法从调用开始到执行完成的过程,就对应着一个栈帧在虚拟机栈里面从入栈到出栈的过程。对于执行引擎来说,活动线程中,只有栈顶的栈帧是有效的,称为当前栈帧,这个栈帧所关联的方法称为当前方法。执行引擎所运行的所有字节码指令都只针对当前栈帧进行操作。二、组成局部变量表局部变量表是一组变量值存储空间原创 2020-07-20 14:17:01 · 1226 阅读 · 0 评论 -
Java程序执行流程及对应的jvm内存结构
大致流程:首先xx.java文件–编译—>.class文件–加载–>方法区–解释运行.class文件详细执行流程需结合视频看:链接: https://pan.baidu.com/s/14eFyuyGHG7VevFqrqvx4dw 提取码: 45iyjvm运行区内存结构详解:运行程序时候为程序简单理解为分配三个区域:栈(栈帧:每个方法对应一个栈帧)堆(实例对象)方法区(....原创 2020-02-21 12:56:01 · 200 阅读 · 0 评论 -
jvm三种类加载器
jvm三种类加载器1、根加载器:负责加载系统类2、扩展类加载器:负责加载扩展类3、应用类加载器:负责加载程序员手写的类类加载器的选择机制双亲委派机制:如果一个类加载器收到了类加载的请求,它首先不会自己去尝试加载这个类,而是把这个请求委派给父类加载器去完成,每一个层次的加载器都是如此,因此所有的类加载请求都会传给顶层的启动类加载器,只有当父加载器反馈自己无法完成该加载请求(该加载器的搜索...原创 2019-11-07 16:44:46 · 668 阅读 · 0 评论 -
虚拟机类加载机制
1、在java语言里面,类型的加载和连接过程都是在程序运行期间完成的,这样会在类加载时增加一些性能开销,但是却可以为java应用程序提供高度的灵活性,java种天生可以动态扩展的语言特性就是依赖运行期动态加载和动态链接这个特点实现的。 动态加载:运行时动态加载所需要的资源(API或者第三方的java类库) 动态链接:就是要把程序运行时所需要的资源API以及资源文件,都重新进行组织生成可以单独运行原创 2017-12-13 21:44:05 · 144 阅读 · 0 评论 -
volatile关键字解析
原文链接: http://www.cnblogs.com/dolphin0520/p/3920373.html volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。 volatile是一个类型修饰符(type specifier),转载 2017-12-16 10:13:35 · 227 阅读 · 0 评论 -
JVM内存管理与垃圾回收机制
熟悉jvm内存管理与垃圾回收机制,更好的的处理内存溢出问题一、 java自动内存管理机制jvm运行时的数据区域:jvm在线运行时会把它所管理的内存划分为若干个不同的区域,这些区域都有各自的用途以及创建时间和销毁时间。 (1)程序计数器:它是一块较小的内存空间,是当前程序执行字节码的行号指示器(字节码指示器通过改变程序计数器的值来执行下一条需要执行的字节码的指令),它是线程私有的内存,...原创 2017-11-23 17:14:03 · 437 阅读 · 0 评论