首页 > 解决方案 > 哪一个更快/更好/内存效率更高?

问题描述

我有一些由其他人编写的旧软件,我正在研究。我经常看到类似于这个例子的代码,我认为这不是最好的方法:

public Map<String, Sheet> getCalcedSheets() {
   Sheet mySheet = this.doSomeBigCalculationsAndGiveMeMySheet();
   return mySheet;
}

最好不要初始化类表的实例,只返回方法给你的东西吗?像这样:

public Map<String, Sheet> getCalcedSheets() throws Exception {
    return this.doSomeBigCalculationsAndGiveMeMySheet();;
}

我认为这对 CPU 更友好,因为不会初始化 Sheet 的实例。而且 mySheet 在创建后不会立即被垃圾收集。

你怎么看?

标签: javaperformancememory

解决方案


mySheet 对象是从堆栈到真实对象的引用。这意味着,当堆栈完成时(函数结束),指针将不再存在(垃圾收集器不会清理堆栈 - 仅堆内存)


推荐阅读