将'new'放入put方法或使用中间变量是否更有效?

时间:2014-02-16 21:10:59

标签: 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")));

2 个答案:

答案 0 :(得分:1)

这是完全相同的。 Java对象通过引用传递,您在两种情况下都创建了完全相同数量的对象。

答案 1 :(得分:1)

两者完全相同。运行时

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

您在内存中创建一个对象,并返回对它的引用。是否在将foo传递给HashMap之前将其暂时存储在{{1}}之内并没有真正产生影响(即使它会这样做,也会优化掉)。