jvm
文章平均质量分 83
Automannnn
愿你初心不改,归来仍是少年。
展开
-
windows系统使用c++实现一个小型jvm(四)------------jvm的gc 以及 jvm是什么
这篇文章记录一下gc和对虚拟机的理解,其它的相关jvm的内容就暂时先不涉及了,以后有机会再弄。 1.gc流程 在前台的文章中,我记录了一个模拟的gc流程,那个里面由于对于根对象 具有很高的抽象程度,因此对java的gc想要去了解一下,这里分块看看gc的源码: // 0. create a TEMP new-oop-pool: unordered_map<Oop...原创 2020-03-08 15:50:49 · 359 阅读 · 0 评论 -
windows系统使用c++实现一个小型jvm(三)------------jvm的启动细节2
这篇文章接着上午记录下。 1.标准输入输出流是怎么来的? 在写java程序的时候,我们经常输出控制台信息,调用的如下代码: System.out.Println(); 在这里,我将解释这个的由来。 jvm在初始化时,必须先加载FileDescriptor,FileDescriptor有三个静态成员: 它们会调用本地FileDescriptor的SetI方法: ...原创 2020-03-08 15:09:06 · 429 阅读 · 0 评论 -
windows系统使用c++实现一个小型jvm(三)------------jvm的启动细节1
今天上午,主要将昨天下午运行机制中,jvm的launch方法的内容详细讲述一下。 在vm的launch中,有如下方法块: .... HANDLE cur_handle = (HANDLE)(_beginthreadex(NULL, 0, scapegoat, &p, 0, NULL)); this->tid = GetThreadId(cur_handle); //...原创 2020-03-08 11:00:55 · 485 阅读 · 0 评论 -
windows系统使用c++实现一个小型jvm(二)------------jvm的运行机制
上午写了一下环境介绍,下午接着将jvm的运行机制给记录一下。 我将从源码角度,进行分析,一步步的将一个java程序的生到死进行梳理。 需要注意,启动程序的时候,需要带一个参数,该参数为 当前需要执行 class文件,里面需要包含mian()方法。 当然了,这是其中一种的类启动方式,还有一种jar启动方式,我将在后文进行分析。 当前环境下,我是指定了一个 helloworld...原创 2020-03-07 16:41:08 · 444 阅读 · 0 评论 -
windows系统使用c++实现一个小型jvm(一)------------环境介绍及背景说明
背景说明: 首先,本个小demo并不是我自己写的,说是小demo,实际也不小,总共的代码量有3兆多了。原创的大牛在这儿-----用 C++ 实现了一个小型的 jvm!!!! 当我看到这个贴子时候以及它的代码量之后,心里是既高兴,又犹豫的。 为什么呢? 高兴是因为,没想到能够有机会接触这么底层的东西,当把它吃透后,想想自己的java造诣也能再进一步吧,同时也能呼应上一篇文章...原创 2020-03-07 11:17:15 · 609 阅读 · 0 评论