当前位置: 首页 > news >正文

JVM学习

JVM

1、JVM是一个跨语言的平台,与语言无关
2、java虚拟机规范:一流企业做标准,二流企业做品牌,三流企业做产品
JVM种类
Hotspot:Oracle 公司,有商业版和免费版
open jdk 内部包含免费版本hotspot虚拟机
Jrockit: BEA公司,曾经号称世界最快的虚拟机,后被Oracle收购,合并到Hotspot虚拟机
J9:IBM公司
Microsoft VM:微软
TaobaoVM:阿里,Hotspot深度定制版
LiquidVM:直接针对硬件,效率极高
azul zing:商业版本,速度快,垃圾回收1ms以内
垃圾回收算法被Hotspot吸收,衍生现在的ZGC
等等

3、JDK、JRE和JVM三者关系
JDK: 包括JRE和java 开发工具包
JRE: java运行是环境,包括JVM和java的核心类库
JVM: java虚拟机,运行字节码文件的平台

Class 文件

magic number:4个字节
minor version :2个字节
major version :2个字节
constant_pool_count :2个字节,常量池数量,最多存储常量数量2^16个
constant_pool :常量池,长度为constant_pool_count-1的的表
access_flags :访问标记
this_class :类名引用
super_class :父类引用
interface_count :接口数量
interfaces :接口列表
fileds_count :属性数量
fileds :属性列表
methods_count :方法数量
method_info :方法信息
attribute_count :属性数量
attribute_info :属性信息

无参构造方法执行
在这里插入图片描述

aload_0

Class文件解释器Jclasslib

Class 的加载过程包括: Loading,Linking(Verification,Perparation,Resolution),initializing

1、加载过程是通过类加载器完成的;jre内置类加载器包括Bootstarp,Ext和Application:Bootstarp 加载 jre/lib/rt.jar包中的class文件,Ext加载 jre/lib/ext路径下jar包中的class文件,Application加载classpath下的class文件;除了内置类加载器之外,用户还可以自定义类加载;遵循双亲委派原则
2、为什么要遵循双亲委派原则
2.1主要保证类加载的安全性,防止核心类被篡改
2.2同时可以提高加载效率,父加载器已经加载,则不需要再进行加载

加载不到类,抛出异常ClassNotFoundException
在这里插入图片描述

JMM Java内存模型

数据一致性
老的:总线锁
新的:缓存锁 + MESI

缓存行
缓存对齐:disruptor

乱序问题

CPU硬件内存屏障
Java内存屏障

在这里插入图片描述

运行时数据区

1、虚拟机栈

 int i = 8;i = i++sout(i)  // 8

在这里插入图片描述


http://www.mrgr.cn/news/90489.html

相关文章:

  • 蓝桥杯算法日记|贪心、双指针
  • 23、深度学习-自学之路-激活函数relu、tanh、sigmoid、softmax函数的正向传播和反向梯度。
  • PySpark查找Dataframe中的非ASCII字符并导出Excel文件
  • 百度舆情优化:百度下拉框中的负面如何清除?
  • 自己部署 DeepSeek 助力 Vue 开发:打造丝滑的折叠面板(Accordion)
  • 【问】强学如何支持 迁移学习呢?
  • 微服务与网关
  • 【环境安装】重装Docker-26.0.2版本
  • DeepSeek渣机部署编程用的模型,边缘设备部署模型
  • 微信小程序医院挂号系统
  • tkinter-TinUI-xml实战(12)应用组启动器
  • windows系统远程桌面连接ubuntu18.04
  • AI语言模型的技术之争:DeepSeek与ChatGPT的架构与训练揭秘
  • 玩转大语言模型——使用Kiln AI可视化环境进行大语言模型微调数据合成
  • Docker上安装Zabbix-server-mysql报错
  • 从Word里面用VBA调用NVIDIA的免费DeepSeekR1
  • JESD204B及解扰模块
  • Alertmanager 收敛规则
  • <工具 Claude Desktop> 配置 fetch MCP Server
  • (2025)深度分析DeepSeek-R1开源的6种蒸馏模型之间的逻辑处理和编写代码能力区别以及配置要求,并与ChatGPT进行对比(附本地部署教程)
  • 算法练习——滑动窗口
  • mysql读写分离与proxysql的结合
  • 使用k3s高可用部署rancher
  • YOLO自定义数据集实现K折交叉验证——K-Fold Cross Validation
  • 使用grafana v11 建立k线(蜡烛图)仪表板
  • CF Round 997 记录 题解 (div. 2 A - E)