gpt4 book ai didi

java - 销毁日期对象

转载 作者:行者123 更新时间:2023-12-01 20:15:02 25 4
gpt4 key购买 nike

我需要一些关于此代码的建议:

Thread myClock = new Thread() {
@Override
public void run() {
try {
while (!isInterrupted()) {
Thread.sleep(1000);
runOnUiThread(new Runnable() {
@Override
public void run() {
Date dt = new Date();
SimpleDateFormat myClockDate = new SimpleDateFormat("EEE, dd MMM yyyy");
SimpleDateFormat myClockTime = new SimpleDateFormat("hh:mm aa");
myClock_date.setText("Date: " + myClockDate.format(dt));
myClock_time.setText("Time: " + (myClockTime.format(dt)).replace(".", ""));
}
});
}
} catch (InterruptedException e) {

}
}
};

它运行良好,但当线程运行时,内存监视器显示使用量的持续上升和下降。当它不运行时,显示器会呈平线。

我想知道是否是日期对象的连续创建导致了这种情况?是否需要销毁或释放?

PS:GPU监视器已被禁用。

最佳答案

您的代码每秒都会创建一个 Runnable、一个 Date 和两个 DateFormat 对象。此外,字符串操作可能会创建一些对象。一旦 Runnable 完成,它们就会被释放(Runnable 之外的任何东西都没有对它们中的任何一个的引用)并且有资格进行垃圾收集。您不需要做任何进一步的事情来释放他们的内存。在每个 Runnables 完成后,您应该会看到内存使用量恢复到相同的水平。

垃圾收集不会立即进行。只要你没有看到持续的上升趋势就可以了。

关于java - 销毁日期对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46023894/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com