java - Java 中的引用变量里面有什么?

标签 java variables jvm reference

我们知道对象引用变量包含表示访问对象的方式的位。

它不保存对象本身,但它保存诸如指针或地址之类的东西。

我正在阅读 Head-First Java(第 2 版)这本书,书中写道(第 3 章,第 54 页)

In Java we don't really know what is inside a reference variable. We do know that whatever it is, it represents one and only one object. And the JVM knows how to use the reference to get to the object. -

我想问:

  • 对象引用变量是否包含指针、地址或其他内容?
  • JVM 如何解释它?

最佳答案

完全由 JVM 决定引用中的内容。

在最简单的情况下,它只是一个指针(即地址)。在更复杂的情况下,VM 可能会根据情况使用不同的表示 - 例如,您可能想阅读有关 "Compressed oops in HotSpot" 的论文了解 HotSpot VM 在作为 64 位 VM 运行时如何避免在某些(但不是全部)位置加倍引用大小。

重要的是你既不应该知道也不应该关心。就您作为程序员而言,它只是一组不透明的位 - 它的唯一目的是让您到达有问题的对象(或识别空引用)。

关于java - Java 中的引用变量里面有什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3447878/

相关文章:

java - HyperSQL - 意外标记开启

java - hibernate 保存关联

Java Applet、Internet Explorer 和 Fiddler

c++ - 找不到标识符怎么办?有人可以解释吗?

Java减少内存使用

performance - JVM 调优以获得更好的 Solr 性能

java - 执行 JAR 文件时出错

java - 如果未找到元素则继续,如果找到则保存它

batch-file - 如何仅在命令是单行文本时获取命令的输出?

php - 在 PHP 中使用 JS 变量