<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    BlogJava 聯(lián)系 聚合 管理  

    Blog Stats

    隨筆檔案

    exams


    java世界

    世界Java

    2008年1月7日 #

    1.錯(cuò)誤提示內(nèi)容:Can‘t find class HelloworldApp
    

      解釋:(當(dāng)鍵入java HelloWorldApp時(shí)發(fā)生該錯(cuò)誤。)

      系統(tǒng)找不到名為HelloWorldApp的類文件。一般地,該錯(cuò)誤意味著類名拼寫和源文件名不一樣,系統(tǒng)創(chuàng)建filename.class文件時(shí)使用的是類定義的名字,并且區(qū)分大小寫。

      例如:

      class HelloWorldapp(…)

      經(jīng)編譯后將創(chuàng)建HelloWorldapp.class類。執(zhí)行時(shí),也要使用這個(gè)名字。發(fā)生這個(gè)錯(cuò)誤時(shí),可以使用文件查看命令I(lǐng)s或dir看看當(dāng)前目錄下是否存在相應(yīng)的文件,并檢查文件名的大小寫。

      2.錯(cuò)誤提示內(nèi)容:In class HelloWorldApp:main must be public and static

      解釋:如果main()方法的左側(cè)缺少static或public,會(huì)發(fā)生這個(gè)錯(cuò)誤。前面已經(jīng)解釋過對(duì)main()方法前面的修飾符有特殊的要求。

      3.文件中含有的類個(gè)數(shù)錯(cuò)誤

      解釋:按照J(rèn)ava規(guī)則,在一個(gè)源文件中最多只能定義一個(gè)公有類,否則會(huì)發(fā)生運(yùn)行時(shí)錯(cuò)誤。如果一個(gè)應(yīng)用系統(tǒng)中有多個(gè)公有類,則要把它們分別放在各自不同的文件中。文件中非公有類的個(gè)數(shù)不限。

      4.層次錯(cuò)誤

      解釋:一個(gè)。java源文件可以含有三個(gè)“頂層”元素,這三個(gè)元素是:

      (1)一個(gè)包說明,即package語句,包說明是可選的。

      (2)任意多個(gè)引入語句,即import語句。

      (3)類和接口說明。

      這些語句必須按一定的次序出現(xiàn),即,引入語句必須出現(xiàn)在所有的類說明之前,如果使用了包說明,則它必須出現(xiàn)在類說明和引入語句之前。

      例如,下面是正確的語句序列:

      package Transportation;

      import jaya.awt.Graphics

      import jays.applet.Applet;

      下面是兩例錯(cuò)誤的語句順序:

      import java.aWt.Graphics

      import java.applet.Applet;

      package Transportation;

      該例中在包說明語句之前含有其他語句。

      package Transportation;

      package House;

      import java.applet.Applet;

      該例中含有兩個(gè)包說明語句。HP0-345 HP0-634

    1.錯(cuò)誤提示內(nèi)容:Can‘t find class HelloworldApp

      解釋:(當(dāng)鍵入java HelloWorldApp時(shí)發(fā)生該錯(cuò)誤。)

      系統(tǒng)找不到名為HelloWorldApp的類文件。一般地,該錯(cuò)誤意味著類名拼寫和源文件名不一樣,系統(tǒng)創(chuàng)建filename.class文件時(shí)使用的是類定義的名字,并且區(qū)分大小寫。

      例如:

      class HelloWorldapp(…)

      經(jīng)編譯后將創(chuàng)建HelloWorldapp.class類。執(zhí)行時(shí),也要使用這個(gè)名字。發(fā)生這個(gè)錯(cuò)誤時(shí),可以使用文件查看命令I(lǐng)s或dir看看當(dāng)前目錄下是否存在相應(yīng)的文件,并檢查文件名的大小寫。

      2.錯(cuò)誤提示內(nèi)容:In class HelloWorldApp:main must be public and static

      解釋:如果main()方法的左側(cè)缺少static或public,會(huì)發(fā)生這個(gè)錯(cuò)誤。前面已經(jīng)解釋過對(duì)main()方法前面的修飾符有特殊的要求。

      3.文件中含有的類個(gè)數(shù)錯(cuò)誤

      解釋:按照J(rèn)ava規(guī)則,在一個(gè)源文件中最多只能定義一個(gè)公有類,否則會(huì)發(fā)生運(yùn)行時(shí)錯(cuò)誤。如果一個(gè)應(yīng)用系統(tǒng)中有多個(gè)公有類,則要把它們分別放在各自不同的文件中。文件中非公有類的個(gè)數(shù)不限。

      4.層次錯(cuò)誤

      解釋:一個(gè)。java源文件可以含有三個(gè)“頂層”元素,這三個(gè)元素是:

      (1)一個(gè)包說明,即package語句,包說明是可選的。

      (2)任意多個(gè)引入語句,即import語句。HP0-645 HP0-661

      (3)類和接口說明。

      這些語句必須按一定的次序出現(xiàn),即,引入語句必須出現(xiàn)在所有的類說明之前,如果使用了包說明,則它必須出現(xiàn)在類說明和引入語句之前。

      例如,下面是正確的語句序列:

      package Transportation;

      import jaya.awt.Graphics

      import jays.applet.Applet;

      下面是兩例錯(cuò)誤的語句順序:

      import java.aWt.Graphics

      import java.applet.Applet;

      package Transportation;

      該例中在包說明語句之前含有其他語句。

      package Transportation;

      package House;

      import java.applet.Applet;

      該例中含有兩個(gè)包說明語句。

    posted @ 2008-03-01 09:55 java2java 閱讀(1251) | 評(píng)論 (1)編輯 收藏

    一 JAVA 類中
    1。取出指定所在類的路徑

    class A {
    String getPath() {
         return this.getClass().getClassLoader().getSystemResource("A").getPath();
        }
    }

    2。取出類ClassLoader的開始路徑(執(zhí)行路徑)
    //String preUri=this.getClass().getClassLoader().getResource("").getPath();

    比如WebApp的項(xiàng)目,以下的指令得出的結(jié)果就是

    /D:/project/crFj163Web/web/exploded/WEB-INF/classes/

    比如你是純java的程序,就是你執(zhí)行java指令的當(dāng)前路徑

    3。取出jdk所在的bin目錄

    //得到當(dāng)前用戶路徑,執(zhí)行路徑 System.getProperty(”user.dir”)

    其中user.dir是一個(gè)參數(shù),更多參數(shù)請(qǐng)看這里

    二、jsp/servlet 中的取路徑

    以前我們常用getRealPath(),不過這個(gè)方法已經(jīng)不推薦用了。但我們可以使用request.getContextPath().另外還有request.getRequestURL() 或者request.getRequestURI()。下面舉例,以建立一個(gè)app1的webapp為例

    1。request.getContextPath()打印出來的是

    /app1

    2。request.getRequestURL() 打印出來的是

    http://localhost:8080/app1/index.jsp

    3。request.getRequestURI() 打印出來的是

    /app1/index.jsp

    轉(zhuǎn)載(  190-721 000-746 )
    posted @ 2008-01-10 11:35 java2java 閱讀(1217) | 評(píng)論 (0)編輯 收藏

     
    import java.sql.*;

    public class Create {
    public Create() {
    }
    public static void main(String[] args){
    String url = "jdbc:oracle:thin:@10.0.1.3:1521:SDCDB";
    String query = "CREATE TABLE MYFIRST" + "(id INT,name CHAR(10))";
    String sql="insert into MYFIRST values(''1'',''liming'')";
    String sql1="insert into MYFIRST values(''2'',''mm'')";
    String sql2="delete MYFIRST where id=2";
    try
    {
    Class.forName("oracle.jdbc.driver.OracleDriver");
    Connection conn = DriverManager.getConnection(url, "test", "test");
    Statement stmt = conn.createStatement();
    stmt.executeUpdate(query);
    stmt.executeUpdate(sql);
    stmt.executeUpdate(sql1);
    stmt.executeUpdate(sql2);
    System.out.println("Create Success!");
    stmt.close();
    conn.close();
    }
    catch(java.lang.ClassNotFoundException e){
    System.err.print(e.getMessage());
    }
    catch(SQLException ex){
    System.out.println("\n***SQLException caught ***\n");
    }
    }
    }
    posted @ 2008-01-10 10:54 java2java 閱讀(1725) | 評(píng)論 (0)編輯 收藏

     Sun Java認(rèn)證分為兩個(gè)級(jí)別:Sun 認(rèn)證Java程序員和Sun 認(rèn)證Java開發(fā)員。Sun 認(rèn)證Java程序員考試內(nèi)容涉及Java所有相關(guān)知識(shí)、編程概念及applet開發(fā)技巧。Sun認(rèn)證Java程序員考試旨在考察您通過應(yīng)用軟件分配進(jìn)行復(fù)雜編程的能力。之后還要測(cè)試您完成編程所需的知識(shí)。每次考試都包括65道以上的多項(xiàng)選擇題,時(shí)間大約為90分鐘。考試合格后由Sun公司頒發(fā)的國際通用的Java程序員證書。

       Java程序員
       概述:本課程使學(xué)員掌握如何使用標(biāo)準(zhǔn)Java Development kit(JDK)開發(fā)應(yīng)用程序和applets。在本課程中您將學(xué)會(huì)Java語言的語法。如何使用Java來創(chuàng)建圖形用戶接口(GUI),事件處理機(jī)制,例外處理,通過設(shè)計(jì)與開發(fā)各種Java程序來獲得實(shí)際的編程經(jīng)驗(yàn)。您也將學(xué)到文件輸入/輸出(I/O),多線程和網(wǎng)絡(luò)的知識(shí)。

       目標(biāo):本課程完成后,您將具備以下能力:
       使用Java編程語言創(chuàng)建Java應(yīng)用程序和applets
       定義和描述垃圾搜集,安全性和Java虛擬機(jī)(JVM)
       描述和使用Java語言面向?qū)ο蟮奶攸c(diǎn);開發(fā)圖形用戶接口(GUI)
       利用Java支持的多種布局管理
       描述和使用 Java的事件處理模式
       使用Java語言的鼠標(biāo)輸入,文本,窗口和菜單窗口部件
       使用Java的例外處理來控制程序執(zhí)行和定義用戶自己的例外事件
       使用Java語言的先進(jìn)的面向?qū)ο筇攸c(diǎn),包括方法重載,方法覆蓋,抽象類,接口,final,static和訪問控制;實(shí)現(xiàn)文件的輸入輸出(I/O)
       使用Java語言內(nèi)在的線程模式來控制多線程
       使用Java的Sockets機(jī)制進(jìn)行網(wǎng)絡(luò)通信
       預(yù)備知識(shí):熟悉DOS操作,用過WINDOWS并能用C或C++編程。

       Java開發(fā)員
       概述:本課程將提供給學(xué)員設(shè)計(jì)資料服務(wù)器應(yīng)用法的實(shí)際設(shè)計(jì)方法,學(xué)員將使用Java聲音、圖形、網(wǎng)絡(luò)通訊等接口,編寫與服務(wù)器相連接的Java應(yīng)用程度,通過本課程學(xué)員還能學(xué)到如何在Java程序中調(diào)用本機(jī)用其它計(jì)算機(jī)語言編寫的程序 117-102 117-301 190-721 。

       本課程是為熟悉Java語言結(jié)構(gòu)及語法的程序員而設(shè)立的。以便他們能在本課程中獲得開發(fā)復(fù)雜的、產(chǎn)品級(jí)的Java應(yīng)用技術(shù)。
       目標(biāo):在學(xué)完本課程后,學(xué)員將能夠:
       設(shè)計(jì)和開發(fā)Java GUI
       設(shè)計(jì)和開發(fā)動(dòng)畫Java應(yīng)用程序
       掌握了Java網(wǎng)絡(luò)編程技術(shù)
       懂得了JDBC-API的基本結(jié)構(gòu)
       知道UNIX與Windows NT互連有哪些技術(shù)問題
       能夠解釋在Java程序中調(diào)用其它語言所編寫的程序的方法與步驟

       Sun認(rèn)證Java程序員考試(JDK1.1)由一門考試組成,可以用來測(cè)試考生對(duì)Java語言的掌握程度。考生可以使用考試大綱(exam objectives)作為準(zhǔn)備考試的工具。
       為了保證Sun客戶使用的是Sun的最新技術(shù),Sun Educational Services已經(jīng)把Sun認(rèn)證Java程序員考試更新為JDK1.1。

       考試細(xì)則
       考試名稱:
       The Sun Certified Java Programmer for JDK 1.1
       考試號(hào):
       310-022(IBM考生除外),310-023(只對(duì)IBM考生)
       推薦教材:
       SL-275 “Java Programming(UNIX)”
       SL-276“Java Progrmming(Windows 95)”
       JTL-SL-275“Java Tutor:Java Programming Library”
       題數(shù):60
       考題類型:多選/簡(jiǎn)答
       通過分?jǐn)?shù): 70%
       考試時(shí)間: 2小時(shí)
       考試費(fèi)用: $150
    posted @ 2008-01-07 10:11 java2java 閱讀(563) | 評(píng)論 (2)編輯 收藏

    在ChinaITLAB導(dǎo)師制輔導(dǎo)中,筆者發(fā)現(xiàn)問得最多的問題莫過于"如何學(xué)習(xí)編程?JAVA該如何學(xué)習(xí)?"。類似的問題回答多了,難免會(huì)感覺厭煩,就萌生了寫下本文的想法。到時(shí)候再有人問起類似的問題,我可以告訴他(她),請(qǐng)你去看看《JAVA學(xué)習(xí)之路》。拜讀過臺(tái)灣蔡學(xué)鏞先生的《JAVA夜未眠》,有些文章如《JAVA學(xué)習(xí)之道》等讓我們確實(shí)有共鳴,本文題目也由此而來。
      軟件開發(fā)之路是充滿荊棘與挑戰(zhàn)之路,也是充滿希望之路。JAVA學(xué)習(xí)也是如此,沒有捷徑可走。夢(mèng)想像《天龍八部》中虛竹一樣被無崖子醍醐灌頂而輕松獲得一甲子功力,是很不現(xiàn)實(shí)的。每天仰天大叫"天神啊,請(qǐng)賜給我一本葵花寶典吧",殊不知即使你獲得了葵花寶典,除了受自宮其身之苦外,你也不一定成得了"東方不敗",倒是成"西方失敗"的幾率高一點(diǎn)。
      "不走彎路,就是捷徑",佛經(jīng)說的不無道理。
      1.如何學(xué)習(xí)程序設(shè)計(jì)?
      JAVA是一種平臺(tái),也是一種程序設(shè)計(jì)語言,如何學(xué)好程序設(shè)計(jì)不僅僅適用于JAVA,對(duì)C++等其他程序設(shè)計(jì)語言也一樣管用。有編程高手認(rèn)為,JAVA也好C也好沒什么分別,拿來就用。為什么他們能達(dá)到如此境界?我想是因?yàn)榫幊陶Z言之間有共通之處,領(lǐng)會(huì)了編程的精髓,自然能夠做到一通百通。如何學(xué)習(xí)程序設(shè)計(jì)理所當(dāng)然也有許多共通的地方。
      1.1 培養(yǎng)興趣
      興趣是能夠讓你堅(jiān)持下去的動(dòng)力。如果只是把寫程序作為謀生的手段的話,你會(huì)活的很累,也太對(duì)不起自己了。多關(guān)心一些行業(yè)趣事,多想想蓋茨。不是提倡天天做白日夢(mèng),但人要是沒有了夢(mèng)想,你覺得有味道嗎?可能像許多深圳本地農(nóng)民一樣,打打麻將,喝喝功夫茶,拜拜財(cái)神爺;每個(gè)月就有幾萬十幾萬甚至更多的進(jìn)帳,憑空多出個(gè)"食利階層"。你認(rèn)為,這樣有味道嗎?有空多到一些程序員論壇轉(zhuǎn)轉(zhuǎn),你會(huì)發(fā)現(xiàn),他們其實(shí)很樂觀幽默,時(shí)不時(shí)會(huì)冒出智慧的火花。
      1.2 慎選程序設(shè)計(jì)語言
      男怕入錯(cuò)行,女怕嫁錯(cuò)郎。初學(xué)者選擇程序設(shè)計(jì)語言需要謹(jǐn)慎對(duì)待。軟件開發(fā)不僅僅是掌握一門編程語言了事,它還需要其他很多方面的背景知識(shí)。軟件開發(fā)也不僅僅局限于某幾個(gè)領(lǐng)域,而是已經(jīng)滲透到了各行各業(yè)幾乎每一個(gè)角落。
      如果你對(duì)硬件比較感興趣,你可以學(xué)習(xí)C語言/匯編語言,進(jìn)入硬件開發(fā)領(lǐng)域。如果你對(duì)電信的行業(yè)知識(shí)及網(wǎng)絡(luò)比較熟悉,你可以在C/C++等之上多花時(shí)間,以期進(jìn)入電信軟件開發(fā)領(lǐng)域。如果你對(duì)操作系統(tǒng)比較熟悉,你可以學(xué)習(xí)C/Linux等等,為Linux內(nèi)核開發(fā)/驅(qū)動(dòng)程序開發(fā)/嵌入式開發(fā)打基礎(chǔ)。如果你想介入到應(yīng)用范圍最廣泛的應(yīng)用軟件開發(fā)(包括電子商務(wù)電子政務(wù)系統(tǒng))的話,你可以選擇J2EE或.NET,甚至LAMP組合。每個(gè)領(lǐng)域要求的背景知識(shí)不一樣。做應(yīng)用軟件需要對(duì)數(shù)據(jù)庫等很熟悉。總之,你需要根據(jù)自己的特點(diǎn)來選擇合適你的編程語言。
      1.3 要腳踏實(shí)地,快餐式的學(xué)習(xí)不可取
      先分享一個(gè)故事。
      有一個(gè)小朋友,他很喜歡研究生物學(xué),很想知道那些蝴蝶如何從蛹?xì)だ锍鰜恚兂珊銜?huì)飛。  有一次,他走到草原上面看見一個(gè)蛹,便取了回家,然后看著,過了幾天以后,這個(gè)蛹出了一條裂痕,看見里面的蝴蝶開始掙扎,想抓破蛹?xì)わw出來。  這個(gè)過程達(dá)數(shù)小時(shí)之久,蝴蝶在蛹里面很辛苦地拼命掙扎,怎么也沒法子走出來。這個(gè)小孩看著看著不忍心,就想不如讓我?guī)蛶退桑汶S手拿起剪刀在蛹上剪開,使蝴蝶破蛹而出。  但蝴蝶出來以后,因?yàn)槌岚虿粔蛄Γ兊煤苡纺[,飛不起來。
      這個(gè)故事給我們的啟示是:欲速則不達(dá)。
      浮躁是現(xiàn)代人最普遍的心態(tài),能怪誰?也許是貧窮落后了這么多年的緣故,就像當(dāng)年的大躍進(jìn)一樣,都想大步跨入共產(chǎn)主義社會(huì)。現(xiàn)在的軟件公司、客戶、政府、學(xué)校、培訓(xùn)機(jī)構(gòu)等等到處彌漫著浮躁之氣。就拿筆者比較熟悉的深圳IT培訓(xùn)行業(yè)來說吧,居然有的打廣告宣稱"參加培訓(xùn),100%就業(yè)",居然報(bào)名的學(xué)生不少,簡(jiǎn)直是藐視天下程序員。社會(huì)環(huán)境如是,我們不能改變,只能改變自己,鬧市中的安寧,彌足珍貴。許多初學(xué)者C++/JAVA沒開始學(xué),立馬使用VC/JBuilder,會(huì)使用VC/JBuilder開發(fā)一個(gè)Hello  World程序,就忙不迭的向世界宣告,"我會(huì)軟件開發(fā)了",簡(jiǎn)歷上也大言不慚地寫上"精通VC/JAVA"。結(jié)果到軟件公司面試時(shí)要么被三兩下打發(fā)走了,要么被駁的體無完膚,無地自容。到處碰壁之后才知道捧起《C++編程思想》《JAVA編程思想》仔細(xì)鉆研,早知如此何必當(dāng)初呀。
      "你現(xiàn)在講究簡(jiǎn)單方便,你以后的路就長了",好象也是佛經(jīng)中的勸戒。
      1.4 多實(shí)踐,快實(shí)踐
      彭端淑的《為學(xué)一首示子侄》中有窮和尚與富和尚的故事。
      從前,四川邊境有兩個(gè)和尚,一個(gè)貧窮,一個(gè)有錢。一天,窮和尚對(duì)富和尚說:"我打算去南海朝圣,你看怎么樣?"富和尚說:"這里離南海有幾千里遠(yuǎn),你靠什么去呢?"窮和尚說:"我只要一個(gè)水缽,一個(gè)飯碗就夠了。"富和尚為難地說:"幾年前我就打算買條船去南海,可至今沒去成,你還是別去吧!"  一年以后,富和尚還在為租賃船只籌錢,窮和尚卻已經(jīng)從南海朝圣回來了。
      這個(gè)故事可解讀為:任何事情,一旦考慮好了,就要馬上上路,不要等到準(zhǔn)備周全之后,再去干事情。假如事情準(zhǔn)備考慮周全了再上路的話,別人恐怕捷足先登了。軟件開發(fā)是一門工程學(xué)科,注重的就是實(shí)踐,"君子動(dòng)口不動(dòng)手"對(duì)軟件開發(fā)人員來講根本就是錯(cuò)誤的,他們提倡"動(dòng)手至上",但別害怕,他們大多溫文爾雅,沒有暴力傾向,雖然有時(shí)候蓬頭垢面的一副"比爾蓋茨"樣。有前輩高人認(rèn)為,學(xué)習(xí)編程的秘訣是:編程、編程、再編程,筆者深表贊同。不僅要多實(shí)踐,而且要快實(shí)踐。我們?cè)诳磿臅r(shí)候,不要等到你完全理解了才動(dòng)手敲代碼,而是應(yīng)該在看書的同時(shí)敲代碼,程序運(yùn)行的各種情況可以讓你更快更牢固的掌握知識(shí)點(diǎn)。
      1.5 多參考程序代碼
      程序代碼是軟件開發(fā)最重要的成果之一,其中滲透了程序員的思想與靈魂。許多人被《仙劍奇?zhèn)b傳》中凄美的愛情故事感動(dòng),悲劇的結(jié)局更有一種缺憾美。為什么要以悲劇結(jié)尾?據(jù)說是因?yàn)閷憽断蓜ζ鎮(zhèn)b傳》的程序員失戀而安排了這樣的結(jié)局,他把自己的感覺融入到游戲中,卻讓眾多的仙劍迷扼腕嘆息。
      多多參考代碼例子,對(duì)JAVA而言有參考文獻(xiàn)[4.3],有API類的源代碼(JDK安裝目錄下的src.zip文件),也可以研究一些開源的軟件或框架。
      1.6 加強(qiáng)英文閱讀能力
      對(duì)學(xué)習(xí)編程來說,不要求英語,  但不能一點(diǎn)不會(huì),。最起碼像JAVA  API文檔(參考文獻(xiàn)[4.4])這些東西還是要能看懂的,連猜帶懵都可以;旁邊再開啟一個(gè)"金山詞霸"。看多了就會(huì)越來越熟練。在學(xué)JAVA的同時(shí)學(xué)習(xí)英文,一箭雙雕多好。另外好多軟件需要到英文網(wǎng)站下載,你要能夠找到它們,這些是最基本的要求。英語好對(duì)你學(xué)習(xí)有很大的幫助。口語好的話更有機(jī)會(huì)進(jìn)入管理層,進(jìn)而可以成為剝削程序員的"周扒皮"。
      1.7 萬不得已才請(qǐng)教別人
      筆者在ChinaITLab網(wǎng)校的在線輔導(dǎo)系統(tǒng)中解決學(xué)生問題時(shí)發(fā)現(xiàn),大部分的問題學(xué)生稍做思考就可以解決。請(qǐng)教別人之前,你應(yīng)該先回答如下幾個(gè)問題。
      你是否在google中搜索了問題的解決辦法?
      你是否查看了JAVA  API文檔?
      你是否查找過相關(guān)書籍?
      你是否寫代碼測(cè)試過?
      如果回答都是"是"的話,而且還沒有找到解決辦法,再問別人不遲。要知道獨(dú)立思考的能力對(duì)你很重要。要知道程序員的時(shí)間是很寶貴的。
      1.8 多讀好書
      書中自有顏如玉。比爾?蓋茨是一個(gè)飽讀群書的人。雖然沒有讀完大學(xué),但九歲的時(shí)候比爾?蓋茨就已經(jīng)讀完了所有的百科全書,所以他精通天文、歷史、地理等等各類學(xué)科,可以說比爾?蓋茨不僅是當(dāng)今世界上金錢的首富,而且也可以稱得上是知識(shí)的巨富。
      筆者在給學(xué)生上課的時(shí)候經(jīng)常會(huì)給他們推薦書籍,到后來學(xué)生實(shí)在忍無可忍開始抱怨,"天吶,這么多書到什么時(shí)候才能看完了","學(xué)軟件開發(fā),感覺上了賊船"。這時(shí)候,我的回答一般是,"別著急,什么時(shí)候帶你們?nèi)タ纯次业臅浚浆F(xiàn)在每月花在技術(shù)書籍上的錢400元,這在軟件開發(fā)人員之中還只能夠算是中等的",學(xué)生當(dāng)場(chǎng)暈倒。(注:這一部分學(xué)生是剛學(xué)軟件開發(fā)的)
      對(duì)于在JAVA開發(fā)領(lǐng)域的好書在筆者另外一篇文章中會(huì)專門點(diǎn)評(píng)。該文章可作為本文的姊妹篇。
      1.9 使用合適的工具
      工欲善其事必先利其器。軟件開發(fā)包含各種各樣的活動(dòng),需求收集分析、建立用例模型、建立分析設(shè)計(jì)模型、編程實(shí)現(xiàn)、調(diào)試程序、自動(dòng)化測(cè)試、持續(xù)集成等等,沒有工具幫忙可以說是寸步難行。工具可以提高開發(fā)效率,使軟件的質(zhì)量更高BUG更少。組合稱手的武器。到飛花摘葉皆可傷人的境界就很高了,無招勝有招,手中無劍心中有劍這樣的境界幾乎不可企及。在筆者另外一篇文章中會(huì)專門闡述如何選擇合適的工具(該文章也可作為本文的姊妹篇)。
      2.軟件開發(fā)學(xué)習(xí)路線
      兩千多年的儒家思想孔孟之道,中庸的思想透入骨髓,既不冒進(jìn)也不保守并非中庸之道,而是找尋學(xué)習(xí)軟件開發(fā)的正確路線與規(guī)律。
      從軟件開發(fā)人員的生涯規(guī)劃來講,我們可以大致分為三個(gè)階段,軟件工程師→軟件設(shè)計(jì)師→架構(gòu)設(shè)計(jì)師或項(xiàng)目管理師。不想當(dāng)元帥的士兵不是好士兵,不想當(dāng)架構(gòu)設(shè)計(jì)師或項(xiàng)目管理師的程序員也不是好的程序員。我們應(yīng)該努力往上走。讓我們先整理一下開發(fā)應(yīng)用軟件需要學(xué)習(xí)的主要技術(shù)。
      A.基礎(chǔ)理論知識(shí),如操作系統(tǒng)、編譯原理、數(shù)據(jù)結(jié)構(gòu)與算法、計(jì)算機(jī)原理等,它們并非不重要。如不想成為計(jì)算機(jī)科學(xué)家的話,可以采取"用到的時(shí)候再來學(xué)"的原則。
      B.一門編程語言,現(xiàn)在基本上都是面向?qū)ο蟮恼Z言,JAVA/C++/C#等等。如果做WEB開發(fā)的話還要學(xué)習(xí)HTML/JavaScript等等。
      C.一種方法學(xué)或者說思想,現(xiàn)在基本都是面向?qū)ο笏枷耄∣OA/OOD/設(shè)計(jì)模式)。由此而衍生的基于組件開發(fā)CBD/面向方面編程AOP等等。
      D.一種關(guān)系型數(shù)據(jù)庫,ORACLE/SqlServer/DB2/MySQL等等
      E.一種提高生產(chǎn)率的IDE集成開發(fā)環(huán)境JBuilder/Eclipse/VS.NET等。
      F.一種UML建模工具,用ROSE/VISIO/鋼筆進(jìn)行建模。
      G.一種軟件過程,RUP/XP/CMM等等,通過軟件過程來組織軟件開發(fā)的眾多活動(dòng),使開發(fā)流程專業(yè)化規(guī)范化。當(dāng)然還有其他的一些軟件工程知識(shí)。
      H.項(xiàng)目管理、體系結(jié)構(gòu)、框架知識(shí)。
      正確的路線應(yīng)該是:B→C→E→F→G→H。
      還需要補(bǔ)充幾點(diǎn):
      1).對(duì)于A與C要補(bǔ)充的是,我們應(yīng)該在實(shí)踐中逐步領(lǐng)悟編程理論與編程思想。新技術(shù)雖然不斷涌現(xiàn),更新速度令人眼花燎亂霧里看花;但萬變不離其宗,編程理論與編程思想的變化卻很慢。掌握了編程理論與編程思想你就會(huì)有撥云見日之感。面向?qū)ο蟮乃枷朐谀壳皝碇v是相當(dāng)關(guān)鍵的,是強(qiáng)勢(shì)技術(shù)之一,在上面需要多投入時(shí)間,給你的回報(bào)也會(huì)讓你驚喜。
      2).對(duì)于數(shù)據(jù)庫來說是獨(dú)立學(xué)習(xí)的,這個(gè)時(shí)機(jī)就由你來決定吧。
      3).編程語言作為學(xué)習(xí)軟件開發(fā)的主線,而其余的作為輔線。
      4).軟件工程師著重于B、C、E、  D;軟件設(shè)計(jì)師著重于B、C、E、  D、F;架構(gòu)設(shè)計(jì)師著重于C、F、H。
      3.如何學(xué)習(xí)JAVA?
      3.1  JAVA學(xué)習(xí)路線
      3.1.1  基礎(chǔ)語法及JAVA原理
      基礎(chǔ)語法和JAVA原理是地基,地基不牢靠,猶如沙地上建摩天大廈,是相當(dāng)危險(xiǎn)的。學(xué)習(xí)JAVA也是如此,必須要有扎實(shí)的基礎(chǔ),你才能在J2EE、J2ME領(lǐng)域游刃有余。參加SCJP(SUN公司認(rèn)證的JAVA程序員)考試不失為一個(gè)好方法,原因之一是為了對(duì)得起你交的1200大洋考試費(fèi),你會(huì)更努力學(xué)習(xí),原因之二是SCJP考試能夠讓你把基礎(chǔ)打得很牢靠,它要求你跟JDK一樣熟悉JAVA基礎(chǔ)知識(shí);但是你千萬不要認(rèn)為考過了SCJP就有多了不起,就能夠獲得軟件公司的青睞,就能夠獲取高薪,這樣的想法也是很危險(xiǎn)的。獲得"真正"的SCJP只能證明你的基礎(chǔ)還過得去,但離實(shí)際開發(fā)還有很長的一段路要走。
      3.1.2  OO思想的領(lǐng)悟
      掌握了基礎(chǔ)語法和JAVA程序運(yùn)行原理后,我們就可以用JAVA語言實(shí)現(xiàn)面向?qū)ο蟮乃枷肓恕C嫦驅(qū)ο螅且环N方法學(xué);是獨(dú)立于語言之外的編程思想;是CBD基于組件開發(fā)的基礎(chǔ);屬于強(qiáng)勢(shì)技術(shù)之一。當(dāng)以后因工作需要轉(zhuǎn)到別的面向?qū)ο笳Z言的時(shí)候,你會(huì)感到特別的熟悉親切,學(xué)起來像喝涼水這么簡(jiǎn)單。
      使用面向?qū)ο蟮乃枷脒M(jìn)行開發(fā)的基本過程是:
      ●調(diào)查收集需求。
      ●建立用例模型。
      ●從用例模型中識(shí)別分析類及類與類之間的靜態(tài)動(dòng)態(tài)關(guān)系,從而建立分析模型。
      ●細(xì)化分析模型到設(shè)計(jì)模型。
      ●用具體的技術(shù)去實(shí)現(xiàn)。
      ●測(cè)試、部署、總結(jié)。
      3.1.3  基本API的學(xué)習(xí)
      進(jìn)行軟件開發(fā)的時(shí)候,并不是什么功能都需要我們?nèi)?shí)現(xiàn),也就是經(jīng)典名言所說的"不需要重新發(fā)明輪子"。我們可以利用現(xiàn)成的類、組件、框架來搭建我們的應(yīng)用,如SUN公司編寫好了眾多類實(shí)現(xiàn)一些底層功能,以及我們下載過來的JAR文件中包含的類,我們可以調(diào)用類中的方法來完成某些功能或繼承它。那么這些類中究竟提供了哪些方法給我們使用?方法的參數(shù)個(gè)數(shù)及類型是?類的構(gòu)造器需不需要參數(shù)?總不可能SUN公司的工程師打國際長途甚至飄洋過海來告訴你他編寫的類該如何使用吧。他們只能提供文檔給我們查看,JAVA  DOC文檔(參考文獻(xiàn)4.4)就是這樣的文檔,它可以說是程序員與程序員交流的文檔。
      基本API指的是實(shí)現(xiàn)了一些底層功能的類,通用性較強(qiáng)的API,如字符串處理/輸入輸出等等。我們又把它成為類庫。熟悉API的方法一是多查JAVA  DOC文檔(參考文獻(xiàn)4.4),二是使用JBuilder/Eclipse等IDE的代碼提示功能。
      3.1.4  特定API的學(xué)習(xí)
      JAVA介入的領(lǐng)域很廣泛,不同的領(lǐng)域有不同的API,沒有人熟悉所有的API,對(duì)一般人而言只是熟悉工作中要用到的API。如果你做界面開發(fā),那么你需要學(xué)習(xí)Swing/AWT/SWT等API;如果你進(jìn)行網(wǎng)絡(luò)游戲開發(fā),你需要深入了解網(wǎng)絡(luò)API/多媒體API/2D3D等;如果你做WEB開發(fā),就需要熟悉Servlet等API啦。總之,需要根據(jù)工作的需要或你的興趣發(fā)展方向去選擇學(xué)習(xí)特定的API。
      3.1.5  開發(fā)工具的用法
      在學(xué)習(xí)基礎(chǔ)語法與基本的面向?qū)ο蟾拍顣r(shí),從鍛煉語言熟練程度的角度考慮,我們推薦使用的工具是Editplus/JCreator+JDK,這時(shí)候不要急于上手JBuilder/Eclipse等集成開發(fā)環(huán)境,以免過于關(guān)注IDE的強(qiáng)大功能而分散對(duì)JAVA技術(shù)本身的注意力。過了這一階段你就可以開始熟悉IDE了。
      程序員日常工作包括很多活動(dòng),編輯、編譯及構(gòu)建、調(diào)試、單元測(cè)試、版本控制、維持模型與代碼同步、文檔的更新等等,幾乎每一項(xiàng)活動(dòng)都有專門的工具,如果獨(dú)立使用這些工具的話,你將會(huì)很痛苦,你需要在堆滿工具的任務(wù)欄上不斷的切換,效率很低下,也很容易出錯(cuò)。在JBuilder、Eclipse等IDE中已經(jīng)自動(dòng)集成編輯器、編譯器、調(diào)試器、單元測(cè)試工具JUnit、自動(dòng)構(gòu)建工具ANT、版本控制工具CVS、DOC文檔生成與更新等等,甚至可以把UML建模工具也集成進(jìn)去,又提供了豐富的向?qū)椭煽蚣艽a,讓我們的開發(fā)變得更輕松。應(yīng)該說IDE發(fā)展的趨勢(shì)就是集成軟件開發(fā)中要用到的幾乎所有工具。
      從開發(fā)效率的角度考慮,使用IDE是必經(jīng)之路,也是從一個(gè)學(xué)生到一個(gè)職業(yè)程序員轉(zhuǎn)變的里程碑。
      JAVA開發(fā)使用的IDE主要有Eclipse、JBuilder、JDeveloper、NetBeans等幾種;而Eclipse、JBuilder占有的市場(chǎng)份額是最大的。JBuilder在近幾年來一直是JAVA集成開發(fā)環(huán)境中的霸主,它是由備受程序員尊敬的Borland公司開發(fā),在硝煙彌漫的JAVA  IDE大戰(zhàn)中,以其快速的版本更新?lián)魯BM的Visual  Age  for  JAVA等而成就一番偉業(yè)。IBM在Visual  Age  for  JAVA上已經(jīng)無利可圖之下,干脆將之貢獻(xiàn)給開源社區(qū),成為Eclipse的前身,真所謂"柳暗花明又一村"。浴火重生的Eclipse以其開放式的插件擴(kuò)展機(jī)制、免費(fèi)開源獲得廣大程序員(包括幾乎所有的骨灰級(jí)程序員)的青睞,極具發(fā)展?jié)摿Α?
      3.1.6  學(xué)習(xí)軟件工程
      對(duì)小型項(xiàng)目而言,你可能認(rèn)為軟件工程沒太大的必要。隨著項(xiàng)目的復(fù)雜性越來越高,軟件工程的必要性才會(huì)體現(xiàn)出來。參見"軟件開發(fā)學(xué)習(xí)路線"小節(jié)。
      3.2學(xué)習(xí)要點(diǎn)
      確立的學(xué)習(xí)路線之后,我們還需要總結(jié)一下JAVA的學(xué)習(xí)要點(diǎn),這些要點(diǎn)在前文多多少少提到過,只是筆者覺得這些地方特別要注意才對(duì)它們進(jìn)行匯總,不要嫌我婆婆媽媽啊。
      3.2.1勤查API文檔
      當(dāng)程序員編寫好某些類,覺得很有成就感,想把它貢獻(xiàn)給各位苦難的同行。這時(shí)候你要使用"javadoc"工具(包含在JDK中)生成標(biāo)準(zhǔn)的JAVA  DOC文檔,供同行使用。J2SE/J2EE/J2ME的DOC文檔是程序員與程序員交流的工具,幾乎人手一份,除了菜鳥之外。J2SE  DOC文檔官方下載地址:http://java.sun.com/j2se/1.5.0/download.jsp,你可以到google搜索CHM版本下載。也可以在線查看:http://java.sun.com/j2se/1.5.0/docs/api/index.html
      對(duì)待DOC文檔要像毛主席語錄,早上起床念一遍,吃飯睡覺前念一遍。
      當(dāng)需要某項(xiàng)功能的時(shí)候,你應(yīng)該先查相應(yīng)的DOC文檔看看有沒有現(xiàn)成的實(shí)現(xiàn),有的話就不必勞神費(fèi)心了直接用就可以了,找不到的時(shí)候才考慮自己實(shí)現(xiàn)。使用步驟一般如下:
      ●找特定的包,包一般根據(jù)功能組織。
      ●找需要使用類,類命名規(guī)范的話我們由類的名字可猜出一二。
      ●選擇構(gòu)造器,大多數(shù)使用類的方式是創(chuàng)建對(duì)象。
      ●選擇你需要的方法。
      3.2.2  查書/google->寫代碼測(cè)試->查看源代碼->請(qǐng)教別人
      當(dāng)我們遇到問題的時(shí)候該如何解決?
      這時(shí)候不要急著問別人,太簡(jiǎn)單的問題,沒經(jīng)過思考的問題,別人會(huì)因此而瞧不起你。可以先找找書,到google中搜一下看看,絕大部分問題基本就解決了。而像"某些類/方法如何使用的問題",DOC文檔就是答案。對(duì)某些知識(shí)點(diǎn)有疑惑是,寫代碼測(cè)試一下,會(huì)給你留下深刻的印象。而有的問題,你可能需要直接看API的源代碼驗(yàn)證你的想法。萬不得已才去請(qǐng)教別人。
      3.2.3學(xué)習(xí)開源軟件的設(shè)計(jì)思想
      JAVA領(lǐng)域有許多源代碼開放的工具、組件、框架,JUnit、ANT、Tomcat、Struts、Spring、Jive論壇、PetStore寵物店等等多如牛毛。這些可是前輩給我們留下的瑰寶呀。入寶山而空手歸,你心甘嗎?對(duì)這些工具、框架進(jìn)行分析,領(lǐng)會(huì)其中的設(shè)計(jì)思想,有朝一日說不定你也能寫一個(gè)XXX框架什么的,風(fēng)光一把。分析開源軟件其實(shí)是你提高技術(shù)、提高實(shí)戰(zhàn)能力的便捷方法。
      3.2.4  規(guī)范的重要性
      沒有規(guī)矩,不成方圓。這里的規(guī)范有兩層含義。第一層含義是技術(shù)規(guī)范,多到http://www.jcp.org下載jsrxxx規(guī)范,多讀規(guī)范,這是最權(quán)威準(zhǔn)確最新的教材。第二層含義是編程規(guī)范,如果你使用了大量的獨(dú)特算法,富有個(gè)性的變量及方法的命名方式;同時(shí),沒給程序作注釋,以顯示你的編程功底是多么的深厚。這樣的代碼別人看起來像天書,要理解談何容易,更不用說維護(hù)了,必然會(huì)被無情地掃入垃圾堆。java編碼規(guī)范到此查看或下載 http://java.sun.com/docs/codeconv/,中文的也有,啊,還要問我在哪,請(qǐng)參考3.2.2節(jié)。
      3.2.5  不局限于JAVA
      很不幸,很幸運(yùn),要學(xué)習(xí)的東西還有很多。不幸的是因?yàn)橐獙W(xué)的東西太多且多變,沒時(shí)間陪老婆家人或女朋友,導(dǎo)致身心疲憊,嚴(yán)重者甚至導(dǎo)致抑郁癥。幸運(yùn)的是別人要搶你飯碗絕非易事,他們或她們需要付出很多才能達(dá)成心愿。
      JAVA不要孤立地去學(xué)習(xí),需要綜合學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)、OOP、軟件工程、UML、網(wǎng)絡(luò)編程、數(shù)據(jù)庫技術(shù)等知識(shí),用橫向縱向的比較聯(lián)想的方式去學(xué)習(xí)會(huì)更有效。如學(xué)習(xí)JAVA集合的時(shí)候找數(shù)據(jù)結(jié)構(gòu)的書看看;學(xué)JDBC的時(shí)候復(fù)習(xí)數(shù)據(jù)庫技術(shù);采取的依然是"需要的時(shí)候再學(xué)"的原則 000-834 000-861 。
      4.結(jié)束語
      需要強(qiáng)調(diào)的是,學(xué)習(xí)軟件開發(fā)確實(shí)有一定的難度,也很辛苦,需要付出很多努力,但千萬不要半途而廢。本文如果能對(duì)一直徘徊在JAVA神殿之外的朋友有所幫助的話,筆者也欣慰了。哈哈,怎么聽起來老氣橫秋呀?沒辦法,在電腦的長期輻射之下,都快變成小老頭了。最后奉勸各位程序員尤其是MM程序員,完成工作后趕快遠(yuǎn)離電腦,據(jù)《胡播亂報(bào)》報(bào)道,電腦輻射會(huì)在白皙的皮膚上面點(diǎn)綴一些小黑點(diǎn),看起來鮮艷無比……
    posted @ 2008-01-07 10:09 java2java 閱讀(1994) | 評(píng)論 (3)編輯 收藏

    主站蜘蛛池模板: 中文字幕亚洲综合精品一区| 亚洲最大AV网站在线观看| 久久精品国产精品亚洲艾| aa午夜免费剧场| 啊灬啊灬别停啊灬用力啊免费看| 亚洲欧美成人综合久久久| 亚欧人成精品免费观看| 亚洲AV乱码一区二区三区林ゆな | 99视频在线看观免费| 亚洲av无码无在线观看红杏| 韩国免费A级毛片久久| 国产亚洲?V无码?V男人的天堂 | 亚洲精品精华液一区二区| 扒开双腿猛进入爽爽免费视频| 亚洲国产日产无码精品| 大地资源在线观看免费高清| 亚洲中文字幕乱码一区| 国产成人aaa在线视频免费观看 | 亚洲三区在线观看无套内射| 嫩草在线视频www免费看| 亚洲av无码国产精品色午夜字幕 | 成人免费无码大片a毛片| 亚洲AV成人片无码网站| 亚洲精品视频在线看| 两个人看的www免费视频| 亚洲成色在线影院| 曰批全过程免费视频在线观看 | 男女作爱免费网站| 亚洲人精品午夜射精日韩| 毛片免费全部播放无码| 亚洲日本成本人观看| 亚洲精品老司机在线观看| 免费无码中文字幕A级毛片| 国产日本亚洲一区二区三区| 国产区卡一卡二卡三乱码免费| 国产黄色免费观看| 亚洲人成在线中文字幕| 免费a级毛片永久免费| 日韩电影免费在线观看| 亚洲国产日韩精品| 亚洲综合亚洲综合网成人|