第二部分:流程控制
正確使用if、switch語句包括參數類型的合法使用。
正確使用所有帶標簽或不帶標簽的循環語句包括增強型for,使用break,continue,計算循環計數變量的值。正確使用斷言。
正確使用異常和異常處理語句(try,catch,finally)。
正確定義或重寫拋出異常的方法。
知道在程序段的特定點出現的異常對程序的影響,識別其是runtime exception、checked exception或error.
知道下列異常在什麼情況下會發生: ArrayIndexOutOfBoundsException,ClassCastException, IllegalArgumentException, IllegalStateException, NullPointerException, NumberFormatException, AssertionError, ExceptionInInitializerError, StackOverflowError or NoClassDefFoundError.
知道上面哪些是由虛擬機拋出的,其他的在什麼情況應該被程序拋出。
第三部分:API內容
正確使用基本的類型包裝器及其自動拆/裝箱。
區別String、StringBuilder和StringBuffer的不同。
用以下類向給定文件中寫或從中讀數據:Java.io: BufferedReader,BufferedWriter, File, FileReader, FileWriter和PrintWriter.
使用以下API序列化或反序列化對象:Java.io: DataInputStream, DataOutputStream, FileInputStream, FileOutputStream, ObjectInputStream, ObjectOutputStream and Serializable.
使用Java.text包中的標准API正確格式化或解析特定locale的日期、數字和貨幣值。
給定需要使用缺省或特定locale的代碼段,給出合理的使用。
描述Java.util.Locale類的目的和使用。
使用java.util和Java.util.regex包中標准的API格式化或解析strings和streams.對於strings, 會使用Pattern和Matcher類及String.split方法。
會使用規則表達式進行模式匹配(限.、*、+、?、d、s、w、[]、())。
*、+和?的使用限於貪婪匹配中作為量詞,()操作符僅用做分組機制,不用於在匹配中捕獲內容。
對於streams,會用Formatter和Scanner類及PrintWriter.format和PrintWriter.printf方法。識別並使用用於格式化字符串的格式化參數(限%b、%c、%d、%f、%s)。
第四部分:並行性
能用java.lang.Thread和Java.lang.Runnable兩種方法定義、實例化和啟動新線程。
知道什麼情況下線程能存在,知道轉換線程狀態的方式。
正確使用對象鎖保護靜態變量和成員變量,正確使用wait, notify和notifyAll方法及synchronized修飾符。
第五部分:面向對象原理
能在類中實現緊密封裝、高內聚、低耦合並描述其好處。
會寫示范多態的代碼。
知道什麼時候要上溯,知道和對象引用的上溯有關的運行時error。
解釋與構造函數、成員變量、靜態變量、成員方法、靜態方法有關的修飾符在繼承機制中的效果。
引用重載或重寫的方法,引用超類的或重寫的或重載的構造函數。開發代碼實現"is-a"和"has-a"關系。
第六部分:集合/泛型
正確選用集合類和接口包括Comparable接口。
區分對hashCode和equals方法重寫的正確與否。
知道==和equals方法的不同。
會使用集合的泛型版本,尤其是Set、List和Map接口及implementation類。
知道非泛型版本的集合的不足並會用泛型版本去重構。
在類和接口聲明中、成員變量和方法參數中及返回類型中合理使用類型參數。
編寫泛型方法和通配型方法,知道其入口的異同。
使用Java.util包對list進行以下操作:排序、二分法查找、轉換為array。
使用Java.util包對array進行以下操作:排序、二分法查找、轉換為list。
使用java.util.Comparator和Java.lang.Comparable接口影響lists和arrays的排序。
知道基本類型包裝器和Java.lang.String的自然排序的排序效果。
第七部分:基礎內容
正確使用訪問控制修飾符、包聲明語句、導入語句。給定一個類和命令行,知道預期的行為。
明確當對象引用或基本類型作為形參傳遞給方法被賦值或修改後的影響。
給定一段代碼,知道什麼對象在什麼地方能或不能被垃圾收集器合理的收集,明確垃圾收集機制和結束機制的行為。
給定JAR文件內或外的展開的類的全名,為其構造合適的目錄結構。
給定一段代碼和一個classpath,確定這個classpath是否能使代碼正確編譯。
正確使用賦值操作符(限=、+=、-=)、算術操作符(限+、-、*、/、%、++、--)、關系操作符(限<、<=、>、>=、==、!=)、instanceof操作符、邏輯操作符(限&、|、^、!、&&、||)、條件操作符( ? : )。
編寫代碼測試兩個對象或基本類型是否相等。