如何在java的堆空间中创建对象具有全局访问权限?

时间:2018-04-24 21:09:31

标签: java object global heap-memory

在线课程和其他网站反复说,在堆空间中创建的对象具有全局访问权限。这种全局访问是否意味着在被垃圾收集器销毁之前,该对象可以从程序中的任何位置进行访问?如果是这样,请同时添加一个显示此内容的简短代码。

来源:

  1. 课程:YouTube
  2. "在堆空间中创建的任何对象都具有全局访问权限,可以从应用程序的任何位置引用。" JournalDev

1 个答案:

答案 0 :(得分:2)

这仅仅意味着实际驻留在 空间中的对象可以被任何线程从程序中的任何位置访问。也就是说,如果给定的线程知道对象在堆空间中的位置。

然后有堆栈 内存,出于所有实际目的,您可以考虑使用本地内存作为方法。对堆中的对象的引用和原始值存储在堆栈存储器中。如果线程A创建对对象OBJ的引用,则另一个线程B不能访问此引用,除非线程A与B共享(复制)它。

但是,线程B也可以创建它自己对该对象的本地引用。

这是一个过于简单的答案,但正确的答案不适合Stack Overflow论坛格式。幸运的是,有很多资源可以非常详细地介绍java内存模型。

因此,请阅读本教程,我不认为它可以比这里解释得更好: memory model