JVM工作的总体机制概述
JDK、JRE、JVM关系回顾
- JVM:Java Virtual Machine,翻译过来是Java虚拟机
- JRE:Java Runtime Environment,翻译过来是Java运行时环境
- JRE=JVM+Java程序运行时所需要的类库
- JDK:Java Development Kits,翻译过来是Java开发工具包
- JDK=JRE+Java开发辅助工具


Java源程序编译运行过程
Java源程序→编译→字节码文件→放到JVM上运行
JVM工作的总体机制
总体机制的粗略描述:
- 第一步:使用类加载器子系统将 *.class 字节码文件加载到 JVM 的内存
- 第二步:在 JVM 的内存空间存储相关数据
- 第三步:在执行引擎中将 *.class 字节码文件翻译成 CPU 能够执行的指令
- 第四步:将指令发送给CPU执行


JVM落地产品
- Sun公司的HotSpot
- BEA公司的JRockit
- IBM公司的J9 VM
JVM 底层常见的面试题
- 说一下JVM的主要组成部分?及其作用?
- 说一下JVM运行时数据区?
- 队列和栈是什么?有什么区别?
- 什么是双亲委派模型?
- 说一下类装载的执行过程?
- 怎么判断对象是否可以被回收?
- Java 中都有哪些引用类型?
- 说一下JVM有哪些垃圾回收算法?
- 说一下JVM有哪些垃圾回收器?
- 详细介绍一下CMS垃圾回收器?
- 新生代垃圾回收器和老生代垃圾回收器都有哪些?有什么区别?
- 简述分代垃圾回收器是怎么工作的?
- 说一下JVM调优的工具?
- 常用的JVM调优的参数都有哪些?
- 怎么获取Java程序使用的内存?堆使用的百分比?
- Java 中堆和栈有什么区别?
- 你能保证GC执行吗?
这些面试题等学完这一专栏都能游刃而解。
相关文章:
JVM工作的总体机制概述
JDK、JRE、JVM关系回顾 JVM:Java Virtual Machine,翻译过来是Java虚拟机JRE:Java Runtime Environment,翻译过来是Java运行时环境 JREJVMJava程序运行时所需要的类库JDK:Java Development Kits,翻译过来是…...
jmeter工具测试和压测websocket协议【杭州多测师_王sir】
一、安装JDK配置好环境变量,安装好jmeter 二、下载WebSocketSampler发送请求用的,地址:https://bitbucket.org/pjtr/jmeter-websocket-samplers/downloads/?spma2c4g.11186623.2.15.363f211bH03KeI 下载解压后的jar包放到D:\JMeter\apache-j…...
国产漏洞扫描器Xray入门,详细教程
国产漏洞扫描器Xray入门,详细教程 1.Xray简介2.快速开始3.使用 xray 代理模式进行漏洞扫描4.使用 xray 基础爬虫模式进行漏洞扫描5.使用 xray 进行服务扫描1.Xray简介 xray 是一款功能强大的安全评估工具,由多名经验丰富的一线安全从业者呕心打造而成,主要特性有: 检测速度…...
LeetCode209. 长度最小的子数组
题目:LeetCode209. 长度最小的子数组 描述: 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子…...
css冒号对齐
实现后的样式效果 实现方式 html: <el-col v-if"item.showInSingle ! false" :span"6" style"padding: 4px 0"><label>{{ item.label }}:</label><span v-if"singleData[item.prop] ! 0 &…...
那些年的golang开发经验记录
goland 问题CreateProcess error216, 该版本的 %1 与你运行的 Windows 版本不兼容。请查看计算机的系统信息,然后联系软件发布者 Cannot run program "......" (in directory "D:\project\go\awesomeProject\src\test"): CreateProcess error2…...
element中select下拉框如何实现宽度自适应
简单暴力: element 和 elementPlus 都可以直接在el-select上添加 style"width: 100%" 解决 <el-select style"width: 100%" v-model"cats" multiple filterable placeholder"请选择分类"> . . . </el-select&…...
springboot项目get请求下划线转驼峰@JsonProperty注解失效问题
问题:解决sprigboot项目get请求中有下划线的入参参数,如:first_name,希望在项目中将下划线格式转成firstName,用JsonProperty注解发现失效问题 1.核查:JsonProperty注解对应包是否正确 正确包:…...
架构训练营学习笔记:6-2 微服务基础选型
基础选型 微服务基础设施架构 优先级 其中,核心 就是服务注册、服务发现、服务路由。 模式1-嵌入SDK 模式2-反向代理式 模式3-网络代理式(Service Mesh) 模式对比 常见微服务框架选择 嵌入SDK-dubbo Spring Cloud 反向代理式 APISIX …...
opencv实战项目 实现手势跟踪并返回位置信息(封装调用)
OpenCV 是一个基于 Apache2.0 许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上。 需要提前准备opencv 和 mediapipe库 pip --default-timeout5000 install -i https://pypi.tuna.tsi…...
ElementUI动态添加表单项
昨天感冒发烧了,脑子不好使。在实现这个动态表单项时一直报错脑瓜子嗡嗡的! 不过好在昨天休息好了,今天起来趁脑瓜子好使,一会就弄好了。 这里记录一下 <el-form-itemv-for"(classId,index) in addFom.classIds":lab…...
Myatis和MybatisPlus常见分页方式
Myatis和MybatisPlus常见分页方式 一、mybaits 原生limit分页 SELECT * FROM order_info limit #{pageNow},#{pageSize}分页插件(ssm中,通过xml配置分页。springboot通过则通过配置文件) PageHelper插件:PageHelper.startPage(…...
利用ChatGPT绘制思维导图——以新能源汽车竞品分析报告为例
随着人们对环境保护的日益关注和传统燃油汽车的限制,全球范围内对新能源汽车的需求不断增长。新能源汽车市场的激烈竞争使得了解各个竞品的特点和优劣成为关键。然而,针对这一领域的详尽竞品分析却常常需要大量时间和精力。 在此背景下,人工智…...
redis集群搭建(非常详细,适合新手)
免密登录脚本 #!/bin/bash # 检查是否已经存在 SSH 密钥对,如果没有则创建一个 if [ ! -f ~/.ssh/id_rsa ]; thenssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa -N fi# 为每个目标主机复制公钥 for ip in 192.168.9.{11..16}; dossh-copy-id -i ~/.ssh/id_rsa.pub …...
CTFshow web93-104关
这周要学习的是php代码审计 根据师兄的作业 来做web入门的93-104关 93关 看代码 进行分析 他的主函数 include("flag.php"); highlight_file(__FILE__); if(isset($_GET[num])){ $num $_GET[num]; if($num4476){ die("no no no!"); …...
ElasticSearch详细操作
ElasticSearch搜索引擎详细操作以及概念 文章目录 ElasticSearch搜索引擎详细操作以及概念 1、_cat节点操作1.1、GET/_cat/nodes:查看所有节点1.2、GET/_cat/health:查看es健康状况1.3_、_GET/_cat/master:查看主节点1.4、GET/_cat/indices&a…...
【OpenVINOSharp】 基于C#和OpenVINO2023.0部署Yolov8全系列模型
基于C#和OpenVINO2023.0部署Yolov8全系列模型 1 项目简介1.1 OpenVINOTM 2 OpenVinoSharp2.1 OpenVINOTM 2023.0安装配置2.2 C 动态链接库2.3 C#构建Core推理类2.4 NuGet安装OpenVinoSharp 3 获取和转换Yolov8模型3.1 安装ultralytics3.2 导出yolov8模型3.3 安装OpenVINOTM Pyt…...
121. 买卖股票的最佳时机
题目描述 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回你可以从这笔交易中获取的…...
FDO(Feedback-Driven Optimization) LTO(Link-Time Optimization)
反馈驱动优化(Feedback-Driven Optimization,FDO)和链接时优化(Link-Time Optimization,LTO)是两种重要的编译器优化技术。下面我们详细介绍这两种技术: 反馈驱动优化 (FDO): FDO 是…...
低成本无刷高速吹风机单片机方案
高速吹风机的转速一般是普通吹风机的5倍左右。一般来说,吹风机的电机转速一般为2-3万转/分钟,而高速吹风机的电机转速一般为10万转/分钟左右。高转速增加了高风速。一般来说,吹风机的风力只有12-17米/秒,而高速吹风机的风力可以达…...
英雄联盟智能助手:5分钟掌握League Akari自动化工具
英雄联盟智能助手:5分钟掌握League Akari自动化工具 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power 🚀. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit League Akari是一款基于英雄联…...
OpenRGB:3步实现跨品牌RGB灯光统一控制,告别软件冲突烦恼
OpenRGB:3步实现跨品牌RGB灯光统一控制,告别软件冲突烦恼 【免费下载链接】OpenRGB Open source RGB lighting control that doesnt depend on manufacturer software. Supports Windows, Linux, MacOS. Mirror of https://gitlab.com/CalcProgrammer1/O…...
Windows 10 也能畅享安卓生态:三步快速部署 Android 子系统
Windows 10 也能畅享安卓生态:三步快速部署 Android 子系统 【免费下载链接】WSA-Windows-10 This is a backport of Windows Subsystem for Android to Windows 10. 项目地址: https://gitcode.com/gh_mirrors/ws/WSA-Windows-10 还在羡慕 Windows 11 用户…...
SeuratWrappers终极指南:如何用3步解锁单细胞分析扩展工具集
SeuratWrappers终极指南:如何用3步解锁单细胞分析扩展工具集 【免费下载链接】seurat-wrappers Community-provided extensions to Seurat 项目地址: https://gitcode.com/gh_mirrors/se/seurat-wrappers 单细胞分析扩展工具集SeuratWrappers是生物信息学领域…...
[特殊字符]【跨界应用实战】降维打击!基于 Transformer 的金融与时序数据建模硬核指南
🚀【跨界应用实战】降维打击!基于 Transformer 的金融与时序数据建模硬核指南摘要:前六篇我们将 AI Infra 的底层基础设施(算力、显存、多线程)翻了个底朝天。今天,我们切换视角,聊聊深度学习的…...
【收藏级】2026程序员转型大模型指南:小白零门槛上手,抢占AI时代红利
在程序员的技术交流群、CSDN社区、职场分享会里,“转型”依然是2026年高频热议的核心话题。当大模型技术从“概念落地”走向“规模化应用”,彻底融入企业研发全流程、日常开发场景,一个不容置疑的趋势已然清晰:懂大模型、能落地大…...
如何高效获取百度文库文档:专业自动化工具完整指南
如何高效获取百度文库文档:专业自动化工具完整指南 【免费下载链接】baidu-wenku fetch the document for free 项目地址: https://gitcode.com/gh_mirrors/ba/baidu-wenku 在学术研究、工作汇报和资料收集过程中,百度文库作为中文文档资源平台&a…...
Echo Pyramid智能语音底座开发实战与优化
1. Echo Pyramid 智能语音交互底座解析Echo Pyramid 是专为 M5Stack Atom 系列物联网控制器设计的智能语音交互底座,它让开发者能够快速构建远场语音识别、语音助手和语音控制等应用。作为一个硬件开发者,我最近深度体验了这款产品,发现它在音…...
JDK7之前hashmap链表采用头插法为什么会导致循环链表?
hashmap发生哈希碰撞之后形成的链表,在早的jdk版本会采用头插法的方法,也就是新插入的值,作为链表的头部。这种方法在单线程的情况下没有什么问题,这里扩容的时候要说一点,当扩容的时候会创建一个新哈希表,…...
自然语言处理入门教程
自然语言处理入门教程:开启智能对话的钥匙 在人工智能飞速发展的今天,自然语言处理(NLP)已成为连接人类与机器的核心桥梁。从智能客服到机器翻译,NLP技术正悄然改变我们的生活。如果你对如何让计算机理解并生成人类语…...
