昇陽Sun Java認證體系-恆逸官方介绍

恆逸目前是我認為是台灣最具權威的教育機構,在恆逸我們可以找到很多免費資訊。我現在分享一篇關於昇陽Sun Java認證體系介紹:點擊瀏覽原文

恆逸提供的Java系列主要認證課程,有SCJP/SCWCD/SCJD/SCBCD這幾項主要認證,每一項認證皆需通過Sun公司所規定的考試科目方可取得。

SCJP (Sun Certified Java Programmer)

Sun Certified Java Programmer(SCJP)即昇陽認證之Java程式設計師,此一基本認證是為有興趣展現對於Java程式設計語言基礎之熟悉程度的程式設計師所提供的。要取得本項認證的程式設計人員必須具備的能力包括使用Java SE,展示其熟悉基礎Java程式設計語言。

SCWCD (Sun Certified Web Component Developer)

本認證是為致力於使用JavaServer Pages與Servlet技術提供Web服務與動態Web內容的開發人員所提供的。針對已取得SCJP認證的Java程式設計人員,其必須專精於Web應用程式,及用於展示網路服務及動態網頁內容的Servlet與JSP技術。

SCJD (Sun Certified Java Developer)

SCJD此一以效能為基礎的認證是為有興趣使用Java SE展現對於Java程式設計語言之進階熟悉程度的開發者所提供的。要取得此項基於效能的認證,程式設計人員和開發人員必須具備的能力包括使用Java SE,展示其精通Java程式設計語言。如要通過認證,則必須完成程式撰寫測驗及筆試問答共兩個部份。

SCMAD (Sun Certified Mobile Application Developer)

本認證是為使用Java技術為行動電話或「智慧」裝置建立行動應用程式的開發人員所提供的。本項認證是針對已取得SCJP認證的Java程式設計人員,其必須專精於使用Java ME技術在cell phone或是其他Java相容裝置上開發應用程式。

SCDJWS (Sun Certified Developer for Java Web Services)

本認證是為使用Java技術元件為應用程式建立Web服務的開發者所提供的。本項認證是針對已取得SCJP認證的Java程式設計人員,其必須專精於Web Services與企業平台整合技術。

SCBCD (Sun Certified Business Component Developer)

本認證是為負責設計、開發、測試、部署及整合EJB應用程式之Enterprise JavaBeans (EJB)技術商業元件開發人員所提供的。本項認證是針對已取得SCJP認證的Java程式設計人員,在Java EE平台技術中,其必須專精於封裝商業邏輯的伺服端分散式元件應用程式。

  • Share/Bookmark

[分享]Sun Java認證考試Prometric線上報名流程

原文網址:http://macspeed.net/wordpress/?p=13

1.0適用於所有SUN認證考試報名:SCJP、SCMAD、SCJA、SCDJWS、SCJD、SCJA、SCJD、SCWCD、SCBCD、SCEA、SCNA、SCSA等等。

2.SUN Voucher(認證卷)可以參考台灣Sun官方網站

3.n認證體系與考試編號查詢:2010年Sun Java認證體系介紹

4.SCJP 6.0試編號是310-065。決定考試日期,時間與考試地點,考試地點可以參考這裡,決定考試地點後,要記住考場代號,例如聯成電腦公館分校是TI17

 5. 一個註冊好的Prometric帳號與密碼,如果還沒有Prometric帳號,先到這裡完成註冊

 6. 開啟Prometric首頁

(全文…)

  • Share/Bookmark

關於“SUN認證考試改版”錯誤信息澄清說明

我今天發表這篇文章是爲了在此向各位澄清“SUN認證考試改版”的錯誤消息。原文:改版主要原因是因為sun被oracle給合併,現行的Java認證制度將改版將於3月開始考試。6月底舊版考試將取消,新版Java  7.0考試要推出線上程式實作。—–此文是收集網絡上關於SUN改版考試的猜測,並無事實依據。已經與2010年5月22日修改,由此給大家帶來的不便,我深表歉意。 如果您還遇到其他問題,請與我聯絡:MSN/Mail: itcert2008@hotmail.com

