Date()构造函数如何返回值

时间:2013-05-23 14:02:52

标签: java date constructor

当我呼叫System.out.println(new Date());时,我没有在类Date中调用构造函数?如果我错了,请纠正我。那么在这种情况下它是如何返回价值的呢?

4 个答案:

答案 0 :(得分:3)

它打印一个值,因为您隐式调用新构造的toString对象的Date方法。

这相当于以下内容:

Date date = new Date();  
System.out.println(date);

答案 1 :(得分:2)

当然,您正在调用Date构造函数。每次使用“new”运算符时,都会调用构造函数。您只是不存储对新创建的对象的引用,因此它很快就会被收集。 那么会发生什么:

  1. 日期构造函数被称为
  2. 将Date的实例传递给采用Object参数
  3. 的println方法
  4. println方法在日期调用toString()方法并获取字符串 表示;打印它
  5. 方法返回,日期实例被收集(最终)

答案 2 :(得分:1)

如上所述,您确实在调用Date()类的构造函数,并隐式调用其toString()方法。如果你想知道做什么,你会想看看here

构造函数通过引用sun.util.calendar.CalendarDate中可用的方法,以longtoString()解析系统时间,以毫秒(通常在几十毫秒内,显然)抓取系统时间。然后生成一个StringBuilder对象,最终返回给你。

因此,当您调用Date()对象的构造函数(并隐式调用其toString()方法)时,会有更多的事情发生。如果您的动机是构建自己的日期解析器,则可以查看所涉及的类的源代码以获得指导,或者您只需调用这些类并让它们完成工作。

答案 3 :(得分:0)

new Date()是一个构造函数调用的表达式。

这种表达式的结果保证是新构造的对象。 (或例外)