java - 哪一个更快/更好/内存效率更高?
问题描述
我有一些由其他人编写的旧软件,我正在研究。我经常看到类似于这个例子的代码,我认为这不是最好的方法:
public Map<String, Sheet> getCalcedSheets() {
Sheet mySheet = this.doSomeBigCalculationsAndGiveMeMySheet();
return mySheet;
}
最好不要初始化类表的实例,只返回方法给你的东西吗?像这样:
public Map<String, Sheet> getCalcedSheets() throws Exception {
return this.doSomeBigCalculationsAndGiveMeMySheet();;
}
我认为这对 CPU 更友好,因为不会初始化 Sheet 的实例。而且 mySheet 在创建后不会立即被垃圾收集。
你怎么看?
解决方案
mySheet 对象是从堆栈到真实对象的引用。这意味着,当堆栈完成时(函数结束),指针将不再存在(垃圾收集器不会清理堆栈 - 仅堆内存)
推荐阅读
- swift - SwiftUI 如何获取动态颜色?
- pyspark - 将镶木地板转换为 json 以进行 dynamodb 导入
- .htaccess - 如何使用 .htaccess 重定向(重定向,而不是重写)
- sql - 从 QlikView 到 SQL 的 ODBC 在*第一次尝试时失败*
- windows-10 - 如何修复“0”不被识别为内部或外部命令可运行程序或批处理文件
- javascript - 添加两个持续时间值
- java - 如何在 selenium web 驱动程序中聚焦对象?
- python - 是否有一种优雅的方法可以在 Python 中调用同一对象的方法列表?
- java - Spring Data JPA中关系@ManyToMany的查询方法
- java - 如何在 SonarCloud 上解决此问题?