gpt4 book ai didi

java - 日历卡住 - 为什么?

转载 作者:行者123 更新时间:2023-12-01 15:32:08 30 4
gpt4 key购买 nike

作为实验,我运行了以下代码 fragment (简化):

public class SGamePlay extends Activity implements View.OnClickListener
{
Calendar GlobalCal = null;

public void onCreate(Bundle savedInstanceState)
{
GlobalCal = Calendar.getInstance();
}

long time_in_ms()
{
long ans = -1;
long ans2 = -1;

Calendar LocalCal = Calendar.getInstance();

ans = LocalCal.getTimeInMillis();

ans2 = GlobalCal.getTimeInMillis();

Log.e("game","ans="+ans+" ans2="+ans2);

return ans;
}
// much more code here...
}

time_in_ms() 函数是从子线程调用的。问题是,虽然 ans 看起来是一个正确的、不断更新的值,但 ans2 似乎卡住在其初始值。怎么会这样?

编辑:我需要解决此问题,因为我想减少程序中垃圾收集的需要。

最佳答案

Calendar 被视为日历中的“标记”。它更像是一个时间点,而不是当前时间的界面。 (为什么它会有设置功能?)

所以,ans2“卡住”的原因是因为GlobalCal.getTimeInMillis();将始终引用您调用Calendar.getInstance时的时间() 在构造函数中(您曾经做过一次)。

I need to resolve this issue because I want to reduce the need for garbage collection in my program.

垃圾收集是你的程序的瓶颈吗? Calendars 的数量是 GC 的瓶颈吗?您对您的程序进行了概要分析吗?

没关系...改为调用System.currentTimeMillis

关于java - 日历卡住 - 为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9444224/

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