2
在類LOCALDATE的源代碼,我看到的是,私有實例變量的月和日是短褲,而不是整數。LOCALDATE的私有變量的月和日短數據類型
This is the Docs of the LocalDate class.
**的源代碼**
private final int year;
private final short month;
private final short day;
private LocalDate(int year, int month, int dayOfMonth) {
this.year = year;
this.month = (short) month;
this.day = (short) dayOfMonth;
}
public int getDayOfYear() {
return getMonth().firstDayOfYear(isLeapYear()) + day - 1;
}
public int getMonthValue() {
return month;
}
public int getDayOfMonth() {
return day;
}
,你可以在旁邊的變量看themselve,int數據類型用於月,日的一個簡短的一部分。那爲什麼把它縮短呢?
爲什麼不呢?
private final short year;
private final byte month;
private final byte day;
這也是我的想法,但他們爲什麼不通過將年份,字節月,短日期縮短來節省更多空間? –
可能是一個設計考慮因素,即對低級設備進行編程時,字大小將爲16位(對於非常低級別的嵌入式設備也可能爲8位)。對於大多數計算機來說,它是32位字的大小。即使它短暫,我認爲操作是在32位,即。寄存器將是32位大小,總線將是32位,尋址將是32位字。 所以在計算機的情況下,除了短陣外,我們不會獲得內存優勢。 –