22人参与 • 2026-08-02 • Java
java虚拟机(jvm,java virtual machine)是java运行时环境的核心,它是一个能够运行java字节码的假想计算机,jvm的主要职责包括加载和运行java字节码,提供运行时环境支持java程序执行,并管理内存和垃圾回收等。
jvm:java虚拟机,是仿照真实的操作系统进行设计的。真实操作系统中,对于进程的地址空间是进行了区域划分的。jvm也就仿照此,也进行了区域划分的设计。
具体划分(四个核心区域):
test t = new test() 代码中new test()一定在堆中,t 是局部变量就在栈;t 是成员变量就在堆; t 是一个静态成员变量就在元数据区。
类加载的步骤:
双亲委派模型:描述类加载中,根据全限定类名,找到.class 文件的过程。
类加载器:jvm中专门的模块,负责类加载。jvm默认提供三种类加载器(存在父子关系,1是爷,2是爸,3室儿):
bootstrapclassloader:找java标准库的目录extensionclassloader:找java扩展库的目录applicationclassloader:第三方库和当前项目的目录过程:
applicationclassloader作为入口,然后把加载类的任务交给父亲 extensionclassloader,他又先给他的父亲 bootstrapclassloader,然后 bootstrapclassloader找java标准库范围,找到了就加载,没找到就抛回给儿子 extensionclassloader,同理进行。最后 applicationclassloader都没找到,就抛出异常。
java中释放内存(主要是针对堆上的对象)的手段。
在c语言中手动申请的内存需要手动释放,而java引入gc会自动识别,某个内存后续是否还会使用,自动释放。
工作过程:
找到垃圾:
有两个方案,引用计数和可达性分析,java采取的是可达性分析。
释放垃圾:



到此这篇关于深入理解javase jvm的文章就介绍到这了,更多相关javase jvm内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
您想发表意见!!点此发布评论
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论