天天看點

你所不知道的java(二)              你所不知道的java

       你所不知道的java

Chapter three:接口與多态

1、 接口自身也包括了資料成員,但他們都被預設為是static或是final,接口隻提供一種形式,而不提供實施的具體細節,其是為了java實作多重繼承而存在的,避免了如同C++一般的多重繼承複雜性;

2、 與抽象類不同的是:接口允許在看起來不相幹的類之間定義共同行為;

3、 Java支援隐性的(自動)類型轉換,也支援顯性的(強制)類型轉換;

4、 除了資料類型的轉換,還有對象類型的轉換,類型轉換的過程稱之為“塑型”;

5、 對象類型的塑型過程比基本資料類型的塑型要複雜很多,其隻能被塑型成:

1) 任何一個父類類型;

2) 對象所屬的類實作的一個接口;

3) 回到他自己原本所在的類;(多次塑型是允許的)

6、 對象塑型的本質:對象塑型其實本質上沒有改變它的類型,而是将其暫時看做更為一般的類型;

7、 在定義構造方法的時候,請遵循以下的原則,盡可能地避免錯誤:

1) 用盡可能少的動作把對象的狀态設定好;

2) 如果可以避免,不要調用任何的方法;

3) 在構造方法内唯一能夠安全調用的是在基類中具有final屬性的那些方法(也适合用于private方法,因為其自動擁有final屬性)。這些方法不能被覆寫,是以不會出現潛在性的問題。

Chapter four:輸入與輸出

1、 java中并沒有标準的輸入和輸出語句,在java中将資訊輸入和輸出過程抽象為輸入流和輸出流;

2、 輸入是指資料流入程式,輸出是指資料從程式流出;

3、 Java中字元使用的都是16—bit的Unicode編碼,每個字元占兩個位元組,即16bit。人們為了解決各個國家和地區使用本地化字元編碼所導緻的種種問題,将全世界所有的符号進行統一編碼得到Unicode編碼,java技術通過Unicode編碼保證了跨越平台的特性;

4、 面向字元的流:Reader類和Writer類;

5、 面向位元組的流:InputStream類和OutputSteam類;

6、 Java中有以下三個标準輸入輸出流:

1) 标準輸入:System.in;

2) 标準輸出:System.out;

3) 标準錯誤輸出:System.err;

Chapter five:對象群體組織與多線程

1、 把資料有次序地排列起來的操作稱之為“排序”,常用的排序算法有:選擇排序、插入排序和交換排序;

2、 多态算法是JDK提供的可重用功能子產品,這些算法都在集合類中,且都為靜态算法:

1) 排序算法sort;

2) 洗牌算法shuffle;

3) 正常資料處理算法:reverse、fill、copy;

4) 查找算法binarySearch;

5) 最值算法max、min;

3、 使用java5所新增的增強型for循環周遊存在着無法在周遊中删除對象的缺點,故應選擇性使用;

4、 在任何時候,具有最高優先級的線程将被排程算法優先選擇而執行;

5、 隻有高優先級的線程結束或是因為某種原因暫停,較低優先級的線程才能開始運作,如果此時有一個比現在正在運作的線程具有更高優先級的線程需要運作,那麼這個高優先級的線程就會立刻被排程算法排程,進而搶占在CPU上的運作權;

6、 Java的線程排程機制并不能保證在任何時候具有最高優先級的線程一定在運作,線程排程機制也可能排程一個優先級相對較低的線程運作;

7、 對于同樣優先級的線程,java線程排程機制采取的排程方式是:随機;

“JDBC與資料庫通路”和“Servlet程式設計”部分由于尚未接觸,不好做過多的闡述,兩期博文所陳列的資訊點都是高度概括的,真正的内容留與個人發掘~

<!--EndFragment-->