系列一、JVM概述
一、概述
1.1、Java发展中的重大事件

1.2、虚拟机 vs Java虚拟机
1.2.1、虚拟机

1.2.2、Java虚拟机

1.2.3、Java虚拟机的作用
Java虚拟机是二进制字节码的运行环境,负责装载字节码到其内部,解释/编译为对应平台上的机器指令指令。每一条Java指令,Java虚拟机规范中都有详细的定义,如怎么取操作数,怎么处理操作数,处理结果放在哪里。
1.2.4、特点
一次编译,到处运行;
自动内存管理;
自动垃圾回收功能;
1.3、JVM的位置

JVM是运行在操作系统之上的,它与硬件没有直接的交互。
1.4、JVM的架构图(概览图)

HotSpot JVM是目前市面上高性能虚拟机的代表之一;
它采用解释器与即时编译器并存的架构;
在今天,Java程序的运行性能早已脱胎换骨,已经达到了可以和C/C++程序一较高下的地步;
1.5、JVM的架构图(详细图)

1.6、JVM的生命周期
1.6.1、启动
Java虚拟机的启动时通过引导类加载器创建一个初始类来完成的,这个类是由虚拟机的具体实现指定的。
1.6.2、运行
(1)一个运行中的Java虚拟机有着一个清晰的任务,即:执行Java程序;
(2)程序开始执行时它才执行,程序结束时它就停止;
(3)执行一个所谓Java程序的时候,真真正正在执行的是一个叫做Java虚拟机的进程;
1.6.3、退出
当出现以下情况时,虚拟机将会退出:
(1)程序正常执行结束;
(2)程序在运行过程中遇到了异常或者错误而异常终止;
(3)由于操作系统出现错误而导致Java虚拟机进程终止;
(4)线程调用Runtime类或者System类的exit()方法,或者调用Runtime类的halt()方法,并且Java安全管理器也允许这次exit或者halt操作;
1.7、各种JVM
1.7.1、HotSpot VM

1.7.2、Classic VM

1.7.3、Exact VM

1.7.4、JRockit(BEA)

1.7.5、J9(IBM)

