JVM
文章平均质量分 70
东大资土是冠军
2022年6月毕业于东北大学资源与土木工程学院,四年院队生涯不太圆满的结束。
展开
-
JVM类加载全过程
Java虚拟机类加载的全过程,即加载,验证,准备,解析,初始化。原创 2023-12-05 01:11:59 · 1199 阅读 · 0 评论 -
JVM==>图解字节码指令
getstatic #4. 表示获取System.out 的静态字段, 该静态字段的类型为java.io.PrintStream。该指令执行完成后,操作数栈顶存放的就是System的out静态字段的引用。根据常量池,方法区提供的信息,确定操作数栈深度为2,局部变量表的长度为4就足够用了, 避免浪费。, 但是区别在于, i++ 是返回操作数栈上的值, ++i 是返回局部变量表上的值。short范围以内的数字不会放到常量池中的, 直接进入存入方法区。执行完成后,弹出println栈帧,并清空main操作数栈。原创 2023-12-04 19:55:13 · 645 阅读 · 0 评论 -
JVM类加载==>类结构与.class文件字节码指令
himagic:魔数minor_version 小版本号major_version 主版本号constant_pool_count 常量池access_flags 访问修饰符(public)this_class 类的包名,类名super_class 父类interfaces_count 接口信息fields 成员变量,静态变量等变量信息method 方法信息attributes_count 附加属性用一段代码:编译成.class字节码文件就是这样(16进制)原创 2023-12-04 14:50:05 · 536 阅读 · 0 评论 -
JVM:强软弱虚四种引用
下面依次解释五种引用。原创 2023-12-03 21:51:50 · 549 阅读 · 1 评论 -
JVM内存结构:StringTable与常量池关系
首先看一道题 这就涉及到StringTable和常量池,答案在文末,全做对就不用看了而StringTable的位置在不同版本也有变化 , 我们只探讨jdk1.8版本与StringTable 串池对应的是常量池。原创 2023-12-03 16:55:45 · 410 阅读 · 0 评论 -
JVM内存结构
虚拟机栈和程序计数器一样, 也是线程私有的, 即线程运行需要开辟一块内存空间-->栈栈帧:栈会在栈上为线程中每个方法的都分配一块空间, 成为栈帧方法执行完栈帧释放, 线程执行完栈释放每个虚拟栈默认分配1024KB大小内存, 也可以通过参数指定1. 不涉及 线程执行完栈内存自动没了 GC主要涉及堆2. 不是 太大线程数量就会受限了3. 那得看变量是线程共享还是线程私有。原创 2023-12-03 01:36:27 · 915 阅读 · 0 评论