感谢Sun Microsystems, Taiwan Learning Services提出的錯誤修正。稍後我會繼續收集各類考試信息,以後將不會出現類似錯誤信息。請大大們繼續關注我的部落格。

描述來信:

——————————————————————————————————

~~~ Warning !! Notice!! ~~~

Sun Microsystems has postponed the release of Java Programmer Plus, namely the new hands on testing model, due to the transition to Oracle systems. As for now, Sun has no plan to change the current certification offerings. Your blog site is in error. Please don’t distribute a rumore to mass public market of Great China and clarify it on your blog immediatelly.

Sun Microsystems, Taiwan
Learning Services

———————————————————————————————————–

RE:來信

Dear Manager;
 
Thank you for the reminder .I have been looking for SUN certification exam revision of the news, because this information 
so that the network has reproduced this article! I will modify the article content errors .
 
I hope you can provide the correct information official SUN, thanks
  • Share/Bookmark

2010年Sun Java認證體系介紹

查詢SUN考試詳情:考試時間、考試題型等相關信息,請輸入考試編號:點擊開始查詢

Sun Java認證助理程序員(SCJA)

Java平台標準版認證助理程序員考試1.0版 (CX- 310-019)

Sun Java認證程序員(SCJP)

Java平台標準版6認證程序員 (CX- 310-065)

升級考試:Sun Java Platform, Standard Edition 6 認證程序員(CX- 310-066)

 Java 平台標準版5.0 認證程序員考試(CX- 310-055)

 Java 平台標準版5.0 認證程序員升級考試(CX- 310-056)

Sun Web組件認證開發人員(SCWCD)

Java Platform, Enterprise Edition 5 Web 組件認證開發工程師(CX- 310-083)

升級考試:Sun Java Platform, Enterprise Edition 5 認證Web 組件開發人員(CX- 310-084)

Sun商務組件認證開發人員(SCBCD)

 Java平台企業版5認證商務組件開發人員(CX- 310-091)

升級考試:Sun Java Platform, Enterprise Edition 5 認證商務組件開發工程師(CX- 310-092)

(全文…)

  • Share/Bookmark

Java認證常見問題FAQ

  在IT業迅猛發展的今天,獲得權威認證為個人發展提供了越來越多的良好契機。Sun公司的Java認證共有以下三種:Java程式師,Java開發員和Java2企業級設計師。目前國內開展的Java認證考試僅為前兩種。其中,Java程式師的認證考試以Sun公司指定的Java SL-275為教材,考試號為310-025;Java開發員的認證考試以Sun指定的Java SL-285為教材,機考部分的考試號為310-027。

 

Java程式師認證
 

一、 怎樣可以獲得Sun公司的Java認證?
   如果你希望取得Sun公司Java認證,那麼必須通過Java程式師(SCJP)的考試。授權培訓中心所開設的Java程式師課程可以幫助你在短期內掌握Java編程的知識和技巧,並準確地把握考點。

二、 Java認證培訓針對什麼樣的群體?
  經常有人諮詢:自己對Java語言比較陌生,對程式設計也沒有什麼基礎,怎樣做才可以取得Java程式師的認證?還有些專門從事程式開發甚至Java開發的人,也常常在猶豫,是不是可以不接受培訓直接參加考試?其實,從原則上講,培訓和考試是完全獨立的,可以直接報名參加認證考試。但是,由於Java認證考試的考點和別的學科並沒有任何相似性,而且也完全不同於我們日常的Java編程,所以僅僅自學或依靠自己的編程”底子”都是比較盲目的。而在Java程式師的培訓課程中,講師將針對考試中可能遇到的各種題型,有的放矢,更好地幫助學員迅速準確地抓住考試要點。如果學員在短期內不能很好地掌握所學內容,可以免費重聽。

