ecd*_*dhe 3 java jvm memory-management
在Java®虚拟机规范的第2.7节"对象表示"中,它说:
在Oracle的一些Java虚拟机实现中,对类实例的引用是指向句柄的指针,该句柄本身是一对指针:一个指向包含对象方法的表和指向表示Class对象的指针对象的类型,另一个是从堆为对象数据分配的内存.
我的印象是句柄有三个指针而不是两个:
任何人都可以帮我解决这个困惑.
首先,引用的文字说"在Oracle的一些Java虚拟机实现......".此描述对于所有实现都不正确.
它认为你的误解是基于对文本的错误解析.我认为实际上是这样说的:
Class对象的指针.手柄有两个指针,而不是三个.
我的理解是,在现代 Oracle JVM中,句柄的表示如下:
Class对象的引用.它还给出了GC需要的实例数据区域的大小(以单词表示).数组的表示有点不同.首先,有一个包含数组长度的第3个字.
(另请参阅java对象标头中的内容)
但请注意,这些细节是特定于实现的.特别是旗帜字.
| 归档时间: |
|
| 查看次数: |
990 次 |
| 最近记录: |