未使用的返回值会发生什么?

Tha*_*Guy 4 java garbage-collection return-value

首先,我确实调查了这个.我在这里找到了同样的问题,但是关于C++:未使用的函数返回值会发生什么?

我的兴趣在于Java(尽管这个帖子确实很有趣).

普遍的共识是,没有任何事情真的发生,如果有什么事情被后来覆盖.java的那个线程有什么不同吗?

(链接将被欣赏,因为我可以想象可能会发生什么,但想要一些证据和细节.而且我正在寻找更深入然后"它没有设置为变量")

Ren*_*neS 9

编译器发现它没有被使用,只是将(返回)堆栈上的值保留为未分配,即删除它.如果您指定它但不使用它,它将一直存在,直到此引用不再使用.

请参阅附带的屏幕截图 Eclipse和字节码插件.

在L0下,您可以看到存储了concat调用的返回值(ASTORE 1).在L1中的相同调用(在Java中未被使用或分配)仅使用POP进行处理,它也被从堆栈中移除并消失.

返回处理的字节码

希望有所帮助.