三、 Java認證培訓能提供什麼樣的服務?
  為了滿足廣大學員的培訓需求,讓大家更快更及時地掌握知識並獲得認證,講師將使用Sun公司指定教材,系統、完整、全面地講述課程的內容,並根據各知識點所需要掌握的深度,有層次、有重點、有目的地指導學員的學習。同時,對各種題型的分析和講解更能幫助學員直觀、準確地瞭解認證考試。 

四、 如何參加Java程式師的認證考試?
  在有了充分的準備後,就可以著手參加考試了。首先需要提前2天到考試中心註冊考生ID,並和考試中心的工作人員預約考試時間。考生必須按時參加考試,並攜帶本人身份證。考試結束即可看到考試結果。Sun公司頒發的證書將在考試之後的2個月內以信件方式發到考生註冊的位址處。

五、 Java程式師認證的考點有哪些?
   Java程式師的認證考試以Sun公司的SL-275英文原版教材為標準,需要掌握並作為考試內容的知識點有:聲明和許可權控制,流控制和異常處理,垃圾回收機制,基本語法,運算元和符號,重載、覆蓋、運行類型和面向物件,線程等;此外,還有Java.awt、 Java.lang、 Java.util、Java.io包中的常用類等。

六、 Java認證考試有哪些注意事項?
   JavaSL-275的考試共有試題59道,通過分數為61分(答對36道題即可)。時間為120分鐘,在提交試卷前的任何時候,都可以看到任意一道試題。題型分為單選和多選題(可根據單選框或多選框來判斷),多選題在題目中將指明該題有幾個正確答案。

七、 有哪些資料可以幫助學員學習?
   市面上有很多Java教程的相關書籍,有些可以輔助學員更好地學習和掌握Java程式師所應掌握的知識點,如《Java寶典》、《精通Java》、《Java語言程式設計大全》等。但有時這些書籍上的某些內容會跟Sun公司指定的教材有些出入,這時,我們應當以教材的提法為准。當然,無論是教材還是自己購買的書籍都只是對Java語言的系統性的講述,要抓住考試的要點和難點,還應當以培訓課程講師講述的內容為准。
 

Java開發員認證
 

  在獲得程式師的認證後,可以繼續學習取得Java開發員(SCJD)的認證。相對於Java程式師的認證來說,開發員的知識掌握和證書取得要更難些。也正因為如此,開發員的證書對個人能力的標識和個人擇業更具價值。下面將對Java開發員認證考試的相關事宜做一些必要的介紹。
 

一、 Java開發員認證課程
  講授Java開發員認證課程的講師均是具有開發經驗、博學廣識的。在5天的培訓課程中,不僅向學員講Java程式架構、編程技巧,同時向學員灌輸Java面向物件的編程思想。學員將學習如何從始至終開發一個實際的兩層/多層Java Intranet應用程式及有關的平臺移植問題。
課程的具體內容有:解釋軟體發展週期每階段的目標,可使用適當的Java程式類型,瞭解API設計的基本元素,根據專案中的功能要求確定程式元件;描述關聯資料庫的設計及其設計原則;瞭解JDBC、ODBC及其使用;創建良好的GUI設計原則設計自己的用戶介面;使用Socket連接以適當格式傳輸資料,創建一個多層Java小程式或應用程式;瞭解在Solaris和Windows平臺之間的移植問題。
 

二、 Java開發員的認證考試
   Java開發員的考試分程式設計和機考兩部分。其中,程式設計部分不限時。考生報名後,可從指定的網址下載考試題目,並根據題目要求進行程式設計。在指定的時間段(1年)內,考生須傳回自行設計的Java程式。但通常情況下,考生都會在2至3個月內將程式傳回。機考部分將針對程式回答題目,只要真正領悟和掌握了設計程式的過程和內容,回答這部分考題就沒有問題了。開發員的認證考試是對一個Java開發人員綜合能力的一種考核,通過該課程的學習將培養一個程式設計人員的獨立編程的能力,而該證書的取得也是對這種能力的一個有力證明.

  • Share/Bookmark

TestPassport SCJP 310-065(BIG5)繁體中文考題分享

點擊下載:SCJP 310-065(繁體中文)V6.27

