java参数传递时,究竟传递的是什么

  请问java参数传递时,究竟传递的是什么?
   一直看到的答案都是参数传递时,如果是基本数据类型  那传递的就是值。如果是对象 数组等类型传递的就是地址。
   大概类似与这种:图片来源
在这里插入图片描述
在这里插入图片描述
  那为什么一会是值一会是地址,又或是看起来是地址呢???
  大胆猜测一下,对象和基本数据类型在栈中的存储是一样的。
  一个基本数据类型在栈中存有名字、名字对应的地址、值;
  一个对象在栈中存有对象名、对象名对应的地址、值(堆中地址)
所以,参数传递时,传递的都是值。 有点类似于操作系统的直接和间接寻址? 以上是我的想法,欢迎路过的各位指正。