单个引用变量如何访问所有对象字段?

Bon*_*eak 4 java jvm

Animal myAnimal = new Animal();
Run Code Online (Sandbox Code Playgroud)

我上面有这个代码.据我所知,它会做这些事情:

  1. 将在堆内存上创建动物对象
  2. 对该对象的引用将传递给引用变量"myAnimal".换句话说,"myAnimal"变量保存堆上"Animal"对象的内存地址.

我不明白的是

  1. 内存地址值如何?
  2. 是一个地址还是众多地址值?如果只有一个,myAnimal如何访问Animal对象的所有对象字段,如myAnimal.name,myAnimal.height,...?

有人能解释一下吗?提前致谢.

Wim*_*ers 6

这是一个过于简单化:

  1. 它只是一个代表某个地址位置的数字; 这个数字有多大取决于您的计算机架构(32位或64位)

  2. 这是一个地址值; 它是内存中对象表示开始的地方的地址位置.

您可以将它与您房屋的地址进行比较.它有一个地址.您家(场)中的所有房间都有不同的位置,但您必须通过前门("开始"位置)进入.房间位置与前门相关.我承认这个例子有点做作,但你明白了......