爆肝整理 JVM 十大模块知识点总结,不信你还不懂

2023-11-01

01 JVM 内存结构

Java 虚拟机的内存空间分为 5 个部分:

  • 程序计数器

  • Java 虚拟机栈

  • 本地方法栈

  • 方法区

JDK 1.8 同 JDK 1.7 比,最大的差别就是:元数据区取代了永久代。元空间的本质和永久 代类似,都是对 JVM 规范中方法区的实现。不过元空间与永久代之间最大的区别在于:元数据空间并不在虚拟机中,而是使用本地内存。

1.1 程序计数器(PC 寄存器)

(1)程序计数器的定义 程序计数器是一块较小的内存空间,是当前线程正在执行的那条字节码指令的地 址。若当前线程正在执行的是一个本地方法,那么此时程序计数器为 Undefined。

(2)程序计数器的作用

  • 字节码解释器通过改变程序计数器来依次读取指令,从而实现代码的流程控制。

  • 在多线程情况下,程序计数器记录的是当前线程执行的位置,从而当线程切换回 来时,就知道上次线程执行到哪了。

(3)程序计数器的特点  是一块较小的内存空间。

  • 线程私有,每条线程都有自己的程序计数器。

  • 生命周期:随着线程的创建而创建,随着线程的结束而销毁。

  • 是唯一一个不会出现 OutOfMemoryError 的内存区域。

由于文章篇幅问题,部门内容将以图片展示,如有小伙伴需完整文档进行查阅观看可以私信免费获取。

1.2 Java 虚拟机栈(Java 栈)

(1)Java 虚拟机栈的定义 Java 虚拟机栈是描述 Java 方法运行过程的内存模型。

Java 虚拟机栈会为每一个即将运行的 Java 方法创建一块叫做“栈帧”的区域, 用于存放该方法运行过程中的一些信息,如:

  • 局部变量表

  • 操作数栈

  • 动态链接

  • 方法出口信息

  • ......

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

