【面试】介绍一下HotSpot虚拟机
目录
- 1. 说明
- 2. 起源与发展
- 3. 技术特点
- 3.1 热点代码探测技术
- 3.2 内存管理
- 3.3 垃圾收集器
- 3.4 并发和多线程支持
- 3.5 指令重排优化
- 4. 执行模式与性能
1. 说明
- 1.HotSpot虚拟机是一款由Oracle JDK和OpenJDK广泛使用的Java虚拟机(JVM)。
- 2.HotSpot虚拟机凭借其高效的热点代码探测技术、灵活的内存管理、多样化的垃圾收集器以及强大的并发与多线程支持等特点,成为了Java领域广泛使用的虚拟机之一。
2. 起源与发展
- 1.HotSpot虚拟机最初并非由Sun公司开发,是由一家名为Longview Technologies的小公司设计。
- 2.该虚拟机来源于Strongtalk虚拟机,而Strongtalk虚拟机中的技术又来源于为支持Self语言设计的Self虚拟机。
- 3.从SUN的JDK版本1.3.1开始,HotSpot虚拟机被引入并作为默认的JVM使用。
- 4.HotSpot虚拟机在2006年底开源,主要使用C++实现,JNI接口部分用C实现。
3. 技术特点
3.1 热点代码探测技术
- 1.HotSpot虚拟机通过执行计数器找出最具有编译价值的代码(热点代码),然后通过即时编译器以方法为单位进行编译,从而提高Java运行的性能。
3.2 内存管理
- 1.HotSpot虚拟机采用对象堆内存布局,包括对象头、实例数据和对齐填充。
- 2.对象头包含Mark Word(用于存储对象的哈希码信息、GC信息等)和类型指针(指向对象类型元数据的指针)。
3.3 垃圾收集器
- 1.HotSpot虚拟机提供了多种垃圾收集器,如Serial收集器、ParNew收集器、Parallel Scavenge收集器等,以适应不同的应用场景和性能需求。
3.4 并发和多线程支持
- 1.HotSpot虚拟机支持多线程并发执行,通过CAS重试保证内存分配操作的原子性。
- 2.在堆中为每个线程分配一小块内存(TLAB),以减少并发问题并提高性能。
3.5 指令重排优化
- 1.CPU会充分利用多核能力,将没有依赖关系的代码乱序执行,以提高执行效率。
- 2.HotSpot虚拟机通过volatile关键字等机制来禁用指令重排,保证多线程环境下的数据一致性。
4. 执行模式与性能
- 1.HotSpot虚拟机采用即时编译(JIT)技术,将常用的部分代码编译为本地(原生)代码,从而提高Java程序的执行性能。
- 2.HotSpot虚拟机占据绝对的市场地位,从jdk1.3到现如今jdk14都是Oracle JDK和OpenJDK中默认的虚拟机。
相关文章:
【面试】介绍一下HotSpot虚拟机
目录 1. 说明2. 起源与发展3. 技术特点3.1 热点代码探测技术3.2 内存管理3.3 垃圾收集器3.4 并发和多线程支持3.5 指令重排优化 4. 执行模式与性能 1. 说明 1.HotSpot虚拟机是一款由Oracle JDK和OpenJDK广泛使用的Java虚拟机(JVM)。2.HotSpot虚拟机凭借…...
【测试】linux快捷指令工具cxtool
简介 登录linux时,我们经常需要重复输入一些指令. 这个工具可以把这些指令预置,需要的时候鼠标一点,会自动按预置的字符敲击键盘,敲击出指令. 下载地址 https://download.csdn.net/download/bandaoyu/89379371 使用方法 1,编辑配置文件,自定义自己的快捷指令。 2…...
css属性值的计算过程
1.首先抛出一个问题,为什么最终’a’标签渲染的颜色是蓝色。 <div><a>click</a> </div>div {color: red }为什么a标签没有继承父元素的color属性? 2.先抛出一个结论:每一个元素必须拥有全部css属性并且有值浏览器才…...
看到大厂工时爆料,我沉默了。。
大厂工时爆料 今天逛脉脉的时候,看到一篇名为「一人一句,大厂工时爆料」的帖子: 点开之后,我沉默了 ... 出来爆料的基本上都是 10 小时。 好奇心之下,我搜索了一下去年很热的排行榜: 2023 年最新互联网公司…...
最大回撤概念与计算
一、最大回撤,是指的最大下跌的值: 1、即所有下跌趋势中,净值最低的点,与历史净值最高点直接的差值。 2、最大回撤取绝对值显示 二、如果有时间限制,则计算对应时间段内的最大回撤。 示意图如下: 三、举…...
K8s Ingress 详解
文章目录 K8s Ingress 详解Ingress 资源清单Ingress 基于URL 实现路由Ingress 基于名称虚拟主机Ingress 实现HTTPS创建TLS 证书创建Secrets配置ingress Ingress RewriteIngress 灰度发布Ingress 配置认证 K8s Ingress 详解 Ingress 资源清单 apiVersion: networking.k8s.io/v…...
大模型的崛起与未来展望
人工智能技术的飞速发展,令人不得不感叹科技的进步究竟有多么惊人。近年来兴起的大模型,在多个领域都展现出了令人瞩目的能力,引发了业界和大众的广泛关注。从自然语言处理到计算机视觉,从医疗诊断到金融分析,大模型都在不断刷新人类的认知边界。 但我们同时也要看到,大模型目…...
让WSL内核使用BBR拥塞控制算法
使用git命令从Linux内核的Git仓库中获取源代码,$ git clone --depth 1 https://github.com/microsoft/WSL2-Linux-Kernel.git,找到对应的内核版本$ git log --grep="5.15.146.1-microsoft-standard-WSL2",回退到本机安装的内核版本$ git checkout <commit-id&…...
小程序内的分包与数据共享
一:数据共享 小程序内的数据共享和vue当中不一样,vue当中的vue实例可以使得所有的组件都能this.store 但是小程序它只有page对象,和组件实例对象.对于vue而言,vue实例可以使得添加的组件都有. 但是page对象页面对象,不能使得页面内部有.只能使得这个页面内能访问.vue实例,会…...
WordPress子比主题美化-首页动态的图片展示
WordPress子比主题首页动态的图片展示 WordPress子比主题首页添加动态的图片展示,其他程序也可以用,复制代码到相应位置即可,也可作为指定分类,重点内容等,可以适合各个场景,需要的自取。 图片展示: 教程…...
jsp实验19 File
三、源代码以及执行结果截图: readJSPFile.jsp <% page contentType"text/html" %> <% page pageEncoding "utf-8" %> <% page import"java.io.*"%> <style> #tom{ font-family:宋体;font-size:2…...
【OpenVINO™】在C#中使用 OpenVINO™ 部署 YOLOv10 模型实现目标
文章目录 1. 前言1.1 OpenVINO™ C# API1.2 YOLOv10 2. 模型获取2.1 源码下载2.2 配置环境2.3 下载模型 3. Yolov10 项目配置3.1 项目创建与环境配置3.2 定义模型预测方法3.2.1 定义目标检测模型方法3.2.2 使用OpenVINO™ 预处理接口编译模型 3.2 模型预测方法调用 4. 项目运行…...
RabbitMQ 如何保证消息不丢失
开启消息确认机制: 在发布消息时,可以设置deliveryMode为2(持久化),以确保消息不会因为RabbitMQ的崩溃而丢失。 使队列持久化: 通过设置durable为true,可以确保队列在RabbitMQ重启后依然存在。…...
【技术突破】合合信息新品震动业界,TextIn智能抽取,是不是藏了黑科技?
官.网地址:合合TextIn - 合合信息旗下OCR云服务产品 随着文本数据关系的日益复杂化,传统的信息抽取技术面临着诸多挑战。深度学习模型的训练往往需要大量的高质量标注的训练样本,依赖规则实现上下文对话,新样本如果变换了行文方式…...
Transformer模型学习(1)
Transformer模型,它自2017年被引入以来,已成为处理语言任务的主流技术。Transformer模型不仅在多个语言处理任务上取得了优异的成绩,而且还因为它的设计极大地推动了后续模型的发展,如今广泛应用于聊天机器人、翻译软件和文本生成…...
TinTinLand Web3 + AI 共学月|五周上手,捕获浪潮碰撞下的无限机遇
近期,斯坦福大学人文x人工智能研究所(Stanford HAI)发布了《2024 年人工智能指数报告》(Artificial Intelligence Index Report 2024),指出当前人工智能的发展已全面改变社会的前沿风向,其中据 …...
渗透课程第二阶段--Part1--信息收集
目录 一. 为什么要做信息收集? 渗透测试的流程 信息收集包括的内容 学习框架: 二. 分类 1. 域名相关信息 域名(Domain Name)是什么 域名的分类 域名联系人信息 子域名信息 域名DNS信息 2. IP相关信息 ping/nslookup …...
ubuntu22 搭建nginx高可用集群(VIP(keepalived) + 负载均衡)
#在所有节点安装nginx #ps: 如果要使用tcp流转发:需用二进制包安装 make编译时加入stream流的参数。 推荐直接安装openresty【默认支持stream等nginx模块,还附带了很多常用的lua库】 apt install -y net-tools sudo apt install -y nginx vim /etc/…...
QT 编译Lua 动态库,使用Lua脚本混合编程
一,编译Lua动态库 1,下载lua源码 地址:Lua: downloadhttps://www.lua.org/download.html 2,配置 解压lua源码压缩包,里面有个src文件夹,里面的代码就是lua的源码...
关于不均衡数据的探究
1、不均衡数据指什么 不均衡数据是指在一个数据集中,某些类别(或标签)的样本数量明显少于其他类别的样本数量,也就是说不同类别的样本分布不均匀。这样的数据集在分类问题中非常常见。 2、不均衡数据的特征 类别比例失衡…...
利用 Taotoken 统一管理多个项目的 API 密钥与访问权限
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 利用 Taotoken 统一管理多个项目的 API 密钥与访问权限 在同时维护多个 AI 应用或为不同客户部署服务的场景中,管理不同…...
标注数据集保姆级教程:从入门到排名第一,看这一篇就够了
一、常见坑与避雷第一,过度依赖众包导致标签质量参差不齐。企业往往以价格为先,忽视了众包工人对领域术语的理解深度,从而造成模型召回率下降7%。第二,缺乏统一标注工具链。使用Excel、Word等异构工具会让数据格式碎片化ÿ…...
WESTINGHOUSE 4D33900G19电源模块
WESTINGHOUSE 4D33900G19 电源模块产品特点4D33900G19 是西屋电气(WESTINGHOUSE)工业控制系统中的一款电源模块,为系统提供稳定可靠的电源供应。4D33900G19 采用高可靠性工业级设计,适用于连续运行的严苛工业环境。支持宽范围交流…...
天津螺旋涂塑钢管哪家好
天津螺旋涂塑钢管哪家好,聚鸿管道厂家值得关注 在天津的众多管道产品中,螺旋涂塑钢管以其独特的性能优势,在各类工程建设中发挥着重要作用。那么,天津螺旋涂塑钢管哪家好呢?聚鸿管道厂家是值得深入探讨的选择。 产品质…...
从零到一:基于STC单片机与AHT10传感器的低成本温湿度监测方案实现
1. 为什么选择STC单片机与AHT10传感器组合 当你第一次想做一个温湿度监测设备时,可能会被市面上五花八门的方案搞得眼花缭乱。我刚开始接触这个领域时,也踩过不少坑,买过DHT11模块,试过SHT30传感器,最后发现STC单片机A…...
新手必看:汇川Inoproshop里CIA402轴配置的保姆级避坑指南(从虚轴到单位换算)
新手必看:汇川Inoproshop里CIA402轴配置的保姆级避坑指南(从虚轴到单位换算) 第一次打开汇川Inoproshop软件的轴配置界面时,面对密密麻麻的参数选项,很多新手工程师都会感到无从下手。CIA402作为工业自动化领域广泛应…...
OpenTester:轻量级网络与服务测试工具集实战指南
1. 项目概述与核心价值最近在折腾一些开源项目,特别是涉及到网络连通性、服务状态探测这类基础但至关重要的功能时,总是需要一套趁手的工具。自己写脚本吧,功能单一,复用性差;用现成的商业工具,又觉得不够透…...
玩转CANoe CAN IG:除了手动发送,这些高级信号发生器功能你用过吗?
玩转CANoe CAN IG:解锁信号发生器的隐藏潜力 在汽车电子测试领域,CANoe的CAN IG模块早已成为工程师们的标准工具。但大多数用户仅仅停留在手动发送固定信号的层面,却忽略了内置信号发生器这一强大功能。想象一下,当我们需要模拟真…...
空间计算时代,跨镜追踪如何凭纯视觉技术实现全域无感管控
空间计算时代,跨镜追踪如何凭纯视觉技术实现全域无感管控空间计算技术的蓬勃演进,正推动数字孪生、视频孪生产业完成从平面视觉识别到三维空间感知的产业跃迁,各类大范围园区、口岸港区、城域综治、工矿戍防场景,对于全域动态目标…...
从rockyou.txt字典说起:聊聊Kali Linux里那些你不知道的‘安全工具’冷知识
从rockyou.txt字典说起:Kali Linux安全工具的隐秘往事与技术哲学 2009年12月,社交游戏公司RockYou遭遇数据泄露,超过3200万用户的明文密码被公之于众。这份意外流出的密码清单,后来成为了安全测试领域的"黄金标准"——r…...
