JVM --结构与运行
来源:互联网 发布:知福茶叶怎么样 编辑:程序博客网 时间:2024/05/17 23:08
一 JVM结构:
JVM包括:类加载子系统,内存空间,垃圾回收器,PC寄存器四部分。
首先我们来简单说一下这几部分:
PC寄存器:PC寄存器是属于线程级别的,在线程创建时创建,指向下一条指令的地址,在执行本地方法的时候PC值为undefined。这个和我们系统的PC计数器功能很相似,只不过PC寄存器管理的开发程序运行,而PC计算器管理的是系统软件运行。
垃圾收集器:说到垃圾收集器我们不得不说的就是GC算法,也就是垃圾回收机制是按照怎样的算法回收垃圾的。关于垃圾回收机制这里就不做详细解释了,下来会有相关的分析。
类加载器子系统: 这个就是我们的类怎么进入到JVM了,就是通过类加载器来加载进入JVM中。
内存空间:在这里有新的划分,包括,本地方法栈,java栈,java堆,方法区。
java堆:所有对象都保存在java堆中(所有new出来的对象都保存在java堆中),所有线程共享java堆。并且java堆分为新生代和老年代。新生代进一步划分为Eden、From Survivor、To Survivor。
java栈:和java堆整好相反,他是线程私有的,放的是方法的局部变量、操作数栈、常量池指针。总而言之他保存的是参数和局部变量,并放在一张局部变量表里面。而我们所说的内存泄漏是不包含java栈的。
方法区:大家看到名字可能首先想到的是这里保存的是方法类,其实不是,它保存的是类的信息,对类型进行的描述,包括了类型的常量池,字段方法信息,方法字节码。它与永久区相连,保存一些相对静止相对稳定的信息。
本地方法栈:为虚拟机使用到的Native方法服务。
二 JVM启动流程
JVM启动流程:通过当前路径和系统版本寻找JVM的配置文件,然后找到JVM.dll文件,然后通过JVM.dll 文件从初始化获取JVM接口,最后找到main方法并运行。在我们的开发程序运行的时候首先启动的是JVM,JVM启动之后通过类加载器将我们开发的方法加载进入,通过Java 栈来管理变量,通过java堆来管理对象,垃圾回收机制通过GC算法来回收无用的资源,当对象经过多次回收仍然存在,将会进入老年代。
0 0
- JVM --结构与运行
- JVM运行时栈帧结构
- JVM运行时内存空间结构
- JVM运行时内存结构
- JVM运行时内存结构
- JVM运行时内存结构
- JVM运行流程和结构
- java JVM运行时栈帧结构
- jvm-运行时内存结构
- JVM的运行时内存结构
- JVM结构概览与运行机制
- JVM理论与实践【内存结构】
- JVM:浅析Java虚拟机结构与机制
- Java JVM:内存结构与参数设置
- 浅谈JVM结构原理与数据区域
- JVM内存结构与垃圾回收总结
- JVM Server与Client运行模式
- JVM类加载与运行时优化
- String与StringBuffer的区别
- Swift-switch--与 OC 中的比较学习
- 简单的独立按键控制继电器
- C++的继承,多态和组合
- Fragment中加载ListView问题
- JVM --结构与运行
- HDU1040
- iptables中state模块的连接状态(下)
- 使用嗅探器--httplook,分析web调用流程
- Leetcode001:twoSum的Java解法
- C#如何弹出输入框
- java设计模式_解释器模式
- 解决GridLayout API level小于21时平均分配行列的问题
- 7. Reverse Integer