爆肝整理 JVM 十大模块知识点总结,不信你还不懂 的相关文章

  • Flink Kafka - 如何使应用程序并行运行?

    我正在 Flink 中创建一个应用程序 读取某个主题的消息 对其进行一些简单的处理 将结果写入不同的主题 我的代码确实有效 然而它不并行运行我怎么做 看来我的代码只在一个线程 块上运行 在 Flink Web 仪表板上 应用程序进入运行状态
  • JTextPane 的样式是否具有类似控制台的格式?

    有没有办法使 JTextPane 中的文本看起来与控制台输出的文本相似 我的意思是 基本上 每个字符如何具有相同的宽度 以便 ASCII 艺术或间距缩进之类的东西可以正常工作 例如 目前 如果我输入 First 然后输入 5 个空格 然后在
  • 无法解析符号“AuthUI”

    我正在添加 firebase google 和 Gmail 登录 但是当我粘贴代码时 onAuthStateChanged NonNull FirebaseAuth firebaseAuth 方法我收到此错误 无法解析符号 AuthUI 在
  • 如何确定用户是否发送了由Java代码构建的MS Outlook消息?

    在我的程序中 我创建 Outlook exe 进程并发送包含预填充内容的消息 发送消息或关闭消息窗口后 我需要知道用户是否发送消息 exitValue process 方法没有帮助 因为两种情况下的 exitValue 都是 0 Proce
  • 使用synchronized关键字和lock有什么区别[重复]

    这个问题在这里已经有答案了 Java 5引入了lock方法 与synchronized关键字相比 使用lock有什么优点和缺点 同步 将锁定该方法内访问的任何资源 lock 允许您进行更精细的控制 例如 仅锁定某些资源 或者仅在满足特定条件
  • 什么时候数据库被称为嵌入式数据库?

    术语 嵌入式数据库 与 数据库 具有不同的含义吗 我见过的嵌入式数据库有两种定义 嵌入式数据库就像专门为 嵌入式 空间 移动设备等 设计的数据库系统一样 这意味着它们在紧张的环境中 内存 CPU 方面 可以合理地执行 嵌入式数据库就像不需要
  • 片段和通知:针对通知中的不同活动;取决于屏幕配置

    问题 如何决定做什么Activity a Notification如果目标可能取决于配置 屏幕尺寸 方向等 则应启动 就像人们使用时经常出现的情况一样Fragments Details 让我们考虑一下新闻阅读器示例 http develop
  • JavaFX 多线程 - 连接线程不会更新 UI

    我正在尝试创建一个加载程序对话框 用户可以在其中知道程序正在加载所请求的内容并且程序正在按预期运行 但正因为如此 我需要join 解析器线程和之前继续主线程 这使得对话框空白 解析器任务 java public class ParserTa
  • 仅在文件下载完成后设置 cookie。

    我有一个场景 我想告诉用户下载完成并提示关闭按钮 为此 我使用 jquery 插件来连续监视 cookie 以了解下载何时完成 我的问题是我想设置这个cookie fileDownload true and path 下载完成后立即进行 为
  • HttpURLConnection 中的 NTLM 身份验证在 JRE 中不起作用,但在 JDK 环境中起作用

    我正在使用 eclipse 开发应用程序的两个部分 Web 部件提供 REST 服务 并对服务的请求进行过滤waffle servlet NegotiateSecurityFilter它提取 Windows 登录信息来识别用户 客户端部分使
  • 更改 Java 字符串中的日期格式

    I ve a String代表一个日期 String date s 2011 01 18 00 00 00 0 我想将其转换为Date并将其输出到YYYY MM DD format 2011 01 18 我怎样才能实现这个目标 好的 根据我
  • 为自定义 userdetailsservice 定义 bean

    我如何定义我的自定义UserDetailsServicebean 的方式使我的 spring mvc Web 应用程序能够使用我的底层 MySQL 数据库来检查用户和密码的身份验证 具体如下 我正在添加安全性spring petclinic
  • org.apache.http 软件包在 API 级别 23 中被删除。替代方案是什么?

    在更新到最新的 android API 级别 23 Marshmallow 后 通过 build gradle 添加以下更改后 所有 org apache http 类都不起作用 android compileSdkVersion 23 b
  • 使用可变参数绘制星形

    我的任务是编写程序 允许用户绘制星星 星星的大小和手臂数量可能不同 当我处理基本星时 我使用 GeneralPath 和点表进行处理 int xPoints 55 67 109 73 83 55 27 37 1 43 int yPoints
  • 手写签名对比

    有谁知道java中一种将手写文本样本 例如签名 亲笔签名等 与一个或多个样本进行比较的方法 最好是开源的 你可以看看这个OCR小程序 http www heatonresearch com articles 42 page1 html
  • 信号量如何工作?

    信号量可以小于0吗 我的意思是 假设我有一个 N 3 的信号量 并且我调用 down 4 次 那么 N 将保持为 0 但一个进程将被阻塞 反之亦然 如果一开始我调用 N 可以大于 3 吗 因为在我看来 如果 N 可以高于 3 如果一开始我调
  • PDFBox - 无障碍 PDF - 如何检查 PDF 标签是否具有符合无障碍指南的属性

    需要检查 PDF 标签是否具有符合辅助功能指南的属性 例子 H1 验证 PDF 中是否存在 H1 图像 图形标签 验证图像 图形是否具有 Alt 文本 语言 验证语言属性是否已设置 以便屏幕阅读器能够正确阅读 对于西班牙语和英语文档 应更新
  • 在 Android 中创建硬链接和符号链接

    我正在创建一个应用程序 我想在其中使用 Android 外部内存文件系统中的硬链接和符号链接 我尝试过使用命令 Os link oldpath newpath Os link oldpath newpath 但是 当我尝试这样做时 我收到此
  • Selenium WebDriver (java) 可以与浏览器的检查工具元素选择器交互吗?

    通过使用 selenium 我可以访问位于检查选项卡中的浏览器元素选择器 在浏览器中按 Ctrl Shift C 吗 我想使用该选择器 指向 一个元素 并使其在浏览器中突出显示 例如 简单的事情如下 WebElement elem driv
  • web.xml 过滤器如何工作?您可以将两个过滤器映射到所有页面 (/*) 并指定顺序吗?

    我想使用 Spring Security 它说将过滤器映射到 但我已经有一个映射到 的过滤器 即 Tuckee URLRewrite 过滤器 是否可以将两个过滤器映射到同一事物 并且有没有办法指定过滤器的调用顺序 是的你可以 servlet

随机推荐

  • 浏览器适配,各大浏览器适配,主流/冷门浏览器适配,css

    浏览器适配 各大浏览器适配 主流 冷门浏览器适配 flex布局问题 flex布局早在2009年就有了 到现在已经有了好几个版本 详细内容可查看这篇文章 flex布局兼容性 其中IE10部分支持2012 需要使用 ms 前缀 而IE9不支持f
  • QuartusII软件异常:Error: Top-level design entity " " is undefined

    使用Quartus进行数字电路设计时 遇到了下面的编译错误 Info Info Running Quartus II 64 Bit Analysis Synthesis Info Version 11 0 Build 157 04 27 2
  • Linux系统shell脚本之过滤文本关键字

    Linux系统shell脚本之过滤文本关键字 一 脚本要求 二 脚本内容 三 执行脚本 一 脚本要求 1 要求过滤passwd文件中所有的用户名 2 要求查找用户名的字符在三个字符以上的用户 二 脚本内容 root 192 scripts
  • shell中常用的特殊符号

    在shell中常用的特殊符号罗列如下 39 string 39 string command xx yy zz lt gt 井号 comments 这几乎是个满场都有的符号 除了先前已经提过的 第一行 bin bash 井号也常出现在一行的
  • C++浮点数控制输出格式的方法

    控制浮点数输出格式需要包含iomanip头文件 所以在源代码中加上头文件 include
  • 关于wait until snap is fully seeded等原因导致的ubuntu引导无限期黑屏问题

    这个问题我找遍中外只有在一个老外的回复下看到过一点思路 黑屏的时候 立刻频繁切换f1 f2 f3控制台 直到f1 出现登陆界面 就可以了 当然 前提是你nomodeset 都弄过 攻克了这个汉比bug
  • 【动态规划】机器人路径规划——算法设计与分析慕课作业

    题目内容 一个机器人只能向下和向右移动 每次只能移动一步 设计一个算法求机器人从 1 1 到 m n 有多少条路径 输入格式 以空格分开m n 输出格式 路径条数 输入样例 4 5 输出样例 35 loc input split I表示行数
  • 蓝桥杯2022真题:裁纸刀、修剪灌木、刷题统计、纸张尺寸、数位排序、考勤刷卡、卡片、小平方、李白打酒加强版

    目录 1 裁纸刀 2 修剪灌木 3 刷题统计 4 纸张尺寸 5 数位排序 6 考勤刷卡 7 卡片 8 小平方 9 李白打酒加强版 1 裁纸刀 题目无法截图 看题点击 https www lanqiao cn problems sort st
  • 机器学习:利用神经网络实现简单的数字识别

    本学期的机器学习课程 作业参考了吴恩达大佬的手写数字识别实验 以下是完成的代码 import numpy as np import scipy io as sio from scipy optimize import fmin cg imp
  • 剖析:顺序表的增删改查

    目录 前言 一 什么是顺序表 1 1顺序表的两种形式 1 2动态顺序表 二 顺序表增删改查的接口实现 2 1结构体空间表示顺序表 2 2顺序表的初始化 2 2malloc新增空间 2 3增加元素 2 4删除元素 2 5查找元素 2 6指定位
  • 代码质量如何管控与提升

    开发团队代码质量如何做到管控与提升 我相信很多公司都会面临这样的问题 开发团队大人员技术水平参差不齐 代码写的不够规范 代码扫描问题修改太过滞后 代码库管理每个团队都不一致 偶尔还会合并丢失一些代码 code review费人费时效率不高
  • 前端必用正则(js)不间断更新```

    手机号 1 3 d 4 5 6 9 5 0 3 5 9 6 5 7 7 0 8 8 1 3 5 8 9 1 8 9 d 8 大写字母 A Z 日期 如 2019 07 10 d 4 d 1 2 1 d 1 2 email地址 w w w w
  • 【剑指offer-第二版】部分题目与解答【C++版本】

    20180612 求职在即 剑指offer 作为大家都推荐的一本应试宝典 确实也有刷一刷的必要 很多题目都比较经典 也涵盖了大多数的算法和数据结构 把自己刷题的过程做一个总结 权当是一个笔记 当前还处在未完成状态 希望自己能坚持做完 我自己
  • 仓位管理 – 2.实战篇

    上一篇 说到了仓位管理的重要性 这一篇则说明我对仓位控制算法的设计 以及最终使用的算法 由于内容较多 本文中我尽量只说重点 概念 算法 就是将一定可变范围内的一组输入条件 轮换到确定的输出时 所使用到的逻辑换算关系 仓位控制算法 其输入就是
  • study

    学习的博客地址 1 对自己python有帮助过的博客 http blog csdn net anbo724 article category 831447 另外有hadoop 等其他分类
  • 机器学习--人脸自动补齐(11)

    随机树ExtraTreeRegressor 分列点随机选取 不考虑信息增益 减少过拟合 获取一个对象所属的类名称 model class name import numpy as np import pandas as pd import
  • 肖臻老师区块链公开课笔记

    前段时间 区块链大火 出现了很多种基于区块链技术的政务应用 之前通过零散的网页信息和讲座 自我感觉理解了block chain原理 当看到各种区块链技术广泛应用时 自己以技术理解 反而对之不屑 当然 也怀疑自己还没有理解了区块链 带着这种好
  • 二、Flink使用异步算子请求高德地图获取位置信息

    目录 Flink异步算子使用介绍 Flink使用异步算子请求高德地图获取位置信息代码实现 相关阅读 Flink使用异步算子 线程池查询MySQL 1 概述 1 Flink异步算子使用介绍 1 异步与同步概述 同步 向数据库发送一个请求然后一
  • 一步步学习SPD2010--第二章节--处理SP网站(6)---- 探索SP网站

    SP技术没有一个界面 你可以通过使用Web浏览器或者兼容程序如Office 应用程序 包括SPD 你可以选择适合你必须完成的任务的接口 然而 根据你选择的程序 你可能有SP网站的不同视图 如果你使用MS Word 你只看到了网站和内容的一小
  • 爆肝整理 JVM 十大模块知识点总结,不信你还不懂

    01 JVM 内存结构 Java 虚拟机的内存空间分为 5 个部分 程序计数器 Java 虚拟机栈 本地方法栈 堆 方法区 JDK 1 8 同 JDK 1 7 比 最大的差别就是 元数据区取代了永久代 元空间的本质和永久 代类似 都是对 J