![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java虚拟机
文章平均质量分 80
程序员嘟嘟
持续更新一些程序员编程的基础知识及前沿技术文章,目前“算法和数据结构和Java虚拟机”系列分享文章正在连载中...
展开
-
Java虚拟机垃圾回收机制
Java虚拟机垃圾回收机制Java虚拟机在运行过程中时刻监控虚拟机管理的内存使用情况,当发现内存不够用时或者某个适当时机,就对其所管理的内存中的不再使用的对象进行内存回收,以便有更多内存来支持程序的运行。虚拟机是如何判断内存中的对象是否还存活的呢?如何判断对象是否存活在Java堆内存里存放着几乎所有的对象,虚拟机在进行垃圾回收之前需要判断哪些对象是存活,哪些是已经死亡的(没有其它对象再引用它)。引用计数法给对象添加一个引用计数器,当有对象引用它时计数器加1,当某对象不再引用它时计数器减1.这种方原创 2021-09-21 14:47:56 · 340 阅读 · 0 评论 -
Java虚拟机类对象分配
Java虚拟机对象分配对象的创建过程对象的内存分配当虚拟机遇到一个new指令时,需要为类型分配一个对象。这个过程需要经过以下步骤:类加载<–>检查类型是否加载–>分配内存–>内存空间初始化–>设置–>对象初始化类加载参考类加载:https://blog.csdn.net/kingbojin/article/details/120394951检查类是否加载对象分配执行到这一步时,会先通过定位一个类型的符号引用,检查该符号引用表示的类型是否经过了类加载的三个过原创 2021-09-20 20:28:25 · 116 阅读 · 0 评论 -
Java虚拟机类加载过程
类加载Java虚拟机规范中没有明确规定类加载在虚拟机执行的什么时刻,但是却明确规定了有几种情况下必需要执行类的加载new一个对象时,读取或者设置一个类型的静态字段时,调用类的静态方法时使用反射调用类的方法时子类初始化时如果遇到父类还没有初始化时虚拟机遇到一个定义了main方法的类时,会对其优先加载Java7和Java8中新添加的其它两种情况动态语言支持和default修饰的接口方法时上面这几种情况在虚拟机规范中被称为主动加载,除这几种情况外,其它没有其它的方式会触发类的加载。类加载过程分原创 2021-09-20 20:22:42 · 104 阅读 · 0 评论 -
Java虚拟机JVM的内存区域
JVM的内存区域JVM的运行时数据区域java虚拟机启动的时候会从物理内存中映射一块内存,纳入虚拟机的虚拟内存管理中,这块儿被 虚拟机管理的虚拟内存就是Java虚拟机的运行时数据区域。 而这块区域被 JVM划分为几个不同的区域来管理。这几个不同的区域分别是:方法区java堆java虚拟机栈本地方法栈程序计数器同时按照与线程的关系来分的话,又可以分为:线程私有区域 和 线程共享区域。对于线程私有区域来说,它独立拥有一份内存区域,这块区域其它线程是无法访问的。而对于共享内存区域:它对于所原创 2021-09-18 19:50:18 · 112 阅读 · 0 评论 -
Java 虚拟机启动
Java 虚拟机Java程序的执行我们编写的 *.java代码文件经过编译产生了对应的 *.class文件,.class文件经过JVM的加载,再由执行引擎翻译成机器可识别的机器码去执行执行过程:java文件 --> java编译器 --> 字节码 --> JVM --> 机器码JVM的启动参数运行一个java程序,在命令行中输入命令:jps: 显示当前运行在虚拟机上的进程,可以查看我们自己的程序的进程号:3272然后输入下面命令:该命令会打印当前进程运行的 虚拟机的原创 2021-09-17 23:04:42 · 888 阅读 · 0 评论