昨天我接受了两个小时的技术电话采访(我通过了,哇喔!),但我完全消除了关于Java中动态绑定的以下问题.这让我感到非常困惑,因为几年前,当我还是TA时,我曾经向大学生传授这个概念,所以我给他们错误信息的前景有点令人不安......
这是我给出的问题:
/* What is the output of the following program? */
public class Test {
public boolean equals( Test other ) {
System.out.println( "Inside of Test.equals" );
return false;
}
public static void main( String [] args ) {
Object t1 = new Test();
Object t2 = new Test();
Test t3 = new Test();
Object o1 = new Object();
int count = 0;
System.out.println( count++ );// prints 0
t1.equals( t2 ) ;
System.out.println( count++ );// prints 1
t1.equals( t3 …Run Code Online (Sandbox Code Playgroud) 我正在从Oracle数据库中提取日期.它们设置在java.util.Date字段上,它们实际上是java.sql.Timestamp实例(它是Java.util.Date的子类).如果我通过在第一个日期调用after()并将它与第二个日期进行比较来比较两个不同数据库记录中的两个时间戳,那么当日期的所有部分除了毫秒之外的所有部分都相同时,我得到错误的答案.
所有以下内容都应该导致"true",但第二组数字不会:
firstDate = 1/1/2000 12:00:20:00
secondDate = 1/1/2000 12:00:10:00
result = firstDate.after(secondDate);
result is TRUE <-- EXPECTED RESULT
firstDate = 1/1/2000 12:00:00:10
secondDate = 1/1/2000 12:00:00:00
result = firstDate.after(secondDate);
result is FALSE <-- NOT EXPECTED, result should be TRUE
Run Code Online (Sandbox Code Playgroud)
我知道nanos与Timestamp类中的Date实例分开存储,我很好奇这是否是问题.