Java 以下代码之间的区别是什么

Java 以下代码之间的区别是什么,java,Java,我是Java新手。我有一些基本的疑问。请有人给我澄清一下,这样我就可以提高我的java技能,并能在这个论坛上帮助其他人 我有两行代码。我只想知道这两行代码之间的区别 1)Date sbmEndDate = new Date(getSystemDateTime().getYear(), mnth, 1); 及 我的问题是:在第一行我们使用了新的关键字,但在第二行我们没有使用任何关键字。有什么区别,请有人告诉我两者的重要性。您使用new是为了创建新实例,也称为日期类的对象 并且cmSbmQuery

我是Java新手。我有一些基本的疑问。请有人给我澄清一下,这样我就可以提高我的java技能,并能在这个论坛上帮助其他人

我有两行代码。我只想知道这两行代码之间的区别

1)Date sbmEndDate = new Date(getSystemDateTime().getYear(), mnth, 1);

我的问题是:在第一行我们使用了新的关键字,但在第二行我们没有使用任何关键字。有什么区别,请有人告诉我两者的重要性。

您使用new是为了创建新实例,也称为日期类的对象

并且cmSbmQuery.firstRow将为您提供DateTime类或其超类的实例,因此您不希望在其中使用new关键字

有关更多详细信息,请参阅

上面的代码使用日期构造函数来实例化新的日期对象。此对象被指定给日期变量sbmEndDate

鉴于

DateTime cmSbmbillDttm = (DateTime)cmSbmQuery.firstRow();
这里,我们调用变量cmSbmQuery的第一行成员函数。此函数返回一个对象,该对象的类型只能从上述代码中推断。然后将此对象类型转换为DateTime,然后将其分配给同一类型的变量cmSbmbillDttm

cmSbmQuery.firstRow() 
此行返回DateTime对象,该对象在强制转换后分配给cmSbmbillDttm

第一行我们使用了新的关键字,但在第二行我们没有使用任何关键字

第一行中的1通过调用

新操作符通过为新对象分配内存并返回对该内存的引用来实例化类。新操作符还调用对象构造函数

第二行通过调用cmSbmQuery.firstRow仅返回DateTime对象引用。 这里没有创建新对象,而是返回相同的对象引用

DateTime cmSbmbillDttm = (DateTime)cmSbmQuery.firstRow();
cmSbmQuery.firstRow() 
public Date(int year, int month, int date)