Java虚拟机JVM的内部体系结构

JVM(Java虚拟机)是一个抽象机器。 它是一个提供可以执行Java字节码的运行时环境的规范。JVM可用于许多硬件和软件平台(即JVM是平台相关的)。

什么是JVM?

JVM(Java虚拟机)是:

  1. 指定Java虚拟机的工作的规范。 但实现提供程序是独立的选择算法。 其实现是由Sun和其他公司提供。

  2. 它的实现被称为JRE(Java运行时环境)。

  3. 运行时实例只要在命令提示符上编写java命令来运行java类,就会创建JVM的实例。

JVM(Java虚拟机)能做什么?

JVM执行以下操作:

  • 加载代码
  • 验证代码
  • 执行代码
  • 提供运行时环境

JVM提供了以下定义:

  • 内存区
  • 类文件格式
  • 寄存器集合
  • 垃圾收集堆
  • 致命错误报告等

JVM(Java虚拟机)内部体系结构

下面让我们来了解JVM的内部架构。它包含类加载器,内存区域,执行引擎等。

1)类加载器

Classloader是JVM的一个子系统,用于加载类文件。

2)类(方法)区域

类(方法)区域存储每个类结构,例如运行时常量池,字段和方法数据,方法的代码。

3)堆

它是分配对象的运行时数据区。

4)堆栈
Java堆栈存储帧。它保存局部变量和部分结果,并在方法调用和返回中起作用。
每个线程都有一个私有JVM堆栈,同时创建线程。每次调用方法时都会创建一个新的框架。 框架在其方法调用完成时被销毁。

5)程序计数器寄存器

PC(程序计数器)寄存器。 它包含当前正在执行的Java虚拟机指令的地址。

6)本地方法堆栈

它包含应用程序中使用的所有本地方法。

7)执行引擎

执行引擎包含:

  1. 虚拟处理器
  2. 解释器:读取字节码流,然后执行指令。
  3. 即时(JIT)编译器:它用于提高性能,JIT编译的同时有类似字节代码部分的功能,从而减少编译所需的时间。编译器是指从Java虚拟机(JVM)的指令集到特定CPU的指令集的转换器。

为了让学习变得轻松、高效,今天给大家免费分享一套Java入门教学资源。帮助大家在成为Java架构师的道路上披荆斩棘。需要资料的欢迎加入学习交流群:9285,05736

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/503239.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java并发编程——volatile

1. 并发编程的两个关键问题 并发是让多个线程同时履行,若线程之间是独立的,那并发实现起来很简单,各自履行各自的就行;但常常多条线程之间需要同享数据,此时在并发编程进程中就不可避免要斟酌两个问题:通讯…

求ax bx c 0的根c语言,关于求方程ax2+bx+c=0根的问题

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼#include #include#include #include #include"resource.h" BOOL CALLBACK DlgMain(HWND,UINT,WPARAM,LPARAM);int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd){DialogB…

c语言递归建链表,递归创建二叉树c语言实现+详细解释

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼void CreatBiTree(BiTree T){char a;scanf("%c",&a);if(a)TNULL;else{T(BiTree)malloc(sizeof(BiNode));T->dataa;CreatBiTree(T->lchild);CreatBiTree(T->rchild);}}虽能编译,但不能正确运行&a…

Java历经20年沧桑,将持续革新

对于企业界来说,很多服务器都部署着Java应用程序,许多物联网设备也都是基于Java技术开发。 20年前,Java为人们带来前所未有的科技理念:一次编写,到处运行。 在此之前,编程语言的种类寥寥无几,…

android动态设置src,Android 代码里设置ImageView的src和background

设置ImageView的src:image.setImageDrawable(getResources().getDrawable(R.drawable.blackk));String pathEnvironment.getExternalStorageDirectory()File.separator”test.jpg”;Bitmap bm BitmapFactory.decodeFile(path);image.setImageBitmap(bm);image.setImageResourc…

Java开发中定时器的使用

在JAVA中实现定时器功能要用的2个类是Timer,TimerTask Timer类是用来履行任务的类,它接受1个TimerTask做参数 Timer有两种履行任务的模式,最经常使用的是schedule,它可以以两种方式履行任务:1:在某个时间(Data),2:在某个固定的时间以后(int delay).这两种…

android camera2 采集,视频采集:Android平台基于Camera 2的实现

前言这篇文章简单介绍下移动端Android系统下利用Camera2相关API进行视频采集的方法。Camera2是谷歌在Android 5.0新增的用来替代Camera1操作摄像头的一个全新的API。按照惯例先上一份源码AndroidVideo。Camera2调用摄像头采集视频的核心实现在Camera2Capture.java。权限配置使用…

