1. 程式人生 > >Java開發筆記(四)Java帝國的度量衡

Java開發筆記(四)Java帝國的度量衡

時間 我們 true 都是 不難 class 右鍵菜單 imp 既然

秦始皇統一中國之後,實行“書同文,車同軌”,把貨幣和各種度量衡都統一起來,從而締造了一個秩序井然的帝國。既然統一度量衡是每個帝國都要做的事情,Java帝國也不例外,對於人生地不熟的初學者來說,只有認識了Java帝國的各種度量衡,才能更好地入鄉隨俗。

Java帝國的人名稱呼
若想在一個國家與當地人溝通交流,首先要理解當地的語言以及對人的稱呼。在計算機世界裏,Java帝國的編程語言主要采用英文字母書寫,另外包括阿拉伯數字與半角的標點符號。至於各種實體的名稱,則基本遵守以下的命名規範(非強制性,建議遵守):
1、工作空間workspace的名稱:由英文字母、數字與下劃線組成,工作空間名稱建議用字母開頭。
2、項目Project的名稱:由英文字母、數字與下劃線組成,項目名稱建議用大寫字母開頭。
3、包package的名稱:各層級的名稱用點號分隔,每個層級的名稱建議采用小寫字母書寫。
4、Class的名稱:建議由字母和數字組成,並且用大寫字母開頭。這很好理解,堂堂一座城池的大名當然開頭要大寫。
5、方法的名稱:建議由字母、數字和下劃線組成,並且用小寫字母開頭。
6、變量(其值允許修改)的名稱:建議由字母、數字和下劃線組成,並且用小寫字母開頭。
7、常量(其值不允許修改)的名稱:建議由字母、數字和下劃線組成,用大寫字母開頭並且裏面的字母全為大寫。
此外,代碼的格式與對齊也很重要,規範的代碼排版看起來使人舒服,也能提高編碼效率。當然這種排版工作無需開發者在編碼時特別關註,可以在敲完一段代碼後,再命令Eclipse自動進行代碼格式化動作。這個代碼格式化操作有以下幾個途徑可以完成:
1、依次選擇頂部菜單欄的“Source”→“Format”,即可對選中代碼自動格式化。
2、在主界面左側項目結構中右擊某個package,並依次選擇右鍵菜單的“Source”→“Format”,即可對該包下的所有代碼進行格式化。
3、在代碼文件內部右擊,並依次選擇右鍵菜單的“Source”→“Format”,即可格式化該代碼文件。

Java帝國的記數方式
數字的進制是又一個重要的度量衡,由於人類的雙手一共有十根手指,因此大部分文明的數制都是十進制,只有少量文明是例外,比如巴比倫文明的楔形數字為60進制,而瑪雅文明則為20進制。計算機行業的半導體,在接通狀態時表示1,在斷開狀態時表示0,故而計算機的數制采取二進制。顯然二進制的數字不易為常人所理解,於是編程語言通常會再引入十進制、十六進制乃至八進制的數制表達。Java語言固然也不例外,話雖如此,但又如何證明Java帝國的基礎數制是二進制呢?
接下來我們使用Java代碼做個實驗,看看Java代碼的基礎數制究竟為何?為開展該實驗,會用到一種位運算符,位運算符主要包括兩個操作,其一為左移操作符“<<”,其二為右移操作符,所謂左移右移,就是把數字高位移動還是往低位移動。譬如說數字80,把它左移一位,則表示將該數字整體向高位挪動一格,末位空的地方補0,於是數字80左移一位就變成了800。如若把數字80右移一位,則表示將該數字整體向低位挪動一格,挪走的末位直接略去,於是數字80右移一位就變成了8。上面說的數字80左移一位變800、右移一位變8,其實是基於十進制數字的前提,倘若原始數字的基礎數制並非十進制,那麽左移和右移的結果將迥然不同。
現在有個十進制的數字8,換算成二進制數則為00001000。如果Java的基礎數制為十進制,數字8左移一位的結果就是80;如果Java的基礎數制為二進制,00001000左移一位的結果就是00010000,移動後的二進制數換算成十進制則為16。這樣的話,數制實驗只需觀察左移和右移後的結果數字,即可驗證當前環境采用的是哪一種基礎數制。下面的測試代碼便是檢驗左移與右移結果的例子:

public class Number {

	public static void main(String[] args) {
		int x = 8; // 8對應的二進制數為00001000
		int y = x << 2; // 00001000左移兩位後變成00100000,左移結果轉成十進制則為32
		int z = x >> 2; // 00001000右移兩位後變成00000010,右移結果轉成十進制則為2
		System.out.println("原始數字x="+x);
		System.out.println("x左移兩位後="+y);
		System.out.println("x右移兩位後="+z);
	}
}

右擊該代碼,並依次選擇右鍵菜單的“Run As”→“Java Application”,命令執行Number程序,主界面下方Console窗口的日誌輸出情況如下圖所示。

技術分享圖片

可見數字8左移兩位後的結果是32,右移兩位後的結果是2,從而印證了二進制是Java帝國基礎數制的說法。

Java帝國的紀年開端
一個帝國除了制定響亮的國號,還要更換年號,以便社會生活通過紀年表達時間的先後順序。例如,現代社會采用的公元紀年,是以耶穌誕生之年作為紀年的開始;而東漢末年常見的建安年號,則以曹操劫持漢獻帝到許昌為開端(也就是著名的“挾天子以令諸侯”),像官渡之戰發生於建安五年,赤壁之戰發生於建安十三年。那麽Java作為美國人發明的編程語言,它是否也采用西方通行的公元紀年呢?
要想獲取Java帝國的紀年倒也不難,只要引入系統日期庫中的Date工具就能實現。Date工具提供了一個getYear方法,利用該方法即可得知指定日期的年份是什麽。因而檢驗Java的紀年方式可分解為以下兩個步驟:
1、獲取當前日期。
2、根據當前日期調用getYear方法得到當前年份。
根據上述兩個驗證步驟,下面的測試代碼給出了具體的演示例子:

import java.util.Date; // 引入系統庫中的Date工具

public class Year {

	public static void main(String[] args) {
		// 創建一個當前日期時間的實例
		Date date = new Date();
		// 從當前日期中獲取當前年份
		int year = date.getYear();
		System.out.println("year="+year);
	}
}

右擊該代碼,並依次選擇右鍵菜單的“Run As”→“Java Application”,命令執行Year程序,此時Console窗口的日誌如下圖所示。

技術分享圖片

觀察輸出的日誌結果為“year=118”,並非當前時間的公元紀年2018,這個2018減去118等於1900,原來Java帝國是以公元1900年為開端的呀。由此可見,編程世界自有一套規矩方圓,初學者得小心謹慎,切不可自以為然。

Java開發筆記(四)Java帝國的度量衡