这取决于JVM.通常,垃圾收集器使用与JVM相同的语言实现,但情况并非总是如此.
在Maxine中,JVM和垃圾收集器都是用Java实现的.
在Jikes中,JVM和垃圾收集器都是用Java实现的.
在RAVA的JVM是用Ruby实现,垃圾收集器没有实现在所有:红宝石已经是一个内存管理的语言,也没有必要实现单独的垃圾收集器.
在IKVM中,JVM在C#和CIL实施,垃圾收集器没有实现在所有:在CLI VES已经是一个内存管理的环境,没有必要实施单独的垃圾收集器.
在VisualAge for Java中,Java字节码被转换为Smalltalk字节码,然后由Smalltalk环境执行.Smalltalk已经是一种内存管理语言,不需要实现单独的垃圾收集器.
在VMKit中,VM和垃圾收集器都是用C++编写的.
在HotSpot中,JVM和所有4个(或者当前有许多)垃圾收集器都是用C++编写的.
JVM可以用任何语言实现,但Sun的HotSpot是用C/C++和汇编语言编写的.
到目前为止,10年来,HotSpot代码库已经被数十人所使用.(这是好事和坏事.)这很重要.有近1500个C/C++头文件和源文件,包含近250,000行代码.除了预期的类加载器,字节码解释器和支持运行时例程之外,您还可以获得两个运行时编译器,从字节码到本机指令,3个(左右)垃圾收集器,以及一组用于同步的高性能运行时库等.
| 归档时间: |
|
| 查看次数: |
3189 次 |
| 最近记录: |