2010-03-21 102 views
-3

存储在内存中的类的定义在哪里?Java - 类的内存分配

+4

我建议您在问任何问题之前,浏览JLS(http://java.sun.com/docs/books/jls/third_edition/html/j3TOC.html)和JVM规范(http: //java.sun.com/docs/books/jvms/second_edition/html/Overview.doc.html)。 – 2010-03-21 06:35:20

+8

一堂课就像是你正在学习的计算机科学课。一个你有功课分配。如果你不开始学习材料,而不是询问互联网上的每个问题,那么你就会失败。 – 2010-03-21 06:37:05

+0

重复的http://stackoverflow.com/questions/2263523/does-java-have-automatic-garbage-collection – 2010-03-21 07:37:32

回答

1

这要看的Java你谈论

“运行时数据的内存布局 区,垃圾收集算法 使用,和Java的任何内部 优化虚拟的 机器指令(例如, 将它们翻译成机器代码) 由实现者自行决定。

查看JVM spec

也就是说,Sun Java有一段名为permanent generation的内存,其中包含类定义。由于其最初的意图(对于大多数静态类来说是一个相对较小的区域),永久生成并不总是适合于针对JVM的动态语言。请参阅JRuby问题的this discussion。这是Da Vinci Machine project的动机的一部分,该目标旨在改善VM对这些语言的支持。