日期:2014-05-20  浏览次数:20649 次

昨天无聊试了下DATE方式的比较值,发现个奇怪的问题
public class Test {
public static void main(String[] args) {
Date date=new Date();
System.out.println(date.getTime());
Date date2=new Date();
System.out.println(date2.getTime());
boolean a=true;
if(date.equals(date2)){
a=true;

}else{
a=false;
}
System.out.println(a);
}
}
这样返回的是true
public class Test {
public static void main(String[] args) {
Date date=new Date();
System.out.println(date);
Date date2=new Date();
System.out.println(date2);
boolean a=true;
if(date.equals(date2)){
a=true;

}else{
a=false;
}
System.out.println(a);
}
}
这样返回的是false
...难道在System.out.println里改变了一下值也会影响到if里的判断么?

------解决方案--------------------
那和你机器有关,要是机器在运行到System.out.println(date); 的时候刚好卡了一下,导致date和date2不一样,那打印当然是false了。
在我机器上一直都是true