Java虚拟机组成详解

一、jvm的主要组成部分 类加载器(ClassLoader)运行时数据区(Runtime Data Area)执行引擎(Execution Engine)本地库接口(Native Interface) 接下来我们来看以上4个主要组成部分的用途…

取消android所有动画,android studio 取消BottomNavigationView的动画等

app:labelVisibilityMode"labeled"布局文件上添加上此句就可以让标签文字也显示出来了,但是缩放动画,还是会存在。那么回到初始化view的activity中BottomNavigationView navView findViewById(R.id.nav_view);//设置选中时的效果navView.setI…

android addtextchangedlistener参数,【Android】关于addTextChangedListener()方法的上机记录...

自己在学习控件的时候,学到关于EditText的addTextChangedListener()方法,想做一个类似发微博限制字数为140那样的功能,以此文记录上机过程中发现的一些问题。在做这个的时候,是第五节课视频刚提到addTextChangedListener()这个方法…

android 开源 数据库,Android开源数据库框架-LitePal的使用

简介LitePal是一款开源的Android数据库框架,采用了关系映射的模式。LitePal在github上的项目地址:github.com/LitePalFram…配置LitePaldependencies {....compile org.litepal.android:core:1.5.1}复制代码在app/src/main 目录下新建目录assets&#xf…

signature=095ed28e83b68620637b3a67436b0f8f,SMB 3.1.1 Encryption in Windows 10

SMB 3.1.1 Encryption in Windows 1009/09/201513 分钟可看完本文内容SMB 3 encryption offers data packet confidentiality and prevents an attacker from both tampering with and eavesdropping on any data packet. Encryption has been enhanced in SMB 3.1.1. The ciph…

鸿蒙系统打通iOS,库克真的做到了!正式官宣确认截胡鸿蒙OS系统:软硬件生态全打通...

【4月25日讯】相信大家都知道,自从苹果正式举办完春季新品发布会以后,很多网友们都纷纷吐槽到“苹果的黑科技就是以换色为本,iPhone12推出紫色版本,而iMac也变成了彩虹色,很好的继承了诺基亚“科技以换壳为本”理念”&…

html标签中的文本框的值,HTML文本框的值分配给div标签的标题

线2:#msdhoni我want-什么,当用户输入一些东西在文本框(以行1)应该成为div的标题(在第2行)点击botton(在第1行)。其实想要用代码中的文本输入替换#msdhoni。jQuery代码我米使用:(请建议在这段代码的变化,使这成为可能)String.proto…

快速了解Java集合框架

1. 简介 JDK1.2 引入了 Java 集合框架,包含一组数据结构。与数组不同,这些数据结构的存储空间会随着元素添加动态增加。其中,一些支持添加重复元素另一些不支持,一些支持 null,一些能自动升序打印元素。 所有这些数据…

html分类页面,CSS网页设计 把HTML标记分类

p、h1、或div等元素常常称为块级元素,这些元素显示为一块内容;Strong,span等元素称为行内元素,它们的内容显示在行中,即“行内框”。(可以使用displayblock将行内元素转换成块元素,displaynone表示生成的元素根本没有框…

html点击图片产生事件,jquery – 图像单击HTML5 Canvas中的事件

我有一个HTML5画布,我在其中添加了一个图像,我想调用图像的点击事件,但事件不会触发.我正在写一个HTML代码和jqmobile的一些代码This text is displayed if your browser does not shown.$(function () {var ctx document.getElementById("canvas1").getContext(&qu…

html代码里面换图片不显示不出来了,微擎 Ueditor 百度编辑器 替换图片不显示问题...

问题:最近在使用微擎添加公众号平台文章时,上传图片可以显示,但是点击 html(编辑器的按钮,可以显示html代码) 时出现图片不显示问题。我是用的135编辑器挑选的图文模板,我替换完模板中的图片后,图片的链接失效&#xf…

找通项公式在线计算机,在线硬盘分区计算器工具

一、什么是分区?分区从实质上说就是对硬盘的一种格式化。当我们创建分区时,就已经设置好了硬盘的各项物理参数,指定了硬盘主引导记录(即Master Boot Record,一般简称为MBR)和引导记录备份的存放位置。而对于文件系统以及其他操作系…

湖南大学计算机网络实验,湖南大学《计算机网络》实验报告

实验一应用协议与数据包分析实验(使用Wireshark)一、实验目的通过本实验,熟练掌握Wireshark的操作和使用,学习对HTTP协议进行分析。二、实验内容1.HTTP 协议简介HTTP 是超文本传输协议(Hyper Text Transfer Protocol)的缩写,用于W…