-
Java SE 6.0 1Z0-851認證考題資訊
Killtest 1Z0-851認證考題幫助考生順利通過OCJP 6.0考試。本課程採用了Java SE 6平台,並使用Java SE6開發工具包(JDK6)產品。Java編程語言基礎知識的課程旨在使學生很少或根本沒有編程經驗,使用Java編程語種開始學習編程。很多考生都是用該考試擬真試題通過1Z0-851考試。
-
Java EE開發應用程式平臺課程
Java EE開發應用程式平臺課程提供學生構建和部署企業應用程式,符合Java平臺企業版5(Java EE 5)技術標準。這門課程介紹了企業部分包括企業 JavaBeans(EJB)技術,Java持久性API(JPA),servlet和JavaServer頁面(JSP)技術,Web服務和Java技術的客戶使用它們。考生獲得的實作經驗,通過建立一個終端到終端,分散式業務應用實驗室。該實驗室探索EJB會話元件,實現會話 Facade模式,並提供前端實體元件使用Java持久性API。
-
1Z0-852:Java Standard Edition 6 Programmer Certified Professional Upgrade
個人認為選擇KillTest 1Z0-852認證擬真試題是考生通過Java Standard Edition 6 Programmer Certified Professional Upgrade考試的首要選擇。由于管理資料庫的責任重大,很少公司願意聘請一位剛剛通過1Z0-852考試的考生去管理資料庫。對於剛剛畢業的年輕人來說,可以先選擇做開發,考生擁有一定經驗後轉型,去做管理資料庫。當然,這個還是要看人個的實際情況來定。其次,選擇最適合自己通過的考試方式。這科考試取代SUN認證體系中的310-066考試。
-
JAVA中執行DOS命令分析
第壹行的“.\\p.exe”是要執行的程序 名,Runtime.getRuntime()返回當前應用程序的Runtime對象,該對象的exec()方法指示Java虛擬機創建壹個子進程執行指 定的可執行程序,並返回與該子進程對應的Process對象實例。通過Process可以控制該子進程的執行或獲取該子進程的信息。第二條語句的目的等待 子進程完成再往下執行。 但在windows平臺上,如果處理不當,有時並不能得到預期的結果。下面是筆者在實際編程中總結的幾種需要註意的情況: 1、執行DOS的內部命令 如果要執行壹條DOS內部命令,有兩種方法。壹種方法是把命令解釋器包含在exec()的慘數中。例如,執行dir命令,在NT上,可寫成 exec(“cmd.exe /c dir”),在windows 95/98下,可寫成“command.exe /c dir”,其中慘數“/c”表示命令執行後關閉Dos立即關閉窗口。另壹種方法是,把內部命令放在壹個批命令my_dir.bat文件中,在Java程序 中寫成exec(“my_dir.bat”)。如果僅僅寫成exec(“dir”),Java虛擬機則會報運行時錯誤。前壹種方法要保證程序的可移植性, 需要在程序中讀取運行的操作系統平臺,以調用不同的命令解釋器。後壹種方法則不需要做更多的處理。 2、打開壹個不可執行的文件 打開壹個不可執行的文件,但該文件存在關聯的應用程序,則可以有兩種方式。 以打開壹個word文檔a.doc文件為例,Java中可以有以下兩種寫法: exec(“start .\\a.doc”); exec(” c:\\Program Files\\Microsoft Office\\office\\winword.exe .\\a.doc”); 顯然,前壹種方法更為間捷方便。 3、執行壹個有標準輸出的DOS可執行程序 在 windows平臺上,運行被調用程序的DOS窗口在程序執行完畢後往往並不會自動關閉,從而導致Java應用程序阻塞在waitfor( )。導致該現象的壹個可能的原因是,該可執行程序的標準輸出比較多,而運行窗口的標準輸出緩沖區不夠大。解抉的辦法是,利用Java提供的Process 類提供的方法讓Java虛擬機截獲被調用程序的DOS運行窗口的標準輸出,在waitfor()命令之前讀出窗口的標準輸出緩沖區中的內容。壹段典型的程 序如下: … String ls_1; Process process = Runtime.getRuntime().exec(“cmd /c dir \\windows“);…
-
Java 6中的性能優化
J2SE 6(代號:Mustang野馬)主要設計原則之壹就是提升J2SE的性能和擴展能力,主要通過最大程度提升運行效率,更好的垃圾收集和壹些客戶端性能來達到。 1、偏向鎖(Biased locking) Java 6以前加鎖操作都會導致壹次原子CAS(Compare-And-Set)操作,CAS操作是比較耗時的,即使這個鎖上實際上沒有沖突,只被壹個線程擁有,也會帶來較大開銷。為解決這壹問題,Java 6中引入偏向鎖技術,即壹個鎖偏向於第壹個加鎖的線程,該線程後續加鎖操作不需要同步。大概的實現如下:壹個鎖最初為NEUTRAL狀態,當第壹個線程加鎖時,將該鎖的狀態修改為BIASED,並記錄線程ID,當這壹線程進行後續加鎖操作時,若發現狀態是BIASED並且線程ID是當前線程ID,則只設置壹下加鎖標誌,不需要進行CAS操作。其它線程若要加這個鎖,需要使用CAS操作將狀態替換為REVOKE,並等待加鎖標誌清零,以後該鎖的狀態就變成 DEFAULT,常用舊的算法處理。這壹功能可用-XX:-UseBiasedLocking命令禁止。 2、鎖粗化(Lock coarsening) 如果壹段代碼經常性的加鎖和解鎖,在解鎖與下次加鎖之間又沒幹什麽事情,則可以將多次加加鎖解鎖操作合並成壹對。這壹功能可用-XX:-EliminateLocks禁止。 3、自適應自旋(Adaptive spinning) 壹般在多CPU的機器上加鎖實現都會包含壹個短期的自旋過程。自旋的次數不太好決定,自旋少了會導致線程被掛起和上下文切換增加,自旋多了耗CPU。為此Java 6中引入自適應自旋技術,即根據壹個鎖最近自旋加鎖成功概率動態調整自旋次數。 4、常用大內存分布的堆(large page heap) 在大內分頁是x86/amd64架構上用來減小TLB(虛擬地址到物理地址翻譯緩存)大小的TLB失配率。Java 6中的內存堆可以使用這壹技術。 5、提高數組拷貝性能 對每種類型大小寫壹個定制的匯編數組拷貝程序。 6、後臺進行代碼優化 Background Compilation in HotSpot™ Client Compiler: 後臺進行代碼優化 7、線性掃描寄存器分配算法(Linear Scan Register Allocation): 壹種新的寄存器分配策略,基於SSA(static single assignment),性能提高10%左右。常用的寄存器分配算法將寄存器分配看作圖著色問題,時間復雜度是O(n^4),不適用於Java的JIT編譯。原來的JVM裏是根據壹些本地啟發式規則來分配寄存器,效果不太好,Java 6中使用的線性掃描寄存器算法能夠達到與圖顏色算法相似的效果,並且時間復雜度是線性的。 8、並行縮並垃圾收集器(Parallel Compaction Collector) 進行Full GC時使用並行垃圾收集(JDK 5裏原來非Full GC是並行的但Full GC是串行的),使用-XX:+UseParallelOldGC開啟這壹功能 9、並行低停頓垃圾收集器(Concurrent Low Pause Collector) 顯式調用gc(如System.gc)時也可以並行進行標記-清掃式垃圾收集,使用-XX:+ExplicitGCInvokesConcurrent開啟。 10、Ergonomics in the 6.0…