JVM的核心内容

2023-11-09

1.JVM对于java程序员的重要性可以用一下两句话来概述

	1.1 关于任何java的技术问题都可以追溯到java虚拟机里面去
	1.2 一个Java程序员水平的高低就看你对Java虚拟机这个东西有多了解

2.了解JVM需要先理解jdk与jre的关系

	2.1 jdk是开发工具包
	2.2 jre是程序运行时的环境
	2.3 JVM与java应用程序是一对一的关系

3.JVM的作用

	3.1 跨平台
		3.1.1 java通过编译成抽象的指令(java字节码),用不同版本的java虚拟机来实现运行时的解释(如下图所示)
		3.1.2 Java字节码=抽象的指令
		3.1.3 JVM负责编译抽象的指令
		3.1.4 编程语言运行时都是要靠调用windos操作系统底层的函数才能实现
		3.1.5 JVM内部里面有一个JIT解释器,这个JIT解释器碰到一个字节码就把他翻译成一个能让操作系统识别的机械码,就是用来存放热点代码,也就是做缓存用的,用来提高程序运行的效率
		
	3.2 自动内存管理
		3.2.1 java虚拟机里面有一个垃圾回收器
		3.2.2 垃圾回收器回收的是不被任何引用的对象占据的内存空间,而不是对象本身

在这里插入图片描述

4.JVM怎么启动的

	4.1 java.exe------>2.jvm.dll------>3.rt.jar------>4.自己编写的main()
		java.exe:程序入口
		.dll Dynamic Link library动态链接库,一般用C语言开发的
		jvm.dll(虚拟机本身) 负责向我们的操作系统去申请,我要产生一个新的进程,
		你操作系统要给我分配一些内存,所以当加载到jvm.dll的时候,
		意味着虚拟机开始在操作系统上面产生一个进程了,
		虚拟机的内存空间他就有了
		
		rt.jar (核心类库)

5.JVM的总体架构

5.1 你对下面这张图有一定的了解了,你就对JVM内部有一定的了解了

在这里插入图片描述
类加载器:就是负责把class文件里面的类装载到方法区里面去
方法区(Method Area):是系统分配的一个内存逻辑区域,是JVM装载类文件时,用于储类型信息的(类的描述信息)
堆(Heap):用于存放有new创建的对象和数组,在堆中分配的内存,由java虚拟机自动垃圾回收器来管理
虚拟机栈:(VM Stack):线程工作的地方(线程的办公桌)
栈:线程执行代码的地方,它的特点是先进后出,与它相反的是队列(先进先出)
程序计数器(:Program Counter Register):用来记录线程工作的日志(秘书)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JVM的核心内容 的相关文章

