
JVM虚拟机
文章平均质量分 75
分享Java虚拟机JVM的关键知识,包括Java内存、GC等知识,帮助深入理解Java内部原理。
sun_lm
这个作者很懒,什么都没留下…
展开
-
四、JVM类加载机制
Java代码编写好之后,需要将其编译成Class文件,才能被JVM虚拟机执行。JVM将Class文件加载到内存,并对其进行校验、转换解析和初始化,最终形成可以直接被JVM使用的Java类型,就是JVM的类加载机制。Java是一门动态语言,也就是在Java里面,类型的加载、连接和初始化过程是在程序的运行期间完成的。例如:如果编写一个面向接口的程序,可以等到在运行时再指定其实际的实现类。(C语言的链接过程是在编译期间完成的,C通过编译链接之后会直接生成一个可执行文件。)1、类加载的时机类从被加载到J原创 2021-08-22 23:39:03 · 101 阅读 · 0 评论 -
三、JVM常用命令
除了最常使用的javac、java两个命令,JVM中还提供了一些其他的命令,可以用来分析JVM中的各项数据和性能。名称 主要作用 jps JVM Process Status Tool,显示指定系统内正在运行的所有的HotSpot虚拟机进程 jstat JVM Statistics Monitoring Tool, 收集JVM各方面的运行数据 jinfo Configuration for Java, 显示JVM配置信息 jmap Memory Map fo原创 2021-08-22 11:44:17 · 156 阅读 · 0 评论 -
二、JVM垃圾回收与内存分配策略
Java与C++的一个不同点在于,C++需要手动分配和清理内存,而Java中,内存的分配和回收是由JVM自动进行的。1、对象存活判断算法JVM中,对内存自动回收之前,首先需要做的就是判断一个对象是否仍然存活。判断对象是否存活时有两种算法。引用计数算法:给每一个对象添加一个引用计数器,每当有一个地方引用它时,计数器值就加1;当引用失效时,计数器值就减1。当计数器值为0时,这个对象就不可能再被使用,因此判断其不再存活,可以被回收。引用计数算法实现简单,但是主流的JVM里面并未使用这种算法,其中最原创 2021-08-21 17:23:38 · 181 阅读 · 0 评论 -
一、JVM内存区域
1、运行时数据区域JVM虚拟机在执行Java程序时,会把它所管理的内存划分为若干个不同的内存区域,如下图所示。这些区域有着各自的用途,它们的生命周期也各不相同。其中,方法区和堆的生命周期与JVM虚拟机相同,随着虚拟机进程的启动而存在,因此,它们也是所有Java线程共享的数据区域;而虚拟机栈、本地方法栈和程序计数器,它们的生命周期与用户线程相互依赖,随着用户线程的启动和结束而对应地创建和销毁,因此,它们也是线程私有的数据区域,也就是每个线程都有各自的虚拟机栈、本地方法栈和程序计数器。各个数据区域.原创 2021-08-20 23:41:12 · 539 阅读 · 6 评论