文档章节

jvm运行原理

 放牧少年
发布于 2017/07/21 14:42
字数 490
阅读 1
收藏 0

JVM内存管理及垃圾回收机制

Java代码编译和执行的整个过程

JVM内存管理及垃圾回收机制

 

Java代码编译

1.词法分析器

2.语义分析器

3.语义分析器

4.字节码生成器

5.生成.class文件

.class文件主要包括哪些东西

 

1.结构信息。包括class文件格式版本号及各部分的数量与大小的信息

2.元数据。对应于Java源码中声明与常量的信息。包含类/继承的超类/实现的接口的声明信息、域与方法声明信息和常量池

3.方法信息。对应Java源码中语句和表达式对应的信息。包含字节码、异常处理器表、求值栈与局部变量区大小、求值栈的类型记录、调试符号信息

类加载机制

JVM的类加载是通过ClassLoader及其子类来完成的

类执行机制

JVM是基于栈的体系结构来执行class字节码的。线程创建后,都会产生程序计数器(PC)和栈(Stack),程序计数器存放下一条要执行的指令在方法内的偏移量,栈中存放一个个栈帧,每个栈帧对应着每个方法的每次调用,而栈帧又是有局部变量区和操作数栈两部分组成,局部变量区用于存放方法中的局部变量和参数,操作数栈中用于存放方法执行过程中产生的中间结果。

Jvm内存组成结构

堆,所有通过new创建的对象的内存都在堆中分配

栈,每个线程执行每个方法的时候都会在栈中申请一个栈帧

方法区,存放了要加载的类信息、静态变量、final类型的常量、属性和方法信息

 

根据网络文章整理

 

 

 

 

© 著作权归作者所有

共有 人打赏支持
上一篇: linux命令
粉丝 0
博文 31
码字总数 17279
作品 0
浦东
程序员
私信 提问
[Java] JAVA和JVM运行原理

JVM是java的核心和基础,在java编译器和os平台之间的虚拟处理器。它是一种利用软件方法实现的抽象的计算机基于下层的操作系统和硬件平台,可以在上面执行java的字节码程序。 编译器负责把Jav...

枫兮兮
2014/03/12
0
0
编写你的第一个HelloWorld

写在前面的话 因为Java基础是以后学习框架的基石,因此开个文集首先写写Java基础,本来想直奔基础知识的介绍,但是为了保证知识的完整性,因此从Java安装和运行“hello world”开始(虽然百度...

nanaFighting
06/15
0
0
【精致Java教程】Java的跨平台原理

Java的一大特色就是“write once, run anywhere”即“一次编译,到处运行”。就是说你不用专门为每个平台写一份代码,你写的Java程序在任何平台都能跑起来。 它的实现原理是在系统层面上又增...

糖宝_d864
07/10
0
0
在JAVA私塾学习时整理的一套学习笔记(第一章)

JAVA基础 第一章Java入门 一. Java是什么? 一种计算机编程语言 一种软件开发平台 一种软件运行平台(JRE :java runtime environment) 一种软件部署环境 二. Java版本: Java标准版:JSE...

神码码
2011/10/11
184
0
ThreadLocal 类 的源码解析以及使用原理

1、原理图说明      首先看这一张图,我们可以看出,每一个Thread类中都存在一个属性 ThreadLocalMap 成员,该成员是一个map数据结构,map中是一个Entry的数组,存在entry实体,该实体包...

小勇DW3
08/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Kubernetes 1.13.0的快速升级

Kubernetes 1.13.0已经正式发布,快速升级(含国内镜像快速下载链接)包括升级kubeadm/kubectl/kubelet版本、拉取镜像、升级Kubernetes集群三个主要步骤。注意Kubernetes 1.13.0版本暂时不支...

openthings
17分钟前
0
0
go的卸载和环境变量配个人.bashrc

若是用安装包直接解压 http://download.csdn.net/detail/u010026901/7592581 cd /usr/local tar -zxvf go1.1.2.linux-386.tar.gz(先把安装包移到这个目录) 3.安装 $ cd go/src,$ ./all.b......

dragon_tech
23分钟前
0
0
区块链安全 - 以太坊短地址攻击

1 基础知识 EVM虚拟机在解析合约的字节码时,依赖的是ABI的定义,从而去识别各个字段位于字节码的什么地方。关于ABI,可以阅读这个文档: https://github.com/ethereum/wiki/wiki/Ethereum-C...

HiBlock
33分钟前
1
0
自定义函数及内部函数

变量的作用域 局部变量 global $Global及其他超全局数组 静态变量 仅初始化赋值 保留于内存直到response才销毁 global和static变量的区别 global:局部变量全局话 static:定义静态局部变量 函...

关元
34分钟前
1
0

中国龙-扬科
47分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部