
4个回答
展开全部
public class my {
public static void main(String[] args){
for(int i=0;i<100;i++){
long time=System.currentTimeMillis();
System.out.println(time);
}
}
}
刚试了一下,连续执行100次,取得的时间都是一样的,因为你取得的系统时间最小单位是毫秒,也就是在1毫秒以内做的动作,系统都会认为是同一时间点发生的,也就是时间是相等的。而java虚拟机的执行速度是极快的,它在1毫秒内执行了100次的取得系统时间,所以取得的时间是一样的。当然你如果不是连续取得系统时间,而是在1毫秒以外取得,那取得的系统时间就自然不一样了。希望对你有所帮助。
public static void main(String[] args){
for(int i=0;i<100;i++){
long time=System.currentTimeMillis();
System.out.println(time);
}
}
}
刚试了一下,连续执行100次,取得的时间都是一样的,因为你取得的系统时间最小单位是毫秒,也就是在1毫秒以内做的动作,系统都会认为是同一时间点发生的,也就是时间是相等的。而java虚拟机的执行速度是极快的,它在1毫秒内执行了100次的取得系统时间,所以取得的时间是一样的。当然你如果不是连续取得系统时间,而是在1毫秒以外取得,那取得的系统时间就自然不一样了。希望对你有所帮助。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不会一样,你可以用Calendar.getInstance().getTime().getTime(),这样返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。2次调用不会相同的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
楼上两位都说不可能一样,我刚才试了一下,输出的2次毫秒数是一模一样的,程序执行时间是很微小的时间段,几乎可以忽略
追问
程序不是连续2次调用获取时间的方法。但是同一个方法可能由不同线程来调用,加上线程转换的时间,不知道还会不会一样
追答
多线程肯定不一样了,因为多线程实际上是多个线程之间轮流执行的,就是将一个时间段分成若干个时间片,每个线程只运行一个时间片,那么取得到的毫秒数就不一样了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
只要你不是两个时间连着获取(几乎忽略了程序执行时间)是不会一样的,因为时间的毫秒数永远都是从1970年1月1日开始算起,所以你每次获取这个值都会变大,就算你改了系统时间出现同样的几率比中500万都小
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询