随机推荐

  • 现场嵌入式设备中的EC20模块如何通过互联网将TCP报文传输到阿里云服务器

    情况说明 现场有几台嵌入式设备 每台设备上有一块EC20模块做为TCP客户端 希望将现场采集的传感器数据通过互联网传输到阿里云服务器 阿里云服务器上面运行一个用C 语言编写的服务器程序 就可以接收现场设备采集的传感器数据 一 阿里云服务器公
  • VC编程实现文本语音转换

    VC编程实现文本语音转换 文本语音 Text to Speech 以下简称TTS 它的作用就是把通过TTS引擎把文本转化为语音输出 本文不是讲述如何建立自己的TTS引擎 而是简单介绍如何运用Microsoft Speech SDK 建立自己
  • dynamo方程怎么写_【简明自控】为什么特征方程如此重要

    简明自动控制 为什么特征方程如此重要 热场视频 自平衡杆 双轴反作用轮倒立摆 哔哩哔哩 干杯 bilibili www bilibili com 顶个棍子 具有主动脚轮的全向移动机器人 哔哩哔哩 干杯 bilibili www bilibi
  • 二叉树的创建、前中后序遍历(递归和非递归)C语言实现

    直接上代码 include
  • LA@方阵相似@相似矩阵的性质@正交相似对角化

    文章目录 方阵相似 引言 相似矩阵定义 相似变换 相似变换矩阵 相似矩阵的矩阵多项式和特征值相同 推论 与对角阵相似的矩阵性质定理 相似矩阵性质 导出性质 相似矩阵的乘方性质 相似矩阵和矩阵多项式 相似对角阵 对角阵多项式的展开 小结 强矩
  • vue3 解决reactive数组对象属性更新问题

    vue3 setup中使用对象数组 const state reactive
  • Python+Selenium-自动化框架登录之验证码识别

    前言 本篇主要记录在项目登录过程中验证码的问题 基于pytesseract和PIL组件实现简单的验证码图片识别 需要自行配置pytesseract PIL环境 目标 获取验证码 自动输入实现登录 一 截取验证码图片信息并保存 访问目标界面
  • Flutter判断当前月份是第几季度、Android判断当前月份是第几季度 、根据月份判断季度方法

    一年有12个月 分为四个季度 怎样判断当前月份是第几个季度呢 方法一 if else 判断 1 flutter 当前月份 int currentMonth DateTime now month 季度 int quarter if curre
  • SpringBoot + MyBatisPlus + MySQL8 实现树形结构查询

    场景 今天在实现权限功能模块时 需要将查询的权限数据 以树形结构的方式返回给前端 功能实现 第一步 权限表结构定义及其功能演示数据 DROP TABLE IF EXISTS baoan privilege CREATE TABLE baoa
  • 3_Docker 常用命令

    进程命令 启动docker服务 systemctl start docker 停止docker服务 systemctl stop docker 重启docker服务 systemctl restart docker 查看docker服务状态
  • 手把手教你 在linux上安装kafka

    目录 1 准备服务器 2 选一台服务器配置kafka安装包 2 1 下载安装包 2 2 解压安装包 2 3 修改配置文件 3 分发安装包到其他机器 4 修改每台机器的broker id 5 配置环境变量 6 启停kafka服务 6 1 启动
  • Linux之RedHat 7 图形界面版安装(转载)

    linuxLinux之RedHat 7 图形界面版安装的详细教程 点击跳转 转载 https blog csdn net star in shy article details 82590241
  • 进程控制块和状态——随堂笔记

    1 PCB 描述进程的数据结构 当一个进程创建以后交给操作系统管理 管理的时候要对进程的属性进行描述 1 进程的描述信息 进程的基本信息pid给每个进程的编号 名字 2 处理器状态信息 在进程执行过程中使用的处理器的各种寄存器的信息 原因
  • Linux下的时间(ZZ)

    1 Linux下的时间 1 1 Linux下的时间系统 1 2 Linux下与时间有关的数据结构 2 获得当前时间 3 延时 4 定时器 4 1 alarm 4 2 setitimer 1 Linux下的时间1 1 Linux下的时间系统
  • Linux CentOS 巡检脚本

    系统巡检脚本 有常用的检查模块 如硬盘 内存 进程等 安全性检查等 1 巡查脚本 代码如下 示例 xunjian sh bin bash 系统状态 host while do clear echo e 当前在查看 e 1 31m 主机状态信
  • 永洪科技入选“2023大数据优秀服务商”

    8月23日 2023大数据优秀服务商 发布 永洪科技入选 此次评选由DBC CIS CIW eNet研究院牵头组织 旨在遴选大数据产业各细分赛道具有代表性与创新力的企业 组织 并展现其独特价值 重点考量技术实力 业内口碑 成长性 品牌力以及
  • LeetCode 5910. 检查两个字符串是否几乎相等

    如果两个字符串 word1 和 word2 中从 a 到 z 每一个字母出现频率之差都 不超过 3 那么我们称这两个字符串 word1 和 word2 几乎相等 给你两个长度都为 n 的字符串 word1 和 word2 如果 word1
  • Vue项目封装div拖动组件,实现div拖拽

    场景 在pc端项目中会碰到弹框后多个页面重叠的场景 类似于电脑打开多个文件夹 这时想要同时完整的展示两个页面的内容 就可以拖动页面 改变位置 很多教程都是使用自定义方法在单个组件中使用 本文带大家在Vue项目中封装一个拖拽div的方法 注册
  • JavaScript 弹窗

    JavaScript弹窗是Web开发中常见的交互方式之一 弹窗可以为用户提供提示 警告或者输入框等交互方式 让用户在使用网站或应用时更加便捷 在本文中 我们将讨论JavaScript弹窗的作用 类型和用途 JavaScript弹窗的作用 J
  • JVM的核心内容

    1 JVM对于java程序员的重要性可以用一下两句话来概述 1 1 关于任何java的技术问题都可以追溯到java虚拟机里面去 1 2 一个Java程序员水平的高低就看你对Java虚拟机这个东西有多了解 2 了解JVM需要先理解jdk与jr