Java 将';新';在put方法中,还是使用中间变量?

Java 将';新';在put方法中,还是使用中间变量?,java,data-structures,hashmap,Java,Data Structures,Hashmap,以下哪种添加到HashMap的方法更有效(考虑时间和空间效率) 方式1: Music foo = new Music(Files.getMusic("bar/bold.mp3")); HashMap.put("rock", foo); 方式2: HashMap.put("rock", new Music(Files.getMusic("bar/bold.mp3"))); 这是相同的。 Java对象是通过引用传递的,在这两种情况下创建的对象数量完全相同。两者都是完全相同的。跑步时 new Mu

以下哪种添加到HashMap的方法更有效(考虑时间和空间效率)

方式1:

Music foo = new Music(Files.getMusic("bar/bold.mp3"));
HashMap.put("rock", foo);
方式2:

HashMap.put("rock", new Music(Files.getMusic("bar/bold.mp3")));
这是相同的。
Java对象是通过引用传递的,在这两种情况下创建的对象数量完全相同。

两者都是完全相同的。跑步时

new Music(Files.getMusic("bar/bold.mp3"));

在内存中创建一个对象,并返回对该对象的引用。在将该引用传递给
HashMap
之前,是否将其临时存储在
foo
中,实际上并没有什么区别(即使会,这也会被优化掉)。

相同。本地“临时”变量在Java中基本上是“自由”的。因此,首选第一个序列,因为它更易于阅读和理解。感谢您的解释:)将在10分钟内被接受。修复“通过引用”,我将删除我的否决票。我将保留我的个人意见,但是。