博客

  • IBM軟件學院人才培育計劃授權課程體系

    基礎系列課程
    基礎系列課程著眼於電子商務/政務的基礎知識,內容淺顯易懂,適合於初學者、電子商務/政務行業內非技術人員、決策人員學習。目前,IBM中國軟件學院授權本地教育基礎系列課程已經全部完成,分別是:
     IBM基礎課程:電子商務核心知識
     IBM基礎課程:電子政務核心知識
     SWI-101 IBM基礎課程:電子商務核心知識
     (IBM e-Business Foundation: Core Knowledge)
    課程介紹:
    本課程結合當今電子商務各方面最新技術,向學員展示目前企業級主流電子商務解決方案的主要技術背景與框架。這些技術包括有:Web技術、XML技術、Web Service、Java、Linux、安全技術等等,讓學員對相關基本技術有充分的理解。同時本課程還介紹了市場上流行的電子商務解決方案,並重點介紹IBM電子商務應用框架,包括其產品、策略及其功能。
    課程內容:
     ●電子商務基本概念及架構
     ●電子商務核心技術:WEB相關技術、XML.JAVA、LINUX、J2EE、安全等
     ●主要電子商務解決方案:ERP、SCM、CRM、E-commerce、Business integration、Business intelligence等
     ● IBM電子商務應用框架:主要的IBM軟件策略、產品家族、以及其基本功能介紹
    適合人群:
     ●企業電子商務管理部門的管理人員
     ●電子商務項目的策劃人員以及日常應用電子商務軟件的技術人員
    建議課時:
     32課時
    學分課建議:
    本課程為電子商務基礎課程,學習本課程不需要任何的基礎,建議院校將此課程設置為大學一年級或者二年級階段的專業必修課,本課程的建議學分設置為3學分。
     SWI-102 IBM基礎課程:電子政務核心知識
     (IBM e-Business Foundation: e-Government Core Knowledge)
    課程介紹:
    本課程是學習電子政務技術應用中的各項核心技術。主要學習與電子政務系統基礎設施和應用的相關知識,是實施電子政務應用的必要基礎。本課程緊緊圍繞電子政務規劃、設計、實施、的各個環節,涉及電子政務架構、基礎設施和資源管理、內容管理和協同、網絡和系統管理、數據表示和交換技術、開發架構和解決方案這七個方面全面介紹當前電子政務實施技術中的關鍵技術。
    通過本課程的學習,可以全面了解掌握電子政務應用系統的體系架構及其相關技術,並能勝任系統的規劃、設計、分析和應用部署。
    課程內容:
     ●電子政務基本概念及架構
     ●電子政務基礎設施及資源管理
     ●主要電子政務解決方案:辦公業務網、政府公眾信息網等等
     ●電子政務系統內容管理和協同
     ●電子政務系統網絡和系統管理
     ●電子政務系統的數據表示、交換技術
     ●電子政務系統開發架構
    適合人群:
     ●各政府單位電子政務管理部門的管理人員
     ●電子政務項目的策劃人員以及日常應用電子政務軟件的技術人員
    建議課時:
     40課時
    學分課建議:
    本課程為電子商務基礎課程,學習本課程不需要任何的基礎,建議院校將此課程設置為大學一年級或者二年級階段的專業必修課,本課程的建議學分設置為3學分。
     
    技術系列課程
    技術系列課程包括電子商務/政務領域內流行的各種相關技術,學習完技術系列課程,學習者可以掌握許多實用技術。該系列課程適合計算機及相關學科學生、電子商務/政務企業內技術人員學習。目前,IBM軟件學院人才培育計劃授權技術系列課程已完成開發的有:
     IBM技術課程:Java 2編程技術基礎
     SWI-202 IBM技術課程:Java 2編程技術基礎
     (IBM e-Business Technology: Java 2 programming Fundamentals)
    課程介紹:
     Java是近年來很流行的一種網絡編程語言,它由C語言發展而來,是完全面向對象的語言。在與網絡的融合中,已顯現出它的強大生命力和廣闊的前景.。 Java的語法簡練,學習和掌握的編程是比較容易的。
    本課程主要介紹Java語言的基礎知識與主要功能,系統分析了Java語言的發展過程及成功因素,從Java語言的基本概念入手,闡述了Java語言的編程機制與技巧,引入Java語言的面向對象編程概念,介紹了對象的含義及如何執行這些概念;包括如何使用java創建packages,如何使用現有核心包、Java 2 Software Development Kit (SDK)以及GUI風格的應用程序格式等。幫助學員完全掌握Java2。
    課程內容:
     ● Java編程語言概述
     ●面向對象編程初步
     ● APLs核心語言,多線程編程
     ● GUI事件編程
     ●流與網絡編程等方面的編程應用技術;
     

    適合人群:
     ●主要適合企事業單位的軟件開發人員以及web應用開發人員
     ●在讀的計算機學生

    建議課時:
     40課時
    學分課建議:
    本課程為電子商務技術類課程,適合有一定的理論基礎的學生修習,建議院校將此課程設置為大學三年級階段的必修課,本課程的建議學分設置為4學分
     SWI-205 IBM技術課程:JSP與Servlet
     (IBM e-Business Technology: Introduction to JavaServer Pages and Servlet)

    課程介紹:
     Servlet是平台獨立的Java服務器端組件。它以多種方式來擴展服務器端的功能,同時將維護和支持的開銷也降到最小。 Servlet不同於CGI腳本,它被編譯成Java的字節碼(bytecode),所以它沒有引入任何與平台有關的因素,從而實現了真正的“Write Once,Run Anywhere”。
     JSP是建立含有動態內容的Web應用程序的Java技術。一個JSP頁面是一個文本文檔,包含了靜態的HTML內容和動態的動作標記。這些動作描述瞭如何處理返回給客戶的響應。在應用開發階段,JSP與Servlet差異很大,然而在運行時,它被編譯成Servlet,在JSP引擎中執行。 JSP引擎存在任何一種Web應用服務器中,如WebSphere V3.x。
    本課程將詳細介紹JSP技術以及Java Servlets,並且探索Servlet和JSP如何協同工作,創建動態Web頁面。
    課程內容:
     ●介紹JSP基礎知識及其生命週期
     ●如何創建Servlets
     ●數據庫,Chaining,安全,java程序,Beans等

    適合人群:
     ●主要適合企事業單位的軟件開發人員以及web應用開發人員
     ●在讀的計算機學生

    建議課時:
     40課時
    學分課建議:
    本課程為電子商務技術類課程,適合有一定的理論基礎的學生修習,建議院校將此課程設置為大學三年級階段的必修課,本課程的建議學分設置為4學分。
    應用系列課程
    應用系列課程中包含了普遍應用於各類電子商務/政務企業內的最新的開發工具,尤其是廣泛使用IBM技術的銀行、稅務等金融系統的技術人員對該系列課程有著極為強烈的需求。目前,IBM軟件學院人才培育計劃授權應用系列課程已經開發完成的有:
     IBM應用課程:開發工具
     SWI-302 IBM應用課程:使用WebSphere Studio開發Web應用程序
     (IBM e-Business Application: Developing Web Application with WebSphere Studio)
    課程介紹:
    電子商務應用是一個龐大的系統工程,中間涉及多種技術的綜合應用: WEB技術、數據庫技術、安全技術等等。其中以J2EE和XML為核心技術的電子商務解決方案是當今的主流技術解決方案。 IBM公司的WebSphere作為一款市場佔有率極高應用服務器產品,以其高性能、高可靠性和高可擴展性深受企業級用戶的青睞。
     WebSphere Studio是IBM專為開發電子商務應用的開發工具。本課程將幫助學員利用強大的WebSphere Studio輕鬆開發出各種電子商務應用。本課程分作三個部分:第一部分是J2EE基本架構和WebSphere Studio的簡單介紹;第二部分詳細講述如何使用WebSphere Studio進行HTML、JSP、Servlet、JDBC的開發;第三部分介紹瞭如何部署和調試各種應用程序。
    課程內容:
     ● Web應用開發簡介
     ● WebSphere Studio開發平台簡介
     ● Java程序開發
     ● Web應用開發:HTML、JSP、Servlet、JDBC
     ●運行部署應用程序
     ●調試

    適合人群:
     ● web應用開發人員
     ●數據庫應用程序開發人員以及在讀計算機系學生

    建議課時:
     40課時
    學分課建議:
    本課程為電子商務應用課程,適合有相當理論及技術基礎的學生學習,以提高實踐能力,建議院校將此課程設置為大學三年級階段的選修課程。本課程的建議學分設置為4學分。
     SWI- 309 IBM應用課程:消息中間件WebSphere MQ入門
     (IBM e-Business Application: Step by step to WebSphere MQ)
    課程介紹:
     IBM WebSphere MQ利用了安全套接層(SSWI)這一Internet安全通訊標準的高級安全性。性能方面的很多增強-尤其是Java?消息服務(JMS),系統的擴展性和可靠性-對於共享負載的系統群集尤其有用。現在的程序員使用API出口來實現監視或本地標準。 WebSphere MQ消息傳遞構成了WebSphere電子商務軟件平台的主要業務集成層。
    本課程是IBM WebSphere MQ的標準學習課程。本課程共分為3部分,第一部分WebSphere MQ原理和體系結構;第二部分WebSphere MQ系統管理,分別介紹安裝、配置、管理、控制命令和問題診斷;第三部分WebSphere MQ應用開發,介紹程序設計、編寫和例子程序。
    課程內容:
     ● WebSphere MQ原理及體系結構
     ● WebSphere MQ的安裝、管理、控制
     ●簡單的WebSphere MQ應用程序設計
     ● WebSphere MQ問題診斷

    適合人群:
     ● WebSphere MQ的初學者
     ● WebSphere MQ的系統管理員及開發者

    建議課時:
     40課時
    學分課建議:
    本課程為電子商務應用課程,適合有相當理論及技術基礎的學生學習,以提高實踐能力,建議院校將此課程設置為大學三年級階段的選修課程。本課程的建議學分設置為4學分。
     SWI-305 IBM應用課程:DB2通用數據庫管理與開發
     (IBM e-Business Application: DB2 UDB Admin & Development)
    課程介紹:
     DB2 UDB v8.1作為世界領先的企業級數據庫,大大簡化了隨時隨地的信息集成,使管理更加自如、資源優化更加自動化,並加強了商務智能方面的功能,大大提高了性能、可伸縮性和可靠性。
    本課程是IBM關係數據庫服務器,即DB2通用數據庫8.1版本的標準課程。本課程分為四個部分:第一部分介紹了DB2 UDB服務器和客戶端的安裝和配置;第二部分介紹結構化查詢語言(SQL)和數據庫並發性;第三部分介紹DB2 UDB數據庫管理,包括創建DB2 UDB及其相關的表空間等;第四部分介紹DB2 UDB應用程序開發。
    課程內容:
     ●增強的管理和服務功能,包括用於存儲管理和監控數據庫狀況的新工具
     ●利用多維集群、改進的預取功能、Java用戶自定義函數與存儲過程的混合使用以及物化查詢表來提高性能
     ●新的安裝嚮導、培植助手、GUI工具以及DB2管理服務器(DAS)的改進
     ●可用性和可伸縮性方面的增強
     ●新的DB2 v8.1扶植和數據倉庫中心
     ●針對開發人員的主要改進,包括SQL、XML、JDBC和CLI

    適合人群:
     ●主要適合企事業單位的數據庫管理員、開發人員
     ●相關專業的在讀人員

    建議課時:
     48課時
    學分課建議:
    本課程為電子商務應用課程,適合有相當理論及技術基礎的學生學習,以提高實踐能力,建議院校將此課程設置為大學三年級階段的選修課程。本課程的建議學分設置為4學分。

  • IBM常見問題答疑

    1 、學完後發什麼證書,有用嗎?
    答:學習完你所選定的課程後,你將獲得印有IBM標識的由IBM中國公司頒發的IBM電子商務專家或IBM電子商務師證書(學習電子政務系列課程對應的是IBM電子政務專家及IBM電子政務工程師)。 IBM品牌形象與社會影響力勿庸質疑,IBM公司又是電子商務領域標準締造者之一,擁有此證書標誌著你在此領域具有能力的可靠性,持有IBM頒發證書將是你在應聘求職時對於個人能力的可靠證明。持有此權威認證將會在畢業後向政府機關、電子政務專業人員、電子商務從業人員、外企大型國企及三資國企、JAVA類開發職位、IBM中間間開發職位就職產生實質作用。
     2、多長時間可以完成學習?
       答:一門課程學習總課時是48個課時,如果報讀週末班需要8週時間,如果報讀晚班需要8週時間,如果報讀白班需要4週時間。課程結束一周後可以報名參加認證考試。
     3、考後多久可以知道成績?
       答:因為認證考試採用聯機考試所以考試結束後馬上可以得知成績。
     4、如果考試不通過怎麼辦?
       答:可以參加一次免費補考,但第二次補考需交納考試認證費。
     5、考試是怎麼考的?
       答:考試是機考方式,採用國際通用形式全部是選擇題,但與微軟、思科不同的是題目採用中文形式。
     6、師資力量如何?
    答:理論基礎與實踐開發經驗是判斷教師能力的關鍵,教授本課程的教師是具備碩士以上的學歷、兩年以上使用IBM技術開發的經驗。同時為了保證教學質量一致性,我們有一套嚴格的教學管理制度管理。從而保證參加本課程學習的學生可以學到高質量標準化的課程。
      
     7、學習完成後可以達到什麼水平?
    答:一般來講,電子商務系列課程每個培訓階段都有不同的培養目標:
     *學習電子商務核心知識:你不僅可以了解到電子商務基本概念及架構,熟悉電子商務核心知識,而且可以掌握主要電子商務解決方案以及IBM產品體系。
     *學習電子政務核心知識:你可以了解到電子政務基本概念及架構,熟悉電子政務基礎設施及資源管理,且還可掌握主要電子政務解決方案及電子政務系統開發架構。
     *學習開發工具:不僅可以了解WEB應用開發簡介,Websphere Studio開發平台簡介,且可以掌握使用JAVA程序開發、WEB應用開發,能運行部署應用程序、調試。
     8、為什麼要學習IBM的電子商務技術?
    答:IBM以其雄厚技術,早在上個世紀就成為計算機科學與技術領域的霸主,在我國各類信息系統中IBM技術已經成為金融、冶金、石化、交通、製造業、物流最核心技術平台,IBM作為電子商務技術的倡導者業已成為標準制訂者,其軟件技術早已成為電子商務領域在架構、開發、管理方面的標準。完成三個層面學習後,你會成為電子商務開發、策劃、管理及應用領域專家,可以使用IBM提供電子商務產品平台為客戶提供低成本高效率的解決方案。
     9、學習完後我能擔任什麼職位?
    答:學習完這些課程後你可以成為政府國家機關、電子商務從業人員;電子政務從業人員;外企大型國企、三資企業;JAVA類語言開發人員;IBM中間件開發人員中的一員。

  • IBM Workplace革命性的技術

    IBM Workplace代表了IBM注重提高員工生產力的、現存的或新增的全部產品。 IBM Workplace包括了Lotus workplace、WebSphere Portal、Lotus Notes/Domino和WebSphere Everyplace,目前對這些產品提供了新的客戶端技術。這種技術將用戶使用客戶端/服務器的經驗與網絡應用的成本特點相結合,可以幫助用戶在這兩方面都獲得最大的利益。

     IBM Workplace定義

     IBM Workplace是一種新的計算模式,由一系列的產品和技術組成,提供了由服務器管理的豐富的用戶端體驗:它可以

     ●支持不同種類的用戶端設備,包括桌面系統、PDA、手機以及其他移動設備

     ●根據不同用戶的需要提供基於角色的用戶端界面

     ●提供一個集成的工作場所,以最方便和更低成本的方式加強人員之間的溝通與協作,提供各類用戶對於流程、應用和信息的便利訪問。

     IBM Workplace代表了IBM注重提高員工生產力的、現存的或新增的全部產品。 IBM Workplace包括了Lotus workplace、WebSphere Portal、Lotus Notes/Domino和WebSphere Everyplace。

     IBM Workplace Client Technology的定義

    它是一種支持技術(enabling technology),可以為包括IBM在內的各個軟件廠商、最終客戶和各種應用開發商提供一種新的途徑,以集中的方式來開發、部署和管理豐富的終端用戶應用。 IBM Workplace支持IBM Workplace總體策略,結合客戶機/服務器以及瀏覽器兩種客戶端計算模式的長處,帶給最終用戶動態的、方便的、愉快的用戶端體驗(不同設備、不同訪問模式、集中訪問各類不同的應用)。既為用戶提供豐富的本地快速處理,又支持服務器的集中管理模式。 IBM Workplace客戶端技術在部署新型的客戶端計算模式方面給用戶帶來了更多的選擇。

     IBM Client Technology與IBM Workplace關係

     IBM Client Technology支持IBM Workplace總體策略,結合Client/Server和Browser二者之優勢,為客戶提供更多的選擇以創建動態工作場所。

     IBM Workplace產品和Lotus Workplace產品之間的關係

     IBM Workplace——作為IBM軟件業務的客戶端產品,關注的是人們生產力的創新。 IBM Workplace是一種用於服務器管理的可選客戶端模型和產品,它支持多用戶類型、用戶體驗、站點訪問,並且提供靈活的和高成本效益的對人群、業務流程、應用軟件和內容進行訪問的多種形式的連接性。靈活性和可選性,是IBM Workplace產品的主要特點。我們對於工作場所(workplace)的期望是,人們可以基於任何一個操作系統,在一天中的任何時間使用他們選擇的任何一個接入點,這可以給他們的業務經營帶來最高的效率;可以隨時隨地為他們提供對人群、信息和業務軟件的訪問服務。

     IBM Workplace系列產品包括IBM Lotus Notes/Domino軟件、WebSphere Portal軟件、Lotus Workplace軟件和WebSphere Everyplace軟件,每一種產品在整個IBM Workplace模型中都扮演一種獨特的角色。 Lotus Workplace的任務就是提供一種集成的協作產品,它可以通過服務器管理的客戶端軟件,利用單一的、一致的用戶體驗把人和業務流程聯繫起來。

     IBM Workplace帶給客戶的價值

     1.創新

    幫助客戶不斷地尋求新的方法來創造競爭優勢,優化業務流程和降低成本。 IBM在軟件產品研發上不斷創新。 IBM Workplace為客戶和合作夥伴建立創新應用提供了工具。

     2.提升商業價值

     ●為客戶提供真正的商業價值

     ●幫助客戶努力改進對於市場的反應速度和能力,改善商業運作環境

     ●幫助客戶打破地域的限制,保持人員之間的互連,儘管各式各樣的硬件設備不斷湧現,仍可使相關團隊進退如一。

     3.降低擁有成本

    為客戶提供新的方式來管理自己的IT架構,以達到只為自己使用的或將要使用的應用付費的目的。在幫助客戶提高企業運作效率的同時降低成本,如出差的花費。更重要的是,保護和擴展客戶已有的投資。

  • 淺談: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)

  • CCIE與CCNP有何不同

    CCIE與CCNP二者有何不同?看上去對二者推薦的培訓路徑幾乎相同。

    答:CCIE與CCNP認證這二者關鍵的不同在於工作經歷的不同。 CCIE認證中有一項測試考生對於現實世界知識與能力的,要求在專家級水平的基於實驗的實際操作考試。而且要求考生在試圖參加CCIE認證考試前具有2年的業界工作經歷。

  • CCIE認證考試複習(筆試)

    看到很多人想考CCIE,但是看了很多文章,發現很多人對CCIE的考試和其他情況不清楚,甚至有很多謠傳,我想在這裡談談我的看法。

         CCIE全稱Cisco Certified Internetwork Expert.既然敢稱expert那應該水平不低。 (當然那個MCSX的也敢說是expert,可惜現在有越來越多的初學者一兩個月就搞定了,已經都泛了).Cisco的考試一向比較嚴謹(當然現在CCNA系列,比較象MCSX那樣,估計也要氾濫了).

         CCIE的人數,由於每天都可能有幾個人過(全世界哦),所以很不確定.按基本增長的情況和我了解的情況。全世界現在應該有3700人到3800人左右,中國的CCIE人數應該已經突破60人了,據說Cisco想限制CCIE的人數,雖然是道聽途說,但是從考試的變化來看,似乎有這樣的跡象。在這裡要談一個很重要的概念:CCIE的Active和Deactive狀態.CCIE的編號是不斷增長的,前面所說的人數,是總通過的人數。但是Cisco為了保證CCIE的質量,每兩年,CCIE必須要重新認證一次.否則你仍然是CCIE(編號仍然保留),但你的狀態就是deactiv的.除了名譽外,再無法得到其他active時的特權了.

         CCIE分為三類:
         1. Routing & Switching
         2. ISP & dial
         3. Wan Switching

        如果想在中國考試,那就只能考Routing & Switching.現在全世界CCIE99.9%都是Routing&Switching的。其他兩個剛開不久。

        怎樣複習可以通過筆試?

         CCIE的考試分為兩大部分筆試和實驗室考試(其實按難度來算,筆試只能佔10%,呵呵).筆試在所有註冊了sylvan考試中心的考點應該都能考,費用是200$(不僅比MCSE難,而且貴).為了通過筆試,你要對哪些熟悉呢?你可以看看www.cisco.com上關於CCIE認證的一章。那上面列出的範圍,你看過後肯定就會有一種感覺:完蛋了! ! ! !當然實際情況呢?很難說,由於是計算機出題,可能會抽到難點的題目也可能簡單點。但是,如果你真的很想通過CCIE考試的話,那就請你認真的看每個部分,如果報有僥倖心理,有可能蒙混過關,但是十有八九要再考幾回。

        另外還有一點:CCIE考試必須先考筆試,再考實驗.

         CCIE筆試考試是3個小時,100道客觀題目。有大約30-40%多選.題目範圍很廣(雖然不可能覆蓋到cisco主頁上說的那些內容,但也差不多了).通過分數為70分(去年還65分呢,你看,Cisco是不是想限制CCIE人數呢,內容變多了,通過分數卻變高了).為了通過筆試,你一般要看什麼書呢?如果你去Cisco培訓中心上課的話,那一門就大概1萬元要有思想準備哦.我推薦以下幾門課:

         1.ICRC (如果你對網絡和Cisco路由器不熟悉的話)
         2.ACRC
         3.SNAM (這個很重要,你去考試的時候就知道為什麼重要了)

        從難度上說,筆試只佔10%

        如果你終於通過了Cisco筆試,哈哈。 。 。 。 。 。 。別高興太早了:-)我前面就說過,筆試在整個CCIE考試,如果按過程來算,你已經通過了50%,如果按難度來算,你只通過了10%.下面的實驗室考試才是真正的考驗呢.這也是CCIE考試的特點,也是CCIE一直作為網絡界最高認證的原因。

  • CCIE口語考試試題

    思科官方宣布從2009年2月1日起,CCIE路由交換的實驗考試增加了口語部分,下面是轉載自國外一個BLOG的一些口語的試題:
    Bridging and Switching
    Explain the advantages of MSTP (802.1s).
    Explain the advantages of RSTP (802.1w).
    Explain the differences between 802.1Q and ISL.
    IP IGP Routing
    Explain the advantages presented by the DUAL algorithm in EIGRP.
    Why does OSPF use a DR in an Ethernet LAN environment?
    Why does OSPF feature different network types for use in an NBMA area of your network?
    BGP
    What issues can the use of a peer group solve in BGP?
    IP and IOS Features
    How can a Cisco router assist a client PC to obtain a DHCP address from a DHCP server located on a remote subnet?
    What issue does HSRP help solve?
    IP Multicast
    Discuss issues that exist with the PIM Dense-Mode protocol.
    QoS
    Describe differences between Custom Queuing and Class-Based Weighted Fair Queuing.
    What are the advantages presented by DSCP markings when compared to the legacy IP Precedence approach?
    Security
    Describe the basic operation of CBAC on a Cisco router.

  • CCIE考試必備CCIE LAB刷位置教程

    註冊CCO帳號:
    瀏覽器內輸入思科官方網站:http://www.cisco.com ,會出現其界面:

    003 

    點擊-【Register】-註冊,會出現其界面:002 
     

    004 

     

    請按思科的要求填寫相應的選項,【注意:請使用英文,中文無法完成註冊】,填寫完成後點
    擊【Submit】確認完成註冊。完成後會有一個提示,這個時候你就可以去你的郵箱查看思科
    發給你的郵件,按相應要求激活你的CCO帳號即可。
    CCIE candidate刷位置過程
    請點擊倒數第二項【Training&Events】,會出現其界面,請點擊【Training&Events】
    會出現其界面,請點擊【Certifications】(圖中黃色位置)
    會出現其界面,請點擊【CCIE Routing & Switching】(圖中黃色位置)(這里以路由交換CCIE為例,如果不是請選擇其他)
    會出現其界面,請點擊【Schedule and Pay for Lab Exam】(圖中黃色位置)
    會出現其界面,請點擊【Scheduling & Payment】(圖中黃色位置)
    會出現其界面,請點擊【Schedule a Lab Exam Online】(圖中黃色位置)
    會出現其界面,請使用您剛才註冊的CCO帳號登錄。
    登錄成功後,會出現其界面,請在相應的文本框裡輸入對應的信息(信息見筆試成績單)
    輸入完成後,點擊【LOGIN】登錄。會出現其界面,點擊【Schedule a Lab Exam】(圖中黃色位置)
    完成後會出現其界面,請正確填寫相應的信息[好像這個是收CCIE證書的信息,所以請認真對待](注意途中為一部分),填寫完成後,請點擊【Confirm】確認,還會出現一個確定的窗口,如果無誤,請點擊【Confirm】確認。完成後會出現其界面。
    請填寫文本框內的相應信息(圖中方框內位置)。這裡做一下解釋:
    Lab Exam Location:考點的選擇
    Earliest lab date:你想預訂什麼時候的位置,這個是最早的時間
    Lab type:考試類型,比如Routing & Switching
    輸入完相應的信息後點擊【Show Available Lab Date】,會出現其界面。