【发布时间】:2012-12-23 00:02:05
【问题描述】:
最近一位开发者向我提出了这个问题,但无法提供答案...
在 Java 中,如何/何时处理变量?是吗?
假设我们有一个每秒被调用 50-75 次的 run() 方法(非常简化的示例)...
public void run() {
long lastTime = System.nanoTime();
double unprocessed = 0;
int ticks = 0;
int frames = 0;
double nsPerTick = 1000000000.0 / 60.0;
long now = System.nanoTime();
unprocessed += (now - lastTime) / nsPerTick;
lastTime = now;
ticks++;
tick();
unprocessed -= 1;
}
将这些变量(lastTime、unprocessed、ticks 等)带入更高级别的范围是否会使程序运行得更好/更有效 - 使其不会被每秒创建和使用多次?
【问题讨论】:
-
This 可能会有所帮助
-
变量不会被处理掉。它们具有定义的“范围”,并在退出范围时消失。 (另一方面,对象会被垃圾回收。)
标签: java performance memory