JVM
文章平均质量分 66
java虚拟机知识总结
小俱的一步步
莫忧莫惧莫回头
展开
-
Hotspot虚拟机对象问题(对象头...对象创建)
HotSpot虚拟机的自动内存管理系统要求对象起止地址必须是8字节的整数倍,也就是说对象的大小必须是8字节的整数倍,对象头部分正好是8字节的整数倍,所以,当对象实例数据部分没有对齐时,就需要通过对齐填充来补全,对齐填充并不是必然存在的,也没有特殊的含义,只是起到了占位符的作用。4.设置对象头:初始化零值后,虚拟机需要对对象进行必要的设置,例如这个对象是哪个类的实例.如何才能找到类的元数据信息、对象的哈希码、对象的GC分代年龄等信息都是存放在对象的对象头中。的,这里我们需要重点了解对象头。原创 2024-03-26 20:56:03 · 462 阅读 · 0 评论 -
JVM的组成部分(类加载器、运行时数据区、执行引擎、本地库接口)
双亲委派机制测试:当创建一个自己的String类,调用其中的类变量,由于双亲委派机制,java核心类库会创建String对象,而不会使用我们自己创建的String的类,因此报错。当 Java 虚拟机启动时会根据预定义的规范对字节码采用逐行解释的方式执行,将每条字节码文件中的内容“翻译”为对应平台的本地机器指令执行。准备阶段后的值是0,而不是10,初始化阶段才为10;2.为什么使用:java环境与外界交互,因为上层的高级语言没有对底层硬件直接操作的权限,而是需要调用操作系统的接口进行调用。原创 2024-01-22 21:37:54 · 1180 阅读 · 11 评论 -
JVM—垃圾回收
一个没有被任何引用的对象就是一个垃圾对象,垃圾对象需要被清理回收,否则一直占用内存空间,其他新对象无法使用垃圾对象空间,严重的话会造成内存溢出。原创 2024-01-23 22:26:12 · 1019 阅读 · 0 评论 -
JMM(Java Memory Model)内存模型
这里的工作内存是 JMM 的一个抽象概念,也叫本地内存,其存储了该线程读/写共享变量的副本。就像每个处理器内核拥有私有的高速缓存,JMM 中每个线程拥有私有的本地内存。Java内存模型中规定了所有的变量都存储在内存中,每条线程还有自己的工作内存,线程对变量的操作都必须在工作内存中进行,而不能直接读写内存变量。不同线程之间无法直接访问对方工作内存中的变量,线程间的通信一般有两种方式进行,一是通过消息传递,二是共享内存。Java内存模型,规范了计算机内存与java虚拟机之间的协调工作,即规定了。原创 2024-03-11 21:48:18 · 533 阅读 · 1 评论 -
初始JVM
JVM 本质上是一个运行在计算机上的程序,他的职责是运行Java字节码文件。原创 2023-12-28 13:35:20 · 744 阅读 · 2 评论 -
JVM生命周期
除此之外,JNI(Java Native Interface)规范描述了用JNI Invocation API 来加载或卸载Java虚拟机时,Java虚拟机的退出情况。(bootstrap class loader)创还能得一个初始类(intital class)来完成的,这个类是由虚拟机的具体实现规定的。Java虚拟机的启动是通过。原创 2024-01-06 21:25:25 · 687 阅读 · 4 评论