相关文章:
系列一、JVM概述
一、概述 1.1、Java发展中的重大事件 1.2、虚拟机 vs Java虚拟机 1.2.1、虚拟机 1.2.2、Java虚拟机 1.2.3、Java虚拟机的作用 Java虚拟机是二进制字节码的运行环境,负责装载字节码到其内部,解释/编译为对应平台上的机器指令指令。每一条Java指令&#…...
milvus数据管理-压缩数据
Milvus 默认支持自动数据压缩。您可以 配置 Milvus 以启用或禁用 压缩 和自动压缩。 如果自动压缩被禁用,您仍然可以手动压缩数据。 1.手动压缩数据 压缩请求是异步处理的,因为它们通常需要花费很长时间。 from pymilvus import Collection collection…...
SpringBoot项目连接linux服务器数据库两种解决方法(linux直接开放端口访问本机通过SSH协议访问,以mysql为例)
最近找个springboot脚手架重新熟悉一下springboot相关框架的东西,结果发现好像项目还不能直接像数据库GUI工具一样填几个SSH参数就可以了,于是就给他再整一下看看如何解决 linux开放3306(可修改)端口直接访问 此方法较为方便&am…...
【Rust】快速教程——闭包与生命周期
前言 你怎么向天生的瞎子说清颜色?怎么用手势向天生的聋子描述声音? 鲜花就在眼前,雷鸣就在头顶,对他们来说却都毫无意义 眼睛看不到,鼻子可以嗅闻花香,耳朵听不见,手指可以触碰窗纸的震动。 犯…...
redis高级案列case
案列一 双写一致性 案例二 双锁策略 package com.redis.redis01.service;import com.redis.redis01.bean.RedisBs; import com.redis.redis01.mapper.RedisBsMapper; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; imp…...
Vue3+Vite实现工程化,attribute属性渲染v-bind指令
想要渲染一个元素的attribute,应该使用v-bind指令 由于插值表达式不能直接放在标签的属性中,所有要渲染元素的属性就应该使用v-bindv-bind可以用于渲染任何元素的属性,语法为 v-bind:属性名数据名,可以简写为 :属性名数据名 <…...
下一代搜索引擎会什么?
现在是北京时间2023年11月18日。聊一聊搜索。 说到搜索,大家首先想到的肯定是谷歌,百度。我把这些定义成上一个时代的搜索引擎。ChatGPT已经火热了有一年的时间了,大家都认为Ai搜索是下一代的搜索。但是AI搜索,需要的是很大算力&a…...
WPF中如何在MVVM模式下关闭窗口
完全来源于十月的寒流,感谢大佬讲解 使用Behaviors <Window x:Class"Test_03.MainWindow"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:b"http://schemas.microsoft.com/xaml/behaviors"xmlns:x&quo…...
【数据结构&C++】二叉平衡搜索树-AVL树(25)
前言 大家好吖,欢迎来到 YY 滴C系列 ,热烈欢迎! 本章主要内容面向接触过C的老铁 主要内容含: 欢迎订阅 YY滴C专栏!更多干货持续更新!以下是传送门! 目录 一.AVL树的概念二.AVL树节点的定义(代码…...
Python算法——树的最大深度和最小深度
Python中的树的最大深度和最小深度算法详解 树的最大深度和最小深度是树结构中的两个关键指标,它们分别表示树的从根节点到最深叶子节点的最大路径长度和最小路径长度。在本文中,我们将深入讨论如何计算树的最大深度和最小深度,并提供Python…...
46.全排列-py
46.全排列 class Solution(object):def permute(self, nums):""":type nums: List[int]:rtype: List[List[int]]"""# 结果数组0ans[]nlen(nums)# 判断是否使用state_[False]*n# 临时状态数组dp_[]def dfs (index):# 终止条件if indexn:ans.appe…...
系列三、GC垃圾回收算法和垃圾收集器的关系?分别是什么请你谈谈
一、关系 GC算法(引用计数法、复制算法、标记清除算法、标记整理算法)是方法论,垃圾收集器是算法的落地实现。 二、4种主要垃圾收集器 4.1、串行垃圾收集器(Serial) 它为单线程环境设计,并且只使用一个线程…...
WPF中的虚拟化是什么
WPF(Windows Presentation Foundation)中的虚拟化是一种性能优化技术,它主要用于提高大量数据展示的效率。在WPF中,如果你有一个包含大量项的ItemsControl(例如ListBox、ListView或DataGrid等),…...
免费稳定几乎无门槛,我的ChartGPT助手免费分享给你
公众号「架构成长指南」,专注于生产实践、云原生、分布式系统、大数据技术分享。 概述 ChatGPT想必大家应该都不陌生了,大部分人或多或少都接触了,好多应该都是通过openAi的官方进行使用的,这个门槛对大部分人有点高,…...
奇瑞金融:汽车金融行业架构设计
拆借联合贷款abs...
milvus数据库分区管理
一、创建分区 在创建集合时,会默认创建分区_default。 自己手动创建如下: from pymilvus import Collection collection Collection("book") # Get an existing collection. collection.create_partition("novel")二、检测分…...
pytorch.nn.Conv1d详解
通读了从论文中找的代码,终于找到这个痛点了! 以下详解nn.Conv1d方法 1 参数说明 in_channels(int) – 输入信号的通道。 out_channels(int) – 卷积产生的通道。 kernel_size(int or tuple) - 卷积核的尺寸,经测试后卷积核的大小应为in_cha…...
大数据HCIE成神之路之数学(2)——线性代数
线性代数 1.1 线性代数内容介绍1.1.1 线性代数介绍1.1.2 代码实现介绍 1.2 线性代数实现1.2.1 reshape运算1.2.2 转置实现1.2.3 矩阵乘法实现1.2.4 矩阵对应运算1.2.5 逆矩阵实现1.2.6 特征值与特征向量1.2.7 求行列式1.2.8 奇异值分解实现1.2.9 线性方程组求解 1.1 线性代数内…...
音视频学习(十八)——使用ffmepg实现视音频解码
视频解码 初始化 视频常用的编解码器id定义(以h264和h265为例) // 定义在ffmpeg\include\libavcodec\avcodec.h AV_CODEC_ID_H264 AV_CODEC_ID_H265查找解码器:根据编解码id查看解码器 AVCodec* pCodecVideo avcodec_find_decoder(codec…...
nginx的GeoIP模块
使用场景 过滤指定地区/国家的IP,一般是国外IP禁止请求。 使用geoip模块实现不同国家的请求被转发到不同国家的nginx服务器,也就是根据国家负载均衡。 前置知识 GeoIP是什么? 官网地址 https://www.maxmind.com/en/home包含IP地址的地理位…...
PregelProtocol——定义了“LangChain执行体“最小功能集
1. 配置绑定通过前面的内容我们会发现RunnableConfig这个对象几乎时无所不在,我们在调用Pregel对象的时候可以将它作为参数,用来提供用于控制其执行行为(比如迭代限制,并发控制等)的配置。执行引擎还将它作为容器用来下…...
OpenClaw+Qwen2.5-VL-7B实战:飞书机器人自动处理图片文档
OpenClawQwen2.5-VL-7B实战:飞书机器人自动处理图片文档 1. 为什么需要自动化图片文档处理 上周团队周会上,产品经理小张分享了一组用户调研的手写笔记照片。这些宝贵的一线反馈需要整理成电子版归档,但手动转录不仅耗时,还容易…...
MQ之KAFKA (broker 高可用)
Kafka KRaft 核心知识点(面试+生产极简版) KRaft(Kafka Raft):Kafka 2.8+ 引入、3.3+ 生产可用,完全替代 Zookeeper 的内置元数据一致性协议(基于 Raft)。 一句话背诵 内置 Raft、无 ZK、元数据自管理、选举更快、吞吐更高、架构极简。 1. 核心概念(必背) Control…...
[Android] 故宫陶瓷馆 v2.2.251126
[Android] 故宫陶瓷馆 v2.2.251126 链接:https://pan.xunlei.com/s/VOpHzrBozQgvaUJbdCkB20SMA1?pwdu338# 故宫陶瓷馆是故宫博物院官方出品的APP,以“时间轴”为核心骨架、全新技术手段打造的陶瓷馆,为你将展品带至手中、带至眼前。...
Redis 实战篇1.4 (Redis优化秒杀)
Redis优化秒杀原流程思路Redis优化秒杀在Redis中库存用String数据类型存储,为了确保一人一单,则订单id存储用Set数据类型保证数据的唯一性lua脚本保证原子性异步秒杀方案案例:需求创建订单(还没完成明天继续)// 解锁的…...
MPC轨迹跟踪:基于运动学、动力学CarsimSimulink联仿
(MPC)轨迹跟踪,基于运动学、动力学carsim&simulink联仿方向打死油门踩到底,轮胎和地面摩擦的青烟还没散尽,手里的MPC控制器已经算好了未来三秒的轨迹——这大概就是模型预测控制在轨迹跟踪中最性感的瞬间。今天咱们…...
单线程 Redis 的高性能之道
引言Redis 以单线程模型处理网络请求与命令操作,却能在高并发场景下保持惊人的吞吐能力。这背后离不开三大基石:全内存存储、高效数据结构(哈希表、跳表等)以及 epoll 多路复用机制,让单线程能够高效处理海量连接。 随…...
InnoDB REDO LOG 详解:从原理到实现(基于 MySQL 8.0)
在现代关系型数据库系统中,事务的 持久性(Durability)是 ACID 特性的关键一环。为了在系统崩溃后仍能恢复数据一致性,InnoDB 引擎引入了 REDO LOG(重做日志)机制。 本文将深入剖析 REDO LOG 的作用、设计思…...
解密Prompt系列69. 从上下文管理到Runtime操作系统
AM)”,将 Runtime 视为“状态(State)”,构建一套属于智能体的“操作系统”。 最近,ByteDance 的 Context-Folding、MIT 的 RLM、以及热门项目 Ralph 的出现,共同指向了一个极其明确的趋势&…...
Python数据标准化全攻略:从原理到实践
在机器学习和数据分析领域,数据标准化是一项至关重要的预处理步骤。它能够将不同尺度的特征统一到相同的范围内,帮助模型更好地学习数据特征,提高训练效率和模型性能。本文将详细介绍数据标准化的概念、常用方法以及在Python中的实现方式。一…...
