所有項目

2011年5月31日 星期二

5月22號上課,243~260。

範圍:No.243 ~ No.260
No.243(拖拉題)

No.244(拖拉題)


No.245
        實際執行排序的方法包括Arrays.sortCollnections.sort,兩者都是static method,將該物件陣列及實作Comparator介面的物件傳入後,即可排序(不用回傳值)
這題目是將 TreeSet來排序,TreeSet的功能是按照字母的大小來排序的。所以會印出”Coffee” , ”Tea”,但裡面有compareTo return 0(相等的意思)。所以就列印出 Coffee

No.246(拖拉題)

No.247(拖拉題)

No.248
      這題目是考DateFormat日期轉換的方法。使用parse轉換就會有try catch 來執行parseException。所以只剩下C,D。但ParseExceptionparse才會正確。

No.249
      這題目很簡單吧!不須多說明,就是字串後至遞增相加,420+42=42042

No.250
        這題目答案是D(13行錯),因為iInteger 但陣列是字串的放入就會有出錯。還沒有執行在Eclipse上就會出現錯誤了,所以是compilation fails

No.251(拖拉題)

No.252
        這題是說 java.io.BufferedWriter java.io.FileWriter 兩個中,哪一個會有存在能力。我對這題的理解能力不夠,所以我了解的地方跟大家分享。Closing是有flushing的功能,flushing是清空緩衝區,D:有串流中定位。答案是E

No.253
       

No.254
        這題目是序列化(serializable介面)。正確答案是D
import java.io.*;
@SuppressWarnings("serial")
public class Forest implements Serializable{
    private Tree tree = new Tree();
    public static void main(String []args){
        Forest f = new Forest();
        try{
            FileOutputStream fs = new FileOutputStream("Forest.ser");
            ObjectOutputStream os = new ObjectOutputStream(fs);
            os.writeObject(f);
            os.close();
        }catch(Exception ex){
            ex.printStackTrace();
        }
    }

}
class Tree{}


自行跑會有出錯  但不知原因

No.255
        這題考套件。這個會有 runtime exception 原因是 12行說 csv是字串,第13行時 csv丟到 scanner裡面,到15行時 scanner.nextlnt() 丟到 age,問題就來了 一直都是 String 到第15 就轉成 int。當然會出錯了。

No.256
        我們就從main開始看囉!建議一個物件,就會呼叫16行,因為會有隱藏的super()16行就會呼叫14行,就會印出12,所以答案會有C,D,E,接下來才是真正的精采:現在可以看到serializable(序列化)只有Fruit另一個Food卻沒有。這裡面b.size就會將17行的42給印出。所以答案會是:12restored42
import java.io.*;
class Food {Food(){System.out.print("1");}}
class Fruit extends Food implements Serializable{
    private static final long serialVersionUID = 1L;

    Fruit(){
        System.out.print("2");
    }
}
public class Banana2 extends Fruit{
    private static final long serialVersionUID = 1L;
    int size = 42;
    public static void main(String [] args){
        Banana2 b = new Banana2();
        b.serializeBanana2(b);
        b = b.deserializeBanana2(b);
        System.out.println("restored " + b.size+" ");
    }
   
}
eclipse跑會出現問題 有人可以解答請告訴我

No.257
        這題目就很快就可以解說了,在java裡面 // 表示→ / 這個東西叫做是(Java Regular Expression)詳細的資料可以到(http://www.javaworld.com.tw/jute/post/view?bid=20&id=130126&sty=1&tpg=1&age=0),所以/d表示切除數字,/D這是大的D就會被切除字母,順帶如果 只有一個”/”就會出錯喔!必定為兩個/

No.258
        這題就簡單了吧!在256題就已經講過了,預設都會有SUPER來呼叫父類別,所以印出123
No.259
        這題目出錯的原因是在 5行的static的關西,答案是說Aclass就會出錯就是因為:return counter++ static non-static時就會出錯了。
No.260
        這題目是考interface的基本宣告方法。A:介面可以繼承(正確無誤)B:interface B implement A(正確應該是 interface B interface A )C:BA的某一個。

以下是補概念的網頁

沒有留言:

張貼留言