JVM虚拟机-跨平台的利器

2022-05-11  本文已影响0人  印奕

1,jvm虚拟机要字节码文件,即out文件内的.class文件

idea提供终端操作

2,javap -c 路径 >test.txt     终端输入反汇编语句

反编译后的字节码.txt文件

3,iconst:定义一个操作数;istore:存储操作数;iload:加载操作数,当变量或对象被调用时加载;ireturn:返回值;iadd:加法;imul:乘法

4,各个平台都有自己的JVM,当下载SDK时就安装了JVM

5,缓存的用处:存放暂时不用的东西,一个.java源文件先经过解析器转为.class文件再加载(靠类加载器classloader)到内存(即JVM虚拟机区域),当内存不够用时把暂时不用东西加载到缓存中去,腾出空间给新打开的文件。

6,堆与栈的区别:堆:new显式调用,谁创建谁释放空间,Java语言有自动垃圾回收机制,故不需手动释放内存;栈:操作系统分配的内存空间操作系统释放,作用域结束即释放;每一个方法都是一个栈帧

反编译文件.txt中#记录出口

GC(可达性分析)->判断是否回收垃圾

随着遍历次数的增加逐步降级,达到轮巡次数即释放内存


栈帧流程图及垃圾回收机制GC图
上一篇 下一篇

猜你喜欢

热点阅读