感謝TestPassport考題大師免費贊助,請到TestPassport官方網站(www.testpassport.net)購買最新310-065考題!

1. 已知:
35. String #name = “Jane Doe”;
36. int $age = 24;
37. Double _height = 123.5;
38. double ~temp = 37.5;
以下敘述哪兩個正確?(請選擇兩個答案。)
A. 第 35 行無法編譯。
B. 第 36 行無法編譯。
C. 第 37 行無法編譯。
D. 第 38 行無法編譯。
Answer: AD
2.按 [下一題] 或 [其他] 繼續作答。應用題
3. 已知:
11. public static Iterator reverse(List list) {
12. Collections.reverse(list);
13. return list.iterator();
14. }
15. public static void main(String[] args) {
16. List list = new ArrayList();

17. list.add(“1″); list.add(“2″); list.add(“3″);
18. for (Object obj: reverse(list))
19. System.out.print(obj + “, “);
20. }
結果為何?
A. 3, 2, 1,
B. 1, 2, 3,
C. 編譯失敗。
D. 程式碼順利執行,但沒有輸出。
E. 執行階段丟出異常。
Answer: C
4. 已知:
5. class A {
6. void foo() throws Exception { throw new Exception(); }
7. }
8. class SubB2 extends A {
9. void foo() { System.out.println(“B “); }
10. }
11. class Tester {
12. public static void main(String[] args) {
13. A a = new SubB2();
14. a.foo();
15. }
16. }
結果為何?
A. B
B. B,後面是 Exception。
C. 編譯會失敗,因為第 9 行有錯誤。
D. 編譯會失敗,因為第 14 行有錯誤。
E. 丟出 Exception,沒有其他輸出。
Answer: D (全文…)

  • Share/Bookmark

Java認證考試必讀書籍

我本來只是想要要記錄一下我個人Java 學習過程,
不過我在學習 Java 的過程中碰到了很多問題
看了三本書覺得寫的非常的好所以也想推薦給各位準考生,
看過了這些書後我覺得按照程度這樣看下來是最循序漸進的,
可以依照你們的程度來看看剛開始因為感受到了自己基礎不足,

而且考 SCWCD 前也必須先考過 SCJP…..

點擊下載:Java認證考試書單

  • Share/Bookmark

分享[考試心得] 我通過SCJP認證考試了

準備參加SCJP考試該如何準備呢?分享一篇關於一位考生考試心得,寫的很詳細現在分享給大家!

200807011827a

SCJP考試全名是Sun Certified Programmer for Java,

也就是昇陽公司對Java語言的認證考試。

其實我很早以前就想要考這個認證考試了,

畢竟工作的環境主要就是以Java為主。

不過由於這個考試純粹是個人興趣,

再加上人類特有的拖性,

所以去年買的考試券,

拖到今年快過期沒辦法了,

我才去參加考試。

(不過去年是有準備考TOEIC啦,詳見此篇。這是藉口嗎XP)

就在準備好一陣子之後,

我終於在鳳凰颱風來臨的前夕,

前去SCJP考試中心看看能不能過關。

 

雖然我買的考試券有允許失敗一次的機會,

也就是萬一第一次沒考過,

還可以考第二次,

但是我還是希望能一次過關啊。

 

幸好,努力是有代價的。

因為SCJP是上機考試,

所以當考完後,

馬上就可以知道結果。

 

There are 72 questions in this exam. You answered 68 questions correctly which gives you a score of 94%.PASSING SCORE:59%   YOUR SCORE:94%   TEST STATUS: Pass

 

看了上面的成績報告書的資料,

真的是太高興了。

點擊閱讀全文….

(全文…)

  • Share/Bookmark

Oracle收購Sun之後:有關Java未來的三個關鍵問題

我們都已經聽說了有關為什麼Oracle收購Sun的一些猜測:
     Oracle一直都想和IBM站在同一水平線上。他們想要被看作是一個完整的供應商,提供應用程序,平台和數據庫。如果你想要,那就是一站式服務。

     Oracle已經佔據了應用程序和數據庫的大部分市場。為了保持在這一領域的主要地位,他們想要擴展並深入到硬件業務中。

    收購是一項長期的防禦舉動以回應微軟收購SAP的謠言。

    雖然收購的原因對很多人來說是很重要的,但是對於我來說最重要的是會在Sun這15年中所創建和服務的Java技術上發生什麼事情。我經常會寫到”Java is COBOL” ,因為今天幾乎所有的商業都有一些Java要做的事情。謠言在應用程序開發行業中漫天飛,但是我們早知道塵埃會落定,故事將會結束。這不意味著我們不能用歷史來引導我們預測未來。 Ruby能否成為第二個Java?

    從純粹的Java角度來看一看Oracle所得到的,這三個關鍵問題是:

     Java Community Process (JCP)會繼續存在嗎?

     Apache Software Foundation (ASF)和Sun之間的爭端會解決嗎?

     Oracle會通過為JDK扣交TCKs而取得Java IP嗎?

     JCP會繼續存在嗎?

     Oracle是JCP的高級成員,而且他們已經提交了80多個Java Specification Requests (JSRs)。儘管有這個長期的參與承諾,Oracle表示——和其他的供應商和參與者一起——JCP過程需要變得更開放,透明並且廠商中立。特別是在2007年12月12日的時候,Oracle提出了這個:Resolution 1 (由Oracle提議,第二個是由BEA提出) .

     “Executive Committee感覺到JCP變成一個開放獨立並且是廠商中立的標準組織,那裡所有的成員都參與公平競爭,具體有以下特點:

    成員基金開發和管理費用

    一個法人實體,有法律,理事會和董事成員等等。

    一個新的,簡單的IPR Policy(知識產權政策)允許更大範圍的執行。

    嚴格的兼容性要求

    致力於促進Java編程模式

    此外,EC將在對Java Community干預最小的情況下,盡快實施這個計劃以確保這樣的過渡盡快的實施。 “

    所以我們希望Oracle能繼續JCP,但是它可能變成一個完全不同的JCP.如果Oracle成功的實施了所期望的轉變,結果會是非常有趣的而且具有廣泛的影響。特別有趣的是看到Oracle如何實施這些變革。那將是第一個跡象表明Oracle將如何同Java工作。

     Apache Software Foundation (ASF)和Sun之間的爭端會解決嗎?客戶端Java的革命性飛躍圍繞Apache和Sun爭論的主要問題是多種多樣的,但是這裡有一個對這些事件的簡短總結:

     Apache Harmony Project目的是創建一個ASF授權的模塊化虛擬機(VM)和基於Java SE 5.0版本的JDK.

     Sun的JDK開源和OpenJDK項目。

    要成為一個認證的JDK,Harmony需要通過Sun的Technology Compatibility Kits(TCKs)。

     Sun說到Harmony是基於舊的JDK5.0而且不是在最新的JDK6.0上,所以認證過程停滯了,Harmony Project也懸而未決。

    到今天,OpenJDK管理委員會也沒有解決這個爭端。 Oracle如何處理這個情況是他們如何管理Java程序的第二個晴雨表。

     Oracle會通過為JDK扣交TCKs而取得Java IP嗎?

    在JDK認證中涉及了很多法律問題會成為Java的大量蠕蟲。例如,除非你為OpenJDK通過TCK,否則你不獲得Java Intellectual Property (IP)的權力——即你沒有認證的JDK.

    由於你沒有Java SE7的一套規範,而且Sun也沒有購買一個,所有沒有辦法擁有一個官方的OpenJDK 7.Oracle會採取同樣的辦法,而且不會發布一個規範或是TCKs,這樣將IP在內部保持。

    總結

    如你所見,這三個問題都有所關聯,每個答案本身有不同的水平和層次,例如:

     JCP肯能會繼續存在,但是它可能在指定技術方向上承擔不同的作用。

    管理上的這種差異為ASF問題提供一個簡單的解決方案,讓它們成為泛黃的記憶。

     Oracle可能會推出一個新的JDK規範連同TCKs一起,完全實現一個開放的JDK承諾。

    如何發揮這些因素將讓Java developmer community清楚的知道Oracle如何運行Java.

  • Share/Bookmark

淺談:Java代碼的優化策略

1.如何使用Exception
Exception降低性能。一個異常拋出首先需要創建一個新的對象。 Throwable接口中的構造器調用名為fillInStackTrace()的本地方法。這個方法負責巡檢棧的整個框架來收集跟踪信息。這樣無論何時有異常拋出,它要求虛擬機裝載調用棧,因為一個新的對像在中部被創建。

異常應當僅用於有錯誤發生時,而不要控制流。

2.不要兩次初始化變量

Java通過調用獨特的類構造器默認地初始化變量為一個已知的值。所有的對像被設置成null,integers (byte, short, int, long)被設置成0,float和double設置成0.0,Boolean變量設置成false。這對那些擴展自其它類的類尤其重要,這跟使用一個新的關鍵詞創建一個對象時所有一連串的構造器被自動調用一樣。

3.在任何可能的地方讓類為Final

標記為final的類不能被擴展。在《核心Java API》中有大量這個技術的例子,諸如java.lang.String。將String類標記為final阻止了開發者創建他們自己實現的長度方法。

更深入點說,如果類是final的,所有類的方法也是final的。 Java編譯器可能會內聯所有的方法(這依賴於編譯器的實現)。在我的測試裡,我已經看到性能平均增加了50%。

4.在任何可能的地方使用局部變量

屬於方法調用部分的自變量和聲明為此調用一部分的臨時變量存儲在棧中,這比較快。諸如static,實例(instance)變量和新的對象創建在堆中,這比較慢。局部變量的更深入優化依賴於你正在使用的編譯器或虛擬機。

5.停止小聰明

很多開發人員在腦子中編寫可複用和靈活的代碼,而有時候在他們的程序中就產生額外的開銷。曾經或者另外的時候他們編寫了類似這樣的代碼:

public void doSomething(File file) {
FileInputStream fileIn = new FileInputStream(file);
// do something

他夠靈活,但是同時他們也產生了更多的開銷。這個主意背後做的事情是操縱一個InputStream,而不是一個文件,因此它應該重寫如下:

public void doSomething(InputStream inputStream){
// do something

6.乘法和除法

我有太多的東東適用於摩爾法則——它聲明CPU功率每年成倍增長。 “摩爾法則”表明每年由開發者所寫的差勁的代碼數量三倍增加,劃去了摩爾法則的任何好處。

考慮下面的代碼:

for (val = 0; val < 100000; val +=5) { shiftX = val 8; myRaise = val 2; }

如果我們狡猾的利用位移(bit),性能將會六倍增加。這是重寫的代碼:

for (val = 0; val < 100000; val += 5) { shiftX = val << 3; myRaise = val << 1; }

代替了乘以8,我們使用同等效果的左移3位。每一個移動相當於乘以2,變量myRaise對此做了證明。同樣向右移位相當於除以2,當然這會使執行速度加快,但可能會使你的東東以後難於理解;所以這只是個建議

7.用代碼有效處理內存溢出

OutOfMemoryError是由於內存不夠後普遍會遇到的問題,下面一段代碼能有效判斷內存溢出錯誤,並在內存溢出發生時有效回收內存

通過該方法可以聯想到有效管理連接池溢出,道理等同。

import Java.util.*;
public class DataServer
{
private Hashtable data = new Hashtable();
public Object get (String key)
{
Object obj = data.get (key);
if (obj == null)
{
System.out.print (key + “ ”);
try
{
// simulate getting lots of data
obj = new Double[1000000];
data.put (key, obj);
}
catch (OutOfMemoryError e)
{
System.out.print (“No Memory! ”);
flushCache();
obj = get (key);// try again
}
}
return (obj);
}
public void flushCache()
{
System.out.println (“Clearing cache”);
data.clear();
}
public static void main (String[] args)
{
DataServer ds = new DataServer();
int count = 0;
while (true) // infinite loop for test
ds.get (“” count+);
}
}

8. Lazy Loading (Lazy evaluation)在需要裝入的時候才裝入

static public long
factorial( int n ) throws IllegalArgumentException
{
IllegalArgumentException illegalArgumentException =
new IllegalArgumentException( “must be >= 0” );
if( n < 0 ) {
throw illegalArgumentException ;
} else if( ( n 0 ) || ( n 1 ) ) {
return( 1 );
} else (
return( n * factorial( n – 1 ) ) ;
}

優化後代碼

static public long
factorial( int n ) throws IllegalArgumentException
{
if( n < 0 ) {
throw new IllegalArgumentException( “must be >= 0” );
} else if( ( n 0 ) || ( n 1 ) ) {
return( 1 );
} else (
return( n * factorial( n – 1 ) ) ;
}

9.異常在需要拋出的地方拋出,try catch能整合就整合

try {
some.method1(); // Difficult for Javac
} catch( method1Exception e ) { // and the JVM runtime
// Handle exception 1 // to optimize this
} // code
try {
some.method2();
} catch( method2Exception e ) {
// Handle exception 2
}
try {
some.method3();
} catch( method3Exception e ) {
// Handle exception 3
}

已下代碼更容易被編譯器優化

try {
some.method1(); // Easier to optimize
some.method2();
some.method3();
} catch( method1Exception e ) {
// Handle exception 1
} catch( method2Exception e ) {
// Handle exception 2
} catch( method3Exception e ) {
// Handle exception 3
}

10. For循環的優化

Replace…
for( int i = 0; i < collection.size(); i++ ) {

}
with…
for( int i = 0, n = collection.size(); i < n; i++ ) {

}

11.字符串操作優化

在對字符串實行+操作時,最好用一條語句

// Your source code looks like…
String str = “profit = revenue( ” revenue
“ – cost( ” cost ““;
//編譯方法
String str = new StringBuffer( ).append( “profit = revenue( “ ).
append( revenue ).append( “ – cost( “ ).
append( cost ).append( ““ ).toString( );
在循環中對字符串操作時改用StringBuffer.append()方法
String sentence = “”;
for( int i = 0; i < wordArray.length; i++ ) {
sentence += wordArray[ i ];
}

優化為

StringBuffer buffer = new StringBuffer( 500 );
for( int i = 0; i < wordArray.length; i++ ) {
buffer.append( wordArray[ i ] );
}
String sentence = buffer.toString( );

12.對象重用(特別對於大對象來說)

public
class Point
{
public int x;
public int y;
public Point( )
{
this( 0, 0 );
}
}

優化為:

public class Component
{
private int x;
private int y;
public Point getPosition( )
{
Point rv = new Point( ); // Create a new Point
rv.x = x; // Update its state
rv.y = y;
return rv;
}
}
// Process an array of Component positions…
for( int i = 0; i < componentArray.length; i++ ) {
Point position = componentArray[i].getPosition( );
// Process position value…
// Note: A Point object is created for each iteration
// of the loop…
}

可再次優化,僅使用一個類對象:)

public
class Component
{
private int x;
private int y;
public Point getPosition( Point rv )
{
if( rv == null) rv = new Point( );
rv.x = x; // Update its state
rv.y = y;
return rv;
}
// Create a single point object and reuse it…
Point p = new Point( );
for( int i = 0; i < componentArray.length; i++ ) {
Point position = componentArray[i].getPosition( p );
// Process position value…
// Note: Only one Point object is ever created.
}

13. J2EE相關

a)盡量不要將大對象放到HttpSession或其他須序列化的對像中,並註意及時清空Session

b)使用預編譯語句prepareStatement代替createStatement

c)盡可能使用連接池

d)能使用Cache就使用Cache,具體實現可參考jive(CacheCacheableCacheObjectCacheSizesDefaultCacheLinkdListLinkdListNode)或ofbiz(org.ofbiz.core.util. UtilCache.Java)

  • Share/Bookmark