JVM基本结构

  • 1.JVM 基本结构结构
  • 2.运行时数据区

1.JVM 基本结构结构

JVM 虚拟机: 主要是由 类加载器(classloader)、运行时数据区执行引擎本地接口库 四个部分组程。

  • 类加载器(Class Loader): 类加载器是用来加载class文件的,他负责将.class文件 中的二进制数据读取到内存中;将其放到运行时数据区; 类加载器有 启动类加载器 扩展类加载器 应用程序类加载器 ;
  • 本地接口库: 它是Java语言允许Java代码与C、C++代码交互的标准机制。程序执行过程中需要调用其他语言的接口 就是这个本地接口库。
  • 执行引擎:主要是将字节码翻译成底层系统指令交由CPU执行
  • 运行时数据区: 运行时数据区是由 PC程序计数器虚拟机栈虚拟机堆本地方法栈方法区五个部分组成。是面试过程中经常被问到的,问JVM一般就是问的运行时数据区。

2.运行时数据区

  • PC程序计数器:程序计数器是一块较小的内存空间,它可以看作是当前线程所执行字节码的行数指示器。在虚拟机的概念模型中,字节码解析器的工作是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器来完成。 特性:内存私有。

  • 虚拟机栈:一个线程的每个方法在执行的同时,都会创建一个栈帧,栈帧中存储的有局部变量表,操作站,动态链接,方法出口等 ,当方法被调用时 栈帧在JVM栈中入栈,当方法执行完成时,栈帧出栈. 每个线程对应着一个虚拟机栈,因此虚拟机栈也是线程私有的 。

  • 虚拟机堆:堆区 是用来存储对象实例的每一个new 出来的对象都会存储到堆区中; 堆是被共享的 特性:共享 。

  • 本地方法栈:本地方法栈在 运行机制、异常类型等方面都与虚拟机栈相同,唯一的区别就是 虚拟机栈是执行java方法的,而本地方法栈是用来执行native方法的,在很多虚拟机中,会将本地方法栈与虚拟机栈放在一起使用 本地方法栈 线程也是私有的 特性: 内存私有。

  • 方法区:方法区是用于存储已经被虚拟机加载的类信息、final常量、静态变量、编译器即时编译的代码等 方法区中包含常量池 用于存储编译期就生成的字面常量、符号引用、翻译出来的直接引用;如 string 字符创 就会存在常量池中。
    ​​​​

JVM | JVM基本结构相关推荐

  1. JVM之内存结构图文详解

    点击蓝色"程序猿DD"关注我 回复"资源"获取独家整理的学习资料! 对于开发人员来说,如果不了解Java的JVM,那真的是很难写得一手好代码,很难查得一手好bu ...

  2. JVM运行时结构、Java内存管理、JVM实例、HotSpot VM对象的创建、内存布局和访问定位

    1.JVM运行时结构 Java 运行时数据区域有程序计数器.Java虚拟机栈.本地方法栈.Java堆和方法区.其中前三个线程私有,随线程生而生,线程灭而灭:后面两个是线程间共享. 1.1 程序计数器 ...

  3. JVM的内存结构,Eden和Survivor比例;JVM中一次完整的GC流程,对象如何晋升到老年代,说说你知道的几种主要的JVM参数;CMS 常见参数解析;.你知道哪几种垃圾收集器,各自的优缺点

    47.JVM的内存结构,Eden和Survivor比例 49.JVM中一次完整的GC流程是怎样的,对象如何晋升到老年代,说说你知道的几种主要的JVM参数 50.-XX:+CMSScavengeBefo ...

  4. jvm虚拟机内存结构_JVM体系结构101:了解您的虚拟机

    jvm虚拟机内存结构 Java虚拟机(JVM)架构和Java字节码101的初学者速成班 Java应用程序无处不在,它们在我们的手机,平板电脑和计算机上. 在许多编程语言中,这意味着多次编译代码以使其在 ...

  5. 了解java虚拟机---JVM的基本结构(1)

    1. JVM的基本结构 1.1. 类加载子系统 类加载子系统负责从文件或者网络中加载Class信息,加载的类信息存放于方法区的内存空间.方法区中可能还会存放运行时常量信息,包括字符串与数字常量.(这部 ...

  6. JVM之内存结构详解

    对于开发人员来说,如果不了解Java的JVM,那真的是很难写得一手好代码,很难查得一手好bug.同时,JVM也是面试环节的中重灾区.今天开始,<JVM详解>系列开启,带大家深入了解JVM相 ...

  7. JVM之Class结构速记

    JVM之Class结构详解 Class文件规范 Class文件大结构总览 magic Class文件版本号 Constant_Pool常量池 各个表对应的含义 反编译代码示例 常量池中常量表对应数据结 ...

  8. JVM(一)JVM虚拟机内存结构 和 JAVA内存模型(JMM)

    本文转自:浅析java内存模型--JMM(Java Memory Model) - 路易小七 - 博客园,尊重作者,转载请注明出处~ JVM虚拟机内存结构 和 JAVA内存模型 是两个不同的概念 JV ...

  9. 一文解析JVM的内存结构,身为程序员还不弄懂JVM怎么行

    欢迎关注专栏:Java架构技术进阶.里面有大量batj面试题集锦,还有各种技术分享,如有好文章也欢迎投稿哦.微信公众号:慕容千语的架构笔记.欢迎关注一起进步. 前言 Jvm的内存结构是由<jav ...

  10. 【转】深入理解JVM—JVM内存模型

    原文链接 http://www.cnblogs.com/dingyingsi/p/3760447.html#top 深入理解JVM-JVM内存模型 我们知道,计算机CPU和内存的交互是最频繁的,内存是 ...

最新文章

  1. Linux那些事儿 之 戏说USB(29)驱动的生命线(一)
  2. 亲君圆梦,创业一起来
  3. MVC,MVP 和 MVVM 的图示
  4. Xcode 中关于#的小知识
  5. netsh winsock reset什么意思_商丘耐火砖什么意思,刹车片_马达加斯加嘎瓦石墨公司...
  6. list转为 数组[] 形式
  7. Python+OpenCV 十几行代码模仿世界名画
  8. git32位服务器构建_如何构建自己的Git服务器
  9. 移动端车牌识别,小功能大作用
  10. SpringBoot:使用Caffeine实现缓存
  11. 计算机桌面常用图标,电脑常用软件图标 常用的电脑软件图标
  12. ASA使用ASDM管理
  13. 网站后台导入文本编辑器
  14. java调用cmd命令
  15. (二)大话深度学习编译器中的自动调优·DSL与IR
  16. 前端框架,库,组件,插件,控件的理解
  17. 微软正式宣布 Visual Studio 2022!
  18. 在云服务的助力下,卫星遥感技术可以怎样造福人类?
  19. C++ 类与对象_类的其他成员(常成员,静态成员,友元)
  20. java mp4 合并_使用 Python 把多个 MP4 合成一个视频

热门文章

  1. QLExpress脚本语言技术讲解(3) -----QL的性能描述
  2. ubuntu查看端口使用情况
  3. 好用的蓝牙耳机有哪些推荐?十大蓝牙耳机品牌!
  4. GNOME 桌面顶部栏透明设置
  5. hibernate配置文件中inverse的作用
  6. 从 12.67s 到 1.06s 的网站性能优化实战
  7. 老闪创业那些事儿(75)——学梦网的地面部队(上)
  8. python airflow_airflow安装与使用
  9. java服务器生成随机数_java生成随机数
  10. 关于通过PHPMailer 用Google企业邮箱 提供邮件服务 资料转载