2012/11/15

最近諸多的雜務,讓自己又中斷了兩個多月沒有進行 Java基礎的練習

希望能讓技術根基穩固,就應該從基礎仔細鑽研吧

 

覺得有些慶幸,有用Blog將一些基本執行,會碰到的問題記錄下來

讓自己能很快抓回編譯程式、正常執行的感覺

 

ch8.1.2

主要再講Exception有多個架構

Ex InterruptedException , ClassCastExecption , IOException

不同的Exception , 要依照其架構、層級,分別去接收與處理 

而在Java SE7 可以一次判斷多個catch狀況  利用"Multi-cath"的語法進行判讀

 

 

 

2012/11/17

 

ch8   Q1

要拋出   IllegalArgumentException

 

可利用

try {

              if( value > 0) {
                    .... // your code
             }   else {

                      throw new IllegalArgumentException("your message");

                    .... // your code

              } 

} catch (IllegalArgumentException ex) {

              System.out.println("  something  ");

             ex.printStackTrace();   //追蹤在哪丟出exception的

             throw ex;            //若沒throw ex ,   printStackTrace()會看接了幾次exception , 就印出幾次訊息  , 例如:input有5筆 , 其中3筆是小於0的 , 就會印出 三次"something"和 java.lang.IllegalArgumentException: in line XX

}

 

 

2012/11/18

 

p.9-12

在HashSet()内的物件 

1.   若沒有特別規定,會按照輸入的順序排序 

2.   但若有計算hashCode的值 , 則會以hashCode的值為依據排序 , 若hashCode相同 , 再以輸入的順序排列 (?)  實測結果似乎有點不一樣

 

p.9-13

interface Goal {
void execute();
}

public class ReuqestQueue {

public static void main(String[] args) {
Queue myQ = new LinkedList();

for (int i = 1; i < 6; i++)

 {   myQ.offer(new Goal()      // 在 Queue物件中 , 創一個物件Goal , Goal內有一個method execute()

    {
              public void execute() {
              System.out.printf("Test");
              }
    }                   

                     );


}
process(myQ);
}

private static void process(Queue requests) {
while(myQ.peek() != null) {
Goal request = (Goal) myQ.poll();
myQ.execute();
}
}
}

 

p4-17 reveiew

Compiler Sugar

 

比較兩個物件的實際內容值是否相同應該用 equals()  ,而不該用== 或!= 來比較(==或!=是Object reference的比較)

 

 

2012/11/19

p9-31

properties物件 , 例如:

Properties props = new Properties();

props.load(new FileInputStream("myFile.txt"));

 

此時, 若是此java檔(pro.java)歸屬於 package mm.local

資料夾路徑為 c:\ch9\practice\src

而Java檔位於  c:\ch9\practice\src\mm\local\pro.java


在c:\ch9\practice\src下 , 編譯時輸入

step1   javac -encoding UTF-8 mm\local\pro.java

step2   java mm.local.pro

 

要注意的是!!  myFile.txt要放在c:\ch9\practice\src 這個路徑下

除非Java檔沒有設package , 且在編譯時是在c:\ch9\practice\src\mm\local 路徑下執行 , 則 myFile.txt檔才可和pro.java檔放在同目錄下 

(否則Java編譯時會找不到myFile.txt)


p.9-33

public static void main(String[] args) {
Properties props = System.getProperties();
System.out.println(props.getProperty("java.version"));    //此寫法可印出Java Runtime Environment(JRE)的版本
System.out.println(props.getProperty("java.home"));      //此寫法可印出Jvava 安裝的路徑
}


arrow
arrow
    全站熱搜

    Justin258 發表在 痞客邦 留言(0) 人氣()