-
SCJP 310-065考試要點
Sun 310-065 Exam Java平臺標準版本6認證程序員 Sun Java平臺標準版6程序員認證考試面向有使用Java程序設計語言經驗的程序員。如果能通過這門認證,則證明此程序員理解Java程序設計語言的基本語法和結構,並且可以使用Java SE 6創建運行於服務器和桌面系統的Java技術應用。 第1節:聲明、初始化和範圍 編寫代碼,聲明類(包括抽象類和各種形式的嵌套類)、接口和枚舉,並包含包和import語句(包括static imports)的適當使用。 編寫代碼,聲明接口。編寫代碼,實現或擴展壹或多個接口。編寫代碼,聲明抽象類。開發代碼,擴展抽象類。 編寫代碼,以靜態、實例和局部變量方式聲明、初始化和使用基本類型、數組、枚舉和對象。並使用正確的變量名標識符。 編寫代碼,聲明靜態和非靜態的方法,如果可以的化,使用符合JavaBean命名標準的方法名稱。編寫代碼,聲明和使用變量長度參數列表。 給定示例代碼,確定某個方法是否正確地重載了另壹個方法,確定方法正確的返回值(包括共變返回)。 給定壹組類和父類,為壹個或多個類編寫構造函數。給定壹個類聲明,確定是否要創建壹個默認的構造函數,如果是這樣,確定構造函數的行為。給定壹個嵌套的或非嵌套的類列表,編寫代碼將類實例化。 第2節:流控制 編寫代碼實現if或switch語句,認識這些語句的正確的參數類型。 編寫代碼實現所有各種形式的循環和叠代,包括使用for、增強循環(for-each), do, while, labels, break和continue;並講解在循環執行過程中和循環執行完成後,循環變量的取值情況。 編寫代碼,使用斷言,區分斷言的正確和錯誤使用。 編寫代碼,使用異常和異常處理語句(try, catch, finally),聲明有拋出異常的方法和重載方法。 了解在代碼段中某個點拋出異常的結果。註意,異常可能是運行時異常、檢查異常或錯誤。 了解可能導致下列異常發生的情況:ArrayIndexOutOfBoundsException,ClassCastException, IllegalArgumentException, IllegalStateException, NullPointerException, NumberFormatException, AssertionError, ExceptionInInitializerError, StackOverflowError或NoClassDefFoundError。理解虛擬機會拋出哪個異常,了解程序拋出這些異常的情形。 第3節:API內容 編寫代碼,使用基本封包類 (如Boolean, Character, Double, Integer等),和/或自動裝箱、拆箱。討論String, StringBuilder和StringBuffer這幾個類之間的區別。 給定壹個涉及以下操作的情形:涉瀏覽文件系統、讀寫文件或與用戶交互,從java.io中使用下列類(有時候要組合使用)編寫正確的解決方案:BufferedReader、BufferedWriter、File、FileReader、FileWriter、PrintWriter和Console。 使用到java.io中的下列API編寫用於實現對象序列化和/或去序列化的對象:DataInputStream、DataOutputStream、FileInputStream、FileOutputStream、ObjectInputStream、ObjectOutputStream和Serializable。 使用java.text包中的標準J2SE API,正確地對某個文化中的日期、數字和貨幣值進行格式化或解析;並且,給定壹個情景,如果要用默認文化或某種特定的文化,確定適當的所需使用的方法。講解java.util.Locale類的目的和使用方式。 編寫代碼,使用java.util.regex包中的標準J2SE API,對字符串或流進行格式化或解析。為字符串編寫代碼,使用Pattern和Matcher類以及String.split方法。認識和使用正則表達式的匹配(限於:.(dot), * (star), + (plus), ?, \d,…
-
從C++轉到Java需注意的地方
1.Java在虛擬機上運行 Java源代碼並不是被編譯成為普通的機器代碼。而是被翻譯成為虛擬機可以執行的代碼。一個Java解釋器最終執行這些代碼。這其中沒有連接的過程;解釋在需要的時候動態的加載一些類; 2.Java是完全面向對象的 Java是一種完全面向對象的語言。這意味著你對任何一個Java對象所做的動作都是通過一個方法實現的。第一點就是,再也沒有沒有主函數這樣的孤立的東西了。取而代之的是,你必須開始用一個對象的看法看待一個程序,一個類的對象。但是這個對象又什麼對象呢?大多數Java程序只是簡單的通過繼承Java基礎類Object來實現所需要的東西,但是你可以通過創建程序基礎類用於多個特性相似的應用程序來節省時間。 嚴格的面向對象的規定意味著理用原有的C/C++代碼不可以直接不加改動的使用;系統調用也是這樣的。 C++中,你可以通過在C++正常的命名空間外聲明extern”C”來使用原有的C的過程調用,包括系統調用 在Java中,只有一個類似的安全回溯的方法,但是並不是十分簡單的方法。你必須定義一個本地方法,其目的是為C語言提供接口,然後提供連接的介質。 Java環境提供了完成這種任務的工具,但是整個過程和C++中提供的extern比微不足道,完成使用C++類的過程則更加複雜,因為這樣會引入對C的藉口和C函數和C++成員函數的問題。 幸運的是,許多常用的系統實用工具函數已經在系統類中的方法中提供出來,但是這些明顯沒有包含經過許多年來你所創建的那些類和過程。所以,在你需要的時候你應該去鑽研一下。 3.Java中沒有獨立的頭文件 在Java中,關於類的一切東西都被放到一個單獨的文件中。方法的位置只可能在一個地方出現,一個方法的實現必須在它的定義過程中同時進行。這樣做得優點是在實現程序的時候不容易因為文件的非同步錯誤而失敗,或者獲取到一個沒有實現的聲明。類的聲明可以被Java解釋器利用甚至是從一個編譯過的單元中獲取,所以不再需要有頭文件,只要有編譯過的文件。 這樣做的缺點與我們編程的過程有關。許多C++程序員喜歡用頭文件來代替文檔。要看一個成員函數的接口參數,只需要看頭文件中的聲明即可。你可以經常的看頭文件即可了解怎樣去使用這個類。在Java中,沒有這樣的總結。因為實現類方法的代碼必須在方法定義的時候出現,而且,對於一個單獨的函數的代碼來說就經常佔據了一整頁乃至更多。這樣,很難通過看Java的代碼就初步了解類是怎樣使用的。你必須為你需要的類準備足夠多的文檔。不言而喻,再處理非商業類庫的時候文檔是極度缺乏的。 在當先的Java環境中提供了兩個工具來補償這些,javap來打印類標識,javadoc為嵌入式程序提供HTML文檔。 4.用Package來分解Java命名空間 在大的C++工程中經常遇到的一個問題是命名空間–怎樣保證工程的一些程序員不會創建和另一些程序員一樣名字的類?更糟糕的是,供應商可能會提供一個包含和你的類一樣名字的類的庫。有許多方法可以解決這一問題,但是很可能在問題發現之前工程已經啟動,改正錯誤是需要付出許多痛苦的。 Java通過”Package”這個概念解決了這個問題,Package有效地通過通過集合類劃分了命名空間。在不同包內的兩個同名的類仍然是不同的。關鍵問題就變成了類是否放置到相應的包中。 記住,Java並沒有解決命名衝突的問題。擴展一個基類而引起了派生類的衝突。比如說,如果你最喜歡的供應商提供了一些類,然後你把它們用做基類並且派生有一個foo方法的類,當供應商提供一個新版本的類的時候就可能出現,如果供應商業也在新類中提供了一個foo的方法。 5.異常是Java的重要特性 在C++中,異常和異常處理是十分深奧的事情;許多C++程序員從沒有處理過它們甚至不知道它們是何物。異常是在正常的過程中出現的未預料的錯誤,因此,它們不會從方法中返回,或者作為參數傳入;但是,它們不能被忽略!這裡的一個例子是計算一個書的方根的方法。正常的接口形式是將一個正數作為參數傳入方法,然後方法會返回一個正實數作為結果,方法可以檢驗這些並且在異常產生的時候拋出異常。在大多數係統中,程序員並不是必須這樣做,這樣,一個沒有考慮到的異常可以使程序不正常的退出。 在Java中,異常已經成為語言中非常成熟的部分。方法的說明中就包含了異常的信息,程序處理器也強制檢驗如果你使用了一個能夠產生異常的方法,你就必須檢查異常是否發生。幾乎所有的Java程序員都會遇到異常的情況,因為許多非常有用的庫中的類都會拋出異常。處理異常並不難,但是在一些時候是需要注意的。一個方法的文檔會指明方法拋出的異常的類型。如果你忘了,不要緊,編譯器會提醒你的。 6.字符串不再是字符數組 Java中包括了一個字符串的對象,並且是個常量。字符串不像字符數組一樣,雖然可以簡單的從一個字符數組構造一個字符串。你應該盡可能的用字符串代替字符數組,因為他們不會因為誤操作而被覆蓋。 7.Java限制了常量對象和方法 在C++中,你可以正式的聲明一個函數參數或者函數返回值為const類型,這樣可以有效的防止對參數或者返回值的不正當修改。另外,你可以聲明一個成員函數為const,表明它不可以修改任何他操作的對象。 Java支持常量操作符,只讀變量,這些通過final關鍵字實現。但是Java沒有支持強制的使一個可寫變量在函數傳遞、返回的過程中變為只讀。或者定義一個不操作修改對象的常量方法。 在Java中,這個省略帶來的影響和在C++中相比就非常小了,這很大程度上因為字符串變量和字符數組的不同,但是這也帶來一個引起錯誤的隱患。特別地,沒有辦法檢驗一個方法是否可以改動對象。 8.Java沒有指針 理解指針的概念是一個C或C++程序員最難應付的問題。指針也是錯誤產生的一大根源。 Java中沒有指針,對象的句柄直接作為參數傳遞,而不是傳遞指針。另外,你必須通過索引使用數組。這些都不是什麼大問題。然而,沒有指針是在寫含有函數指針或者成員函數指針的系統的時候引起很大麻煩。這個問題在處理回調函數的時候更加顯著。 9.Java沒有參數化類型 參數化類型提供了用一段程序處理許多相似程序的方法。一個例子就是開平方根的方法,它可以對int或者float操作。在C++中,這一特性是由模板提供的。 Java中不包含C++中的模板的等價物。如果你經常使用模板來簡化程序,比如說構造許多使用相似參數類型的函數,這簡直就是災難。這意味著更多使用複制、粘貼的過程來手動的完成。然而,如果你使用模板來生成類的話,沒有簡單的方法。 10.Java使用垃圾回收 在垃圾回收的語言中,運行時環境一直監測哪些內存不被使用。當一塊內存不用的時候,系統自動的回收內存。比如說,一個對像在一個方法中生成,但是沒有被調用著返回或者沒有儲存為全局變量,不能在方法外部使用。系統自己會知道哪些變量是你用不到的,哪些是可以用到的。因此,你不必再為破壞對象回收內存而擔心。在C++中,很多的調試時間都被使用到檢查內存漏洞中。 Java的這種方法很大程度上降低了這種錯誤的可能。但是他依然不能處理邏輯混亂的程序,他們不能夠被回收。許多C++的類中的析構函數是用來釋放對象引用的內存的。 Java使垃圾回收的事實說明在Java中不是必需寫析構函數了。但是並不意味著你可以忘記為你的類寫析構函數。比如,一個對像打開了網絡連接就必須被恰當的清理來關閉這個連接。在Java中,析構函數被稱作”finalization”方法。 11.Java不支持多重繼承 在任何一個複雜的面向對象的系統中,實現一個有更多方法的新類是十分經常遇到的事情。比如說,一個Manager類,需要被作為一個連表的表頭,但是一個Manager又必須是一個Employee。有許多方法來處理這樣的問題。一個方法是允許從多個類繼承。在這個例子中,Manager需要從Linked List和Employee繼承。 Java沒有多重繼承。但是你可以聲明接口–來描述實現一些功能的編程接口。一個類可以由多個接口實現,包括他唯一的功能。不同的類可以由同樣的接口實現。方法的參數既可以聲明為類,也可以聲明為接口。如果是接口的話,實現接口的類就可以作為參數傳入方法。 接口的概念要比多繼承容易理解一些,但是他有一定的局限性。特別地,你必須在類中實現接口的時候編碼去重新實現類的功能。 12.Java支持多線程 多線程可以使你寫出在同一時刻完成多種任務的程序。比如說,你可以在完成讀取一個大文件之間允許用戶對已經讀取的部分進行編輯。你需要把程序分為多線程來執行。為安全起見。你的程序要被精心的設計,因為可能不止一個線程需要對數據進行訪問、修改。 Java開始就支持多線程。類和接口用來分解一個程序成為不同的線程。語言簡單的對重要的數據作同步或者鎖定處理。 13.Java以一些預定義的類為基礎 默認的Java環境中包括一些從Java基礎類實現而來的一些包。這些允許你很快的寫出一些有用的程序,這些包如下: java.awt:當今許多應用程序都非常依賴GUI,java提供了一個Abstract Window Toolkid,這可以讓你在不考慮運行平台的前提下處理GUI對象。 java.applet:applet的主要目的是提供瀏覽有關的內容。它本身是awt組件的字類並且支持其他一些特性,比如聲音、渲染等。 java.io:java.io提供了對流、文件、管道的讀寫操作。 java.lang:提供了java的基礎類Objcet,Integar,Float……; java.net:提供對網絡編程的支持。包括處理socket,URL,Internet尋址等。…
-
Sun 310-065 information
This foundation certification is for programmers interested in demonstrating proficiency in the fundamentals of the Java programming language. To achieve this certification, candidates must successfully complete one exam. It is not necessary to be a Sun Certified Java Associate prior to taking this exam. The Sun Certified Programmer for Java Platform, Standard Edition 6 certification…
-
SUN 系列認證
Sun認證的種類 為了給業界建立壹套認證的標準,Sun公司推出了Java以及Solaris技術認證方案。對於企業而言,可以借助這項認證作為招聘人才的評判標準,或是作為衡量員工技術水準的依據;在個人方面,通過這些認證也可以證明個人的技術能力。目前Sun在中國推出的認證考試項目如下(在全球範圍中的要多壹些,具體可以慘見:http://suned.sun.com/certification.html 1.Java認證考試 該認證主要面對Java程序員。同時,該認證是業界唯壹經Sun授權的Java認證,考試內容涉及所有Java相關知識、編程概念及applet開發技巧。Sun認證Java程序員考試旨在觀察您通過應用軟件分配進行復雜編程的能力,之後還要測試您完成編程所需的知識。每次考試都包括65道以上的選擇題,時間大約為90分鐘。目前在這方面有兩項認證:Sun Certified Java Programmer(SCJP)310-065 和 SunCertifiedJava Developer (SCJD)。SCJP測驗Java程序設計概念及能力,內容偏重於Java語法及JDK的內容;SCJD則進壹步測試用Java開發應用程序的能力,考試者必須先完成壹個程序的設計方案,再回答與此方案相關的壹些問題。 2.Solaris系統管理認證考試 對Solaris/SunOS系統管理員,Sun推出CertifiedSolarisAdministrator(CSA)。CSA分別為兩個等級(PartⅠ和PartⅡ),測試對Solaris系統管理的了解程度。 3.Solaris網酪管理認證考試 為了測試使用者對於Solaris網酪管理能力,Sun推出CertifiedNetworkAdministrator(CNA)。內容包括基本網酪概念、RoutingandSubnet、Security、Performance、DNS、NIS+等。通過SUN任何壹門專業認證後,考生將收到SunMicrosystems總公司寄發的資格證書及徽章,並有權將通過Sun認證的標記印在個人名片上,作為個人技術能力的肯定。
-
JAVA學習資料
要想深入理解“容器”的概念需要我們首先理解“容器”的宏觀框架——容器框架。容器框架從宏觀角度為我們描述了壹個“容器”的世界,告訴我們在Java的容器世界中有哪些 “容器”、它們之間的關系如何、它們是什麽樣子、它們如何使用。總之,容器框架就是壹個用於表示操作集合的統壹的體系結構,容器框架包含以下元素: q 接口——它們代表容器類型的抽象數據類型。SCJP 整個Java容器類的基礎後來是容器接口(例如Collection,Map等接口),而不是類。使用接口的最大好處在於將容器的實現與容器的接口分開,這就意味著妳可以使用相同的方法訪問容器而不用關心容器是由什麽樣的數據結構實現的,即接口允許操作容器和不涉及容器所代表的細節。在面向對象的語言中,這些接口壹般組成壹個層次結構。 q 實現—— 它們是容器接口的具體實現。 q 算法—— 它們是在實現集合接口對象上執行運算的方法,如搜索和排序。這些算法被稱為多態的,也就是說,相同的方法可以用於處理某種接口的許多種不同的實現,算法就是可重用的功能。 相比較傳統的容器框架——例如C++的標準模板庫(Standard Template Library)和Smalltalk 的層次結構,Java的容器框架結構清晰,容易掌握。 圖6.1是容器框架中接口以及實現的之間的集成關系圖,它對我們學習Java中大量容器類型是很有幫助的。點線箭頭代表特定的類實現(Implements)壹個接口(若是抽象類,則表示部分實現了接口)。虛線線箭頭表示壹個類可以生成(Produce)箭頭所指向類的對象,例如,任意的Collection可以生成Iterator,而List可以生成ListIterator(當然,也能生成普通的Iterator)。實線箭頭表示類間的繼承(Inheritate)關系。 要想深入理解“容器”的概念需要我們首先理解“容器”的宏觀框架——容器框架。容器框架從宏觀角度為我們描述了壹個“容器”的世界,告訴我們在Java的容器世界中有哪些 “容器”、它們之間的關系如何、它們是什麽樣子、它們如何使用。總之,容器框架就是壹個用於表示操作集合的統壹的體系結構,容器框架包含以下元素: q 接口——它們代表容器類型的抽象數據類型。整個Java容器類的基礎後來是容器接口(例如Collection,Map等接口),而不是類。使用接口的最大好處在於將容器的實現與容器的接口分開,這就意味著妳可以使用相同的方法訪問容器而不用關心容器是由什麽樣的數據結構實現的,即接口允許操作容器和不涉及容器所代表的細節。在面向對象的語言中,這些接口壹般組成壹個層次結構。 q 實現—— 它們是容器接口的具體實現。 q 算法—— 它們是在實現集合接口對象上執行運算的方法,如搜索和排序。這些算法被稱為多態的,也就是說,相同的方法可以用於處理某種接口的許多種不同的實現,算法就是可重用的功能。 相比較傳統的容器框架——例如C++的標準模板庫(Standard Template Library)和Smalltalk 的層次結構,Java的容器框架結構清晰,容易掌握。 圖6.1是容器框架中接口以及實現的之間的集成關系圖,它對我們學習Java中大量容器類型是很有幫助的。點線箭頭代表特定的類實現(Implements)壹個接口(若是抽象類,則表示部分實現了接口)。虛線線箭頭表示壹個類可以生成(Produce)箭頭所指向類的對象,例如,任意的Collection可以生成Iterator,而List可以生成ListIterator(當然,也能生成普通的Iterator)。實線箭頭表示類間的繼承(Inheritate)關系。
-
SCJP考試心得
壹、準備: 開始沒有打算考SCJP,後來公司說要考,考過後報賬,所以才決定去試試。開始對SCJP根本不了解,所以在google上搜索了很多資料。其中在電驢上下到了壹個SCJP.iso,有266m,是壹個兄弟歸納,搜集的。裏面有很詳細的資料,包括各種電子書,模擬器,以及模擬題(這個兄弟應該是我們川大的,我看到資料裏面的link有望將樓:))。不過都是針對310-055的。開始時,我不清楚SCJP還要分310-055和310-065.所以,根據055的考綱復習,看了很多I/O和awt的東西。去預約考試時才曉得,考試中心只考065.所以,準備考SCJP的兄弟壹定要搞清楚這兩個的區別(好像現在都不考055?)。清楚考綱後,就是根據考綱復習。雖然那個SCJP.iso是針對055的,不過大部分內容是相同的。所以裏面的資料都比較有用,只是復習的時候,遇到考綱不要求的,不看就是了。 首先看書,我覺得《Java2認證學習指南》也就是《Complete Java 2 Certification Study Guide 》這個應該看。上面根據考綱,對每個知識點做了詳細講解,文字淺顯,容易理解。而且,它不是像其他書,僅僅羅列出考點,上面講了很多原理上的東西。這樣更易於理解。我想,即便是不考SCJP,如果想學Java,這本書也值得推薦。不過,我不知道是否有中文版的。我看的英文電子版。 另外為了能成功地通過SCJP的考試,最好為自己準備壹份最新的SCJP考古題,達到保險的效果。 二、預約考試: 帶上身份證到各考試中心預約。預約時,壹定要確定考試種類,是310-035還是其他的,因為他們的考綱是不壹樣的。我就是預約時,才曉得只考310-065.所以浪費了很多時間。幸好預約到了下壹個周,而且那個周老板正好出差,所以有時間看310-065多出來的東西。 三、總結: 雖然以前做過也些Java項目,但是感覺做寫Java程序和考SCJP是兩碼事。能寫Java程序,不壹定過得了SCJP.但是能過SCJP,卻能說明擁有寫Java程序的基礎。這次過SCJP,對我Java基礎又是壹次鞏固,我覺得這是我收獲最大的。那個證反而意義不大。不過,對於非計算機專業的兄弟,如果想找個程序員的工作,相信SCJP是個很好的跳板。總之,只要有壹定Java基礎,通過壹段時間的復習,過肯定沒問題。SCJP並難,壹定要有信心。 總算過了,也算對公司有了交待,不過不知道花在上面的時間值不值。Anyway,現在終於可以看點自己想看的東西了
-
SCWCD:Sun Certified Web Component Developer for J2EE 5
Sun Certified Web Component Developer (SCWCD) 是 J2EE 領域最令人羨慕的證書之壹。如果您想要獲得 SCWCD 證書,需要知道不僅僅要學習 servlet 和 JSP 技術,還要深入了解考試目標中指定的主題。甚至對於有經驗的程序員,在考試中的表現欠佳也是很正常的,因為他們可能沒有精通目標所覆蓋的內容。要想成功通過考試,遵循某種學習方法是很重要的,而該方法是在考試目標的指導下進行的。 預備知識 SCWCD 認證考試只能由 Java 2 平臺的 Sun 認證的程序員參加。報考科目:310-083:Sun Certified Web Component Developer for J2EE 5 本教程針對的是在開發 Web 應用程序中,有使用 Java 技術 servlet 和 Java Server Pages (JSP) API 經驗的專業人員。由於不是針對這些技術的綜合教程,所以不對這壹領域的新手推薦。本教程的目標是提供 SCWCD 考試中要測試概念的準確範圍。它的重點只放在:要取得考試成功,您需要知道什麽? SCWCD 認證由 13 個主要目標組成,這些目標涉及 servlet 以及 JSP 頁面、在 JSP 頁面中使用…