JVM
1.知识储备1.1分派定义:确定执行哪个方法的过程a.疑问有些读者会问,方法的执行不是取决于代码设置中的执行对象吗?为什么还要选择呢?b.回答若一个对象对应于多个方法时,就需要进行选择了读者应该都想到了Java中的特性:多态,即重写&重载。下面我会详细讲解。分类:静态分派&动态分派。下面我将详细讲解。1.2变量的静态类型&动态类型先看下面的代码publicclassTest{staticabstractclassHuman{}staticclassManextendsHuman{}staticclassW
jmap查看内存信息jmaphisto/pid>./log.txt:查看某一进程实例个数,占用内存的字节数,以及所属的类jmap-heap/pid:查看堆信息jmap‐dump:format=b,file=app.hprof/pid通过jvisualvm命令启动jvm可视化管理界面可导入dump文件进行分析:查看类的实例jstack分析死锁:写一段死锁代码publicclassDeadLockTest{privatefinalstaticObjectlock1=newObject();privatefin
1、JVM关闭(1)正常关闭所有非守护线程执行结束System.exit(0)ctrl+ckill-15SIGTERM信号(2)异常关闭RuntimeExcetionOOM(3)强制关闭kill-9SIGKILL信号Runtime.halt()断电系统关机系统crash2、实例publicvoidstart(){Runtime.getRuntime().addShutdownHook(newThread(){publicvoidrun(){try{LogService.this.stop();}catch
1.类加载机制分为加载、验证、准备、解析、初始化、使用、卸载。(1)加载在硬盘上查找并通过IO读入字节码文件,使用到类时才会加载,例如调用类的main()方法,new对象等等,在加载阶段会在内存中生成一个代表这个类的java.lang.Class对象,作为方法区这个类的各种数据的访问入口。(2)验证校验字节码文件的正确性。(3)准备给类的静态变量分配内存,并赋予默认值。(4)解析将符号引用替换为直接引用,该阶段会把一些静态方法(符号引用,比如main()方法)替换为指向数据所存内存的指针或句柄等(直接引用
1、魔数所有.class文件的前四个字节都是魔数,魔数的固定值为0xCAFEBABE。魔数放在文件的开头,JVM可以根据文件的开头判断这个文件是否有可能是.class文件。如果是这样的话,之后的操作会继续下去。2、版本号版本号为魔数后的4个字节,前2个字节显示下一个版本号,后2个字节显示主版本号。主版本号后的字节是常量池入口。在常量池中保存两种常量:字面量和符号引用。字面量在代码中声明为Final的常量值,符号引用类别和界面的全局限定名、字段的名称和说明符、方法的名称和说明符。常量池整体分为常量池计数器和
一.JVM内存区域划分JVM为什么要划分出这些区域呢?JVM内存是从操作系统里面申请过来的,而JVM就根据功能需求将这些划分成了一些小的模块,这样一块大的场地就可以划分成一些小的模块,然后每个模块就负责自己的功能就可以了,那接下来看看这些区域的功能到底是什么呢!1.程序计数器程序计数器是内存中最小的区域,这里面主要保存了下一条要执行的指令的地址在哪里(指令就是字节码,一般程序要运行,JVM就需要把字节码加载出来放到内存中,然后程序再把一条一条的指令从内存中取出来放到CPU上去执行,所以必须要记住当前执行到
1、指令系统说明JVM指令系统与其它计算机指令系统极为相似。同时,Java指令还包括操作码和操作数两部分。操作码是一个8位的二进制数字,操作码后面有一个操作数,其长度视需要而定。运算代码用来指定指令操作的性质(这里我们以汇编符号的形式来说明),例如iload表示从存储器中装入一个整数,anewarray表示为新的数组分配空间,iand表示两个整数的"与",ret表示过程控制,从对某个方法的调用中返回。超过8位长度时,操作数被划分为多个字节存储。对于这种情况,JVM采用了“bigendian”的编码方法,即
Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。
赤友清理大师是一款为 Mac 设计的智能清理优化工具,可精准扫描垃圾、大文件、重复文件等,释放磁盘空间。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。
Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。
Windows 10 是一款微软推出的经典操作系统,拥有硬件兼容性与多任务处理能力。它更偏向把系统状态查看和常用调节动作放在一起,适合需要持续观察和微调设备状态的场景。
极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。




