码迷,mamicode.com
首页 > 其他好文 > 详细

JVM简介

时间:2018-07-29 00:12:38      阅读:119      评论:0      收藏:0      [点我收藏+]

标签:short   use   操作   地方   web   回收   int   ack   私有   

一、JVM原理

技术分享图片

java编译器只要面向JVM,生成JVM能理解的字节码文件,Java源文件经过编译成字节码程序,通过JVM将每一条指令翻译成不同平台机器码,通过特定平台运行。

二、JVM运行时数据区

  • 程序计数器是一个比较小的内存区域,用于指示当前线程所执行的字节码执行到了第几行,是线程私有的
  • 虚拟机栈描述的是Java方法执行的内存模型,用于存储局部变量,操作数栈,动态链接,方法出口等信息,是线程私有的
  • 堆是用来存储对象示例以及数组值的区域,堆中对象需要等待GC回收,是线程共享的
  • 方法区在JVM中也是一个非常重要的区域,它与堆一样,是被 线程共享 的区域。 在方法区中,存储了每个类的信息(包括类的名称、方法信息、字段信息)、静态变量、常量以及编译器编译后的代码等。
  • 运行时常量池 存放类的固定的常量信息、方法和Field的引用信息等,其空间从方法区中分配
  • 本地方法栈 JVM采用本地方法堆栈来支持native方法的执行,此区域用于存储每个native方法调用的状态。
内存结构 作用 多线程
程序计数器 用于指示当前线程所执行的字节码执行到了第几行 线程私有的
虚拟机栈 JVM栈中存放的为当前线程中局部基本类型的变量(java中定义的八种基本类型:boolean、char、byte、short、int、long、float、double)、部分的返回结果以及Stack Frame,非基本类型的对象在JVM栈上仅存放一个指向堆上的地址 线程私有的
存储对象示例以及数组值的区域 线程共享的
方法区 存储了每个类的信息(包括类的名称、方法信息、字段信息)、静态变量、常量以及编译器编译后的代码等 线程共享的
运行时常量池 存放类的固定的常量信息、方法和Field的引用信息等,其空间从方法区中分配
本地方法栈 JVM采用本地方法堆栈来支持native方法的执行,此区域用于存储每个native方法调用的状态。

JVM简介

标签:short   use   操作   地方   web   回收   int   ack   私有   

原文地址:https://www.cnblogs.com/mingyi123/p/9383870.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!