自學Java之三(Java API documentation的結構)



我們學習一門語言,要從基礎的結構開始。這樣有利於快速掌握基礎的編程,包括數據結構與算法、整數浮點數計算和字符串處理等等。

Java和C語言的思想類似之處是,利用庫來擴展功能特性,而不是使用語言本身。這一點是和某些其他語言,包括BASIC和ABAP很不一樣的地方。BASIC和ABAP內置了很多功能,比如BASIC有許多語句純粹是爲了在DOS裏面畫圖形、Visual Basic裏面有許多語句是爲了訪問數據庫而設計的。ABAP裏面有許多對於internal table的操作語句和訪問數據庫用的OpenSQL。而這些都不是通過庫的形式來實現的。

Java、C、C++、C#則不通過語言內置的語句或命令來實現這些功能。它們通過庫來實現這些功能。以C#爲例,它的SQL數據庫訪問是封裝在System.Data.SqlClient這個名字空間裏面的。C# 3.0裏面新增了Linq的語言語法特性,但它的實現則是在庫裏,因此不僅僅可以在SQL數據庫上用Linq,在其他種類的數據庫上,甚至用戶自定義的容器類上都可以用Linq。

因此,許多不在語言裏實現的東西,就需要通過庫來實現。java.lang這個包正是包含了許多補充性的基礎對象或數據結構。

那麼在java.lang裏面包含了哪些東西呢?我們細細來看。

裏面有許多基礎類型。還有一些異常和錯誤類。

整數類型:BigInteger(任意長度整型)、Long(64位整型)、Integer(32位整型)、Short(16位整型)、Byte(8位整型)。在C#中對應:System.Numerics.BigInteger(C# 4.0或更高)、Int64、Int32、Int16、SByte。注意,Java中的Byte是有符號8位整型。也就是說,Java中的所有這些整數類型都是有符號的。C#中則有相對應的無符號類型:UInt64、UInt32、UInt16、Byte。

還有一點需要注意:new Byte(-1)將會導致語法錯誤。原因是-1是一個int,它無法被隱式轉換爲byte。所以必須寫成new Byte((byte)-1)。甚至兩個byte值相加都會是一個int,比如:

</pre><pre class="java" name="code">byte b1 = 127;
byte b2 = 1;
return new Byte(b1 + b2);

這段代碼的第三句同樣會有語法錯誤。注意,以上例子故意讓這個byte值溢出了。這裏要說一下,Java對於整型溢出是不處理的。就算是int也是如此。比如下面的代碼運行時不會拋出異常,而是讓整型值迴繞:

int i1 = 2147483647; // 2 ^ 31 - 1
int i2 = 1;
return i1 + i2; // -2147483648 = -(2 ^ 31)

而在C#裏面,則有一個編譯開關,默認是關閉的,但打開以後就會檢查所有整數溢出情況:/checked。一旦發生整數溢出,System.OverflowException將會被拋出。這是相對Java來說C#獨特的一個功能。

字符及字符串類型:Char(16位;因爲Java採用UTF-16來表達字符串的緣故)、String。

浮點類型:Double和Float。

十進制類型:BigDecimal(任意長度十進制)。在C#中沒有準確對應,但有Decimal結構體,可以精確表達29位長的十進制小數。也許用於處理財務數據比較方便。

Java中的Integer類,主要的用途是把整數這樣的基本類型包裝成一個對象。比如說,new Integer(1)這樣,就把一個值爲1的整數包裝成了對象。反過來,對於一個Integer對象,調用它的intValue()方法就得到了它的整數值。這在C#裏面則全部是隱式完成的。在C#裏這叫做裝箱與拆箱(boxing和unboxing)。當你需要把一個整數包裝成一個Object時,直接對它做類型轉換(或隱式類型轉換)就行:object o = 1。反方向做一下顯式類型轉換就行,如(int)o。

Integer類也有toString()方法,用來把整數轉換成它對應的字符串表示。在C#中對應的方法叫ToString()。反過來從字符串轉換到整數的方法叫decode()。C#中叫Parse()。

Integer類有標準的compareTo()、equals()和hashCode()方法。C#中也有對應的叫CompareTo()、Equals()和GetHashCode()方法。C#中的GetHashCode命名更加規範一些,用動詞Get開頭。

發佈了112 篇原創文章 · 獲贊 10 · 訪問量 21萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章