SCJP 備考心得

九月 3, 2010 by
Filed under: 未分類 

[建議程度]

曾經修過Java課程達一個學期以上者. 基本上不建議花大錢去上補習班的
認證課程班級, 因為如果你沒有底子, 即使30000花下去上30個小時的課程, 還
是不太可能過關, 建議你先練習Java一陣子在自己看, 會遠比花大錢有用多.

[參考書籍]

Sun Certified Programmer & Developer for Java 2 Study Guide.
Authors: Kathy Sierra, Bert Bates
ISBN: 0-07-222684-6
售價: 1700 (台北天瓏書局會員價1530)

如果你英文閱讀能力不差的話, 非常推薦這本書, 作者講解的非常的清楚,
書中的範例也很多, 最重要的是, 作者文筆十分幽默, 在你唸的很煩躁的時候,
常常會因為他在段落中的文字而會心一笑, 甚至他直接在文中鼓勵你. 唸了不
少關於電腦的原文書, 這本是我唸過作者最風趣的一本.

[時間安排]

建議找一個跟你志同道合的同學一起報考, 好處是有問題可以互相討論,
也可以彼此督促進度, 彼此鼓勵加油. 一個人讀很容易因為遇到瓶頸就放棄.
以下是我跟我同事之前考試所排的時程表:

Week 1: Chapter 1, Chapter 2
Week 2: Chapter 3, Chapter 4
Week 3: Chapter 5, Chapter 6
Week 4: Chapter 7, Chapter 8, Chapter 9, 報名, 複習
Week 5: 參加測驗

此處Chapter編排是按照上面所推薦的那本書為例. 他們分別是:

Chapter 1: Language Fundamentals
Chapter 2: Declarations and Access Control
Chapter 3: Operators and Assignments
Chapter 4: Flow Control, Exceptions, and Assertions
Chapter 5: Object Orientation, Overloading and Overriding, Constructors,
and Return Types
Chapter 6: Java.lang — The Math Class, Strings, and Wrappers
Chapter 7: Objects and Collections
Chapter 8: Inner Classes
Chapter 9: Threads

你也許會覺得奇怪怎麼Week 4會多唸一章, 這樣不會太多嗎? 其實不會的, 因為第八章Inner Classes的量很少, 觀念跟第二章有許多重疊, 所以不會加重你在
Week 4的壓力. 另外如果你仔細看上面的章節你會發現, 怎麼都沒有考GUI的
部分還有I/O跑到哪去了? 沒錯, 在SCJP 1.4中已經不考awt, swing, I/O的部分.

[關於考試]

測驗時間兩小時又十五分鐘, 電腦作答, 可以提早交卷, 有單選題, 複選
題, 填充題. 如果是複選題他會告訴你有幾個是正確(或是錯誤). 所以放輕鬆,
比大學聯考簡單多了..至少他答錯不會倒扣. 

考題可以選擇中文或是英文, 不過聽考過中文版的人說, 翻譯似乎翻的不
太好, 所以還是建議考英文版的, 雖然中文版的有一個選項能看英文的題目.
[準備過程]

我們是在每個禮拜中約定兩天(二跟五)一起討論, 每次見面討論一章, 先從
頭到尾將該章節run過一次, 彼此提醒對方該注意的地方, 這很有用, 很容易發現自己所遺漏的小地方. 等整個章節都run過一次後, 就可以寫該書每章節後面所附的Self Test. 每章的題目大概20題, 量不是很多, 所以建議一定要寫過一次, 然後彼此交換對答案, 自己對答案的缺點是會不小心把答案記起來, 那就失去寫題目的意義, 所以等對完答案, 將自己錯的題目再想一次, 效果會相當不錯.

另外還有一點要注意的是, 請記得在讀每一章之前先去check一下該書的勘誤表, 這本書的唯一小缺點就是勘誤的地方不少, 所以讀之前記得先改過來, 不然一旦把錯誤的觀念當成正確的觀念背起來, 之後要改不是那麼簡單的.該書勘誤表的網址是:http://www.osborne.com/products/0072226846/0072226846_errata.txt

[各章節重點提要]

這篇各章節的重點提示是我自己排的, 跟該書會有點出入. 不過一定是
在該章節裡面.

Chapter 1:
1.1 分辨keywords, 以及記得Java所擁有的Reserve Words
1.2 所有primitive data type的range, 以及他們的default value
1.3 如何宣告一個array. (注意anonymous array的部分, 少見)
1.4 所有primitive data type, array的initialize value
1.5 Main method的宣告法, 以及他的arguments用法

Chapter 2:
2.1 Class如何宣告, 還有分辨所有的modifier.
2.2 Method如何宣告, 還有分辨所有的modifier.
2.3 Package, import的使用法
2.4 如何繼承? access modifier所扮演的角色?
2.5 Abstract, interface class以及他們裡面method如何宣告 (超重要!!)

Chapter 3:
3.1 了解全部的operator
3.2 Bitwie operator要會運算.
3.3 搞清楚Short-Circuit logical Operator跟 Logical Operator的差異
(重要!!)
3.4 參數在method如何傳遞.

Chapter 4:
4.1 了解所有迴圈以及判斷式的用法.
4.2 認清break, continue如何運作.
4.3 Labeled 以及 Unlabeled statments的用法
4.4 Exception如何去handle.
4.5 try/catch/finally 如何運作 (超重要!)
4.6 Assertion的機制! (必看必考! 1.4新的東西.保證考!!)

Chapter 5:
5.1 要會判斷一個class有沒有Encapsulation
5.2 如何overload一個method, 規則是? (重要!必考)
5.3 如何override一個method, 規則是? (重要!必考)
5.4 什麼是constructor? 要怎麼宣告?
5.5 當一個物件產生時呼叫constructor的順序是?
5.6 什麼時候compiler會給你default constructor?

Chapter 6:
6.1 String跟StringBuffer的差異?
6.2 String a = “abc" 跟 String a = new String(“abc")差在哪?
6.3 String/StringBuffer一些重要的methond要搞清楚
6.4 java.lang.Math中重要的methods, 要會算. (注意負數的運算!)
6.5 什麼是Wrapper Class?他們所含的重要method (重要!必考!)
6.6 == 跟 equals的差異?

Chapter 7:
7.1 如何override equal/hashcode method?
7.2 equals 跟hashcode之間的關係 (重要!必考!)
7.3 什麼是Collection? List, Set, Map的特質是什麼?
7.4 JVM的Garbage Collector如何運作?
7.4 符合被收走一個object的條件? (重要!必考!)
7.5 Finaliaze被呼叫的時機

Chapter 8:
8.1 如何宣告一個Inner Class? 他跟outer class如何互動?
8.2 Method-Local Inner Class需要注意的地方?
8.3 Anonymous Inner Class如何使用 (少見!要看)
8.4 Static Inner Class的性質, 以及需要注意的地方. (重要!必考!)

Chapter 9:
9.1 如何宣告一個Thread? extends Thread or implements Runnable?
9.2 如何使用Synchronized method?
9.3 如何只Synchronized一個block的code.
9.4 Thread之間如何做互動 (interaction)
9.5 了解Thread提供的method, 如何用! (重要!必考!)
9.6 wait, notify, notifyAll 使用時機? 如何使用? (重要!必考!)

[如何複習]

我們在week 4最後兩天密集式的複習, 先把參考書籍每個章節後面所附的"Two-Minute Drill"看過一次, 有發現忘記或是遺漏的地方, 馬上翻到前面補
強, 然後把每章節的Self Test自己錯過的題目再看一次.

別忘了, 每一章節中所提到的"Exam Watch"一定要再翻過一次, 這是這本
書最精采的地方, 他會很清楚的告訴你, 容易被誤導的陷阱! 複習的時候千萬
不要忘了這裡!

這樣還稍顯不足, 我們又寫了四份的模擬試題, 用以發現自己的盲點, 這
非常有用, 強烈建議一定要寫過幾份, 熟悉一下考題的感覺, 以及答題的技巧.
尤其是有幾份考題中的幾題都出現在正式考試. 所以多做無害.
[如何報名]

其實很簡單, 首先呢你需要排定你所要的考試時間, 基本上我建議是在
第五週的第一天, 越接近你複習那天越好, 這樣記憶猶新比較有利, 確定日
期後請在你所決定的考試日期前三天先去http://www.2test.com/註冊一個
帳號. 然後請在Week 4的第一天打電話去巨匠電腦購買SCJP考試卷, 你一定
要有這張卷你才能登記考試, 基本上他們是沒有現貨你可以請他幫你訂, 可
是記得跟他們說一定要在考試前三天給你..否則你考試日期就得延後, 因為
考場登記須在三天前登記.

等你拿到卷後,一樣到http://www.2test.com/這個網站, login後就可以
登記你要的考試日期跟時間, 選擇好後, 將你考試券上面的號碼就完成手續.
如果一切順利, 你會馬上收到一封確認的信.

另外, 在報名的時候, 你可以選擇你要在哪個考場考, 我是選擇在資策會
台北教育中心考, 因為交通方便, 就在捷運大安站出口, 所以選個你方便的考
場即可.

[考試當天]

記得攜帶身分證跟考試券, 在你選定考試時間前30分鐘到場報到, 然後準
備一下心情就進去考了. 基本上考場是一個小房間, 格成一格一格的, 環境很
安靜不會被外界打擾, 在考試前他會要求你做兩份問卷, 一份是關於考場相關
的調查, 一份是要求你自我評估, 別擔心這跟之後電腦選題沒有關係, 所以
快速把他點完就開始考了. 兩個小時又十五分鐘!

[寫在最後]

這是自己準備的一點小心得, 希望對正在準備SCJP的你有幫助, 我只是單純的想更深入的了解Java而已. 有任何問題歡迎寫mail給我, 或是到 myth.twbbs.org找我! 大家一起討論, 我的mail address跟id在文章一開頭就有了. 

最後, 祝你考試順利!!

Comments

Tell me what you're thinking...
and oh, if you want a pic to show with your comment, go get a gravatar!





*