成人午夜激情影院,小视频免费在线观看,国产精品夜夜嗨,欧美日韩精品一区二区在线播放

當(dāng)前位置:首頁>>軟件教程>>新聞內(nèi)容  
我學(xué)習(xí)使用java的一點體會(上)
作者:xuyongshuo 發(fā)布時間:2003-10-22 11:46:01 | 【字體:

      2002年初,因為公司的業(yè)務(wù)需要而學(xué)習(xí)java,并應(yīng)用java開發(fā)項目。由于項目時間緊,沒有充裕的時間系統(tǒng)學(xué)習(xí)java,對java的學(xué)習(xí)只能是項目需要用什么,就學(xué)什么,這種學(xué)習(xí)方法的上手快,但不扎實,在以后的工作中,因為java學(xué)的不扎實,吃了不少苦頭。現(xiàn)在我學(xué)習(xí)應(yīng)用java已經(jīng)有一年半的時間,對java已經(jīng)有了一定的體會,把自己的體會寫出來,供網(wǎng)友分享。

      以我個人的經(jīng)驗,學(xué)習(xí)java應(yīng)分以下幾個階段:

  1. java的語法學(xué)習(xí)
  2. 面向?qū)ο笥^念的建立
  3. java基本類庫的學(xué)習(xí)
  4. 學(xué)習(xí)設(shè)計模式
  5. 應(yīng)用設(shè)計模式
  6. 經(jīng)過大量的實踐,可以設(shè)計模式

      以上六個階段,其中前三個階段是針對java的,但java中,在很多設(shè)計模式的應(yīng)用,同時有很多功能都支持設(shè)計模式,所以不懂設(shè)計模式的人是不會很好的應(yīng)用java做開發(fā)的。第4、5個階段的學(xué)習(xí)在前三個階段的基礎(chǔ)上,學(xué)習(xí)、應(yīng)用成功的經(jīng)驗。從而進(jìn)入第六個階段,在軟件設(shè)計這個領(lǐng)域盡情發(fā)揮。本人受能力所限,還處在第4個階段的學(xué)習(xí)過程,所以會對前四個階段說明。第五、六個階段只是我根據(jù)我自己的知識做的推斷,還沒有經(jīng)驗無法說明。

      在對這些學(xué)習(xí)階段進(jìn)行闡述之前,我先說一下我的學(xué)習(xí)方法。在學(xué)習(xí)新的知識時我通常是按以下三個階段學(xué)的

  1. 理論學(xué)習(xí)。通過對理論的學(xué)習(xí),盡量了解新知識的概念;學(xué)習(xí)之后只是粗略的了解概念,不能和實際很好的結(jié)合。
  2. 演繹階段。根據(jù)理論學(xué)習(xí)的知識,考慮在什么場合下可以應(yīng)用這個新知識,哪些地方已經(jīng)應(yīng)用了這個概念,建立對新知識的感性認(rèn)識。
  3. 歸納階段。從一個更深的層次理解理論。

    以下根據(jù)java的六個學(xué)習(xí)階段闡述我的體會,而每個階段將按照理論學(xué)習(xí)、演繹和歸納三個小階段討論。

  • java語法的學(xué)習(xí)

    語法學(xué)習(xí)的理論學(xué)習(xí)階段是最容易的階段,70%以上的java書主要介紹的就是java語法,隨意買來一本,通讀一下就可以,主要理解以下內(nèi)容:(1)數(shù)據(jù)類型,(2)操作符,(3)控制流程,(4)類和類再生,(5)包和接口,(6)異常操作。

     在理論學(xué)習(xí)階段,不必過于注重細(xì)節(jié),只要對java的基本語法有一個整體認(rèn)識,能讀懂示例的源代碼就可以了。

     下一步就是演繹階段,應(yīng)用所學(xué)的語法知識,編寫簡單的程序。最好憑自己的記憶,將各語法要點都用一遍(編寫代碼最好用notepad),對自己不熟悉的語法要重新閱讀,用編譯器去檢查語法錯誤。這個階段的目標(biāo)是脫離書本以及java API能編寫簡單的程序,閱讀一個java源代碼能說出執(zhí)行結(jié)果。

     完成這個階段的學(xué)習(xí),參加scjp的考試,應(yīng)該獲得較高的成績。

     在演繹階段的基礎(chǔ)上,根據(jù)自己犯過的錯誤,總結(jié)一下java的難點。重新閱讀語法書,將一些自己不是很清楚的概念重新整理一下,這時你對java語法的理解比第一次閱讀時更深了。

      我在剛開始學(xué)java時,只是粗略的看看語法書,就開始編程序了,遇到不懂的就重新閱讀語法書,這樣,完全可以成為一個合格程序員,但是當(dāng)我成為team leader時,為了培訓(xùn)組員java編程,卻發(fā)現(xiàn)自己脫離了java語法書和Java API,竟然會的不多(java集成開發(fā)工具有提示功能),為了培訓(xùn),我又重新學(xué)了一遍java語法,很有收獲。

     其實一個優(yōu)秀的程序員,不但要能寫出好的程序,更重要的是,對所寫的程序能說的清楚:(1)說清楚程序的功能(2)說清楚程序的結(jié)構(gòu)。而說清楚程序的結(jié)構(gòu)的基礎(chǔ)是對java的語法要熟悉。想成為優(yōu)秀的程序員,一定要在學(xué)習(xí)語法的基礎(chǔ)上,不斷實踐,不斷總結(jié),最終能脫離語法書,將java語法系統(tǒng)的講解清楚。

  • 面向?qū)ο笥^念的建立

        Java是面向?qū)ο蟮拈_發(fā)工具,使用java開發(fā)應(yīng)用時,一定要懂面向?qū)ο缶幊痰母拍睢T趯W(xué)過了java語法之后,應(yīng)該建立OOP的概念。

  1. 理論學(xué)習(xí)階段,首先應(yīng)當(dāng)理解class和object,了解class、interface、abstract class,理解OOP的繼承性,封裝性(public, protected,private)和多態(tài)性。然后應(yīng)當(dāng)熟悉UML,可以閱讀一些UML的簡單資料,基本上了解類圖、狀態(tài)圖和時序圖就可以了。
  2. 演繹階段,對OOP的實踐。而OOP的成功范例應(yīng)該是常見的23種設(shè)計模式。這個階段需要閱讀并體會設(shè)計模式UML圖和示例代碼,我推薦《java與模式》這本書,也可以訪問http://www.jdon.com/designpatterns/index.htm  。不必讀懂模式,只需要讀懂每個模式的UML和代碼。
  3. 歸納階段,通過演繹階段的學(xué)習(xí),體會OOP帶來的好處——對擴(kuò)展開放,對修改關(guān)閉。同時學(xué)會如何在java中使用OOP的概念設(shè)計。

         我在使用Java編程初期,一直使用面向過程的思想編程,對class、interface、abstract class以及public、protect、private的存在并沒有理解,直到我閱讀了Gof的設(shè)計模式,才理解OOP的優(yōu)點。但是Gof的設(shè)計模式太晦澀了,我第一次讀時,僅僅是有了面向?qū)ο蟮母拍睿鴮υO(shè)計模式并沒有理解。相反《java與模式》容易讀一些,但《java與模式》一書的廢話多一些,有很多內(nèi)容可以不讀。

  • java基本類庫的學(xué)習(xí)

         曾經(jīng)面試過一些java程序員,我出的題目是在使用java時,經(jīng)常用到哪些類,在哪個包里。很少有人能答好,甚至有人做了2年java程序都沒有回答出,他們會用java,但必須依賴工具(指java集成開工具),我覺得他們可以編寫出程序,但不能編寫出特別好得程序。

        我認(rèn)為作為java程序員必須掌握java類庫的兩個包:java.lang和java.util這兩個包。java.lang包提供的是java編程要用到的基本類包,java程序員天天在用,無非是看別人如何用,自己就如何用,但很少有人去總結(jié)一下,比如String 和StringBuffer這兩個類有什么差別,應(yīng)該有很多java程序員說不出來。另外Vector和HashMap這兩個類大家都在用,有多少人能說清楚Vector和HashMap繼承了哪些類,實現(xiàn)了哪些接口呢。

  1. 理論學(xué)習(xí)。認(rèn)真閱讀java API的以下內(nèi)容:java.lang包中的String,StringBuffer,Number,Double,F(xiàn)loat,Byte,Short,Integer,Long,Character,Boolean,Process,Runtime,System,Object,Cloneable,Class,ClassLoader,Thread,ThreadGroup,Runnable,Package類或接口。java.util包中的Collection,list,Set,ArrayList,LinkedList,Hashset,TreeSet,Iterator,Map,SortedMap,HashMap,TreeMap,Comparator,Arrays,Enumeration,Vector,Stack,Dictionary,Hashtable,Properties,StringTokenizer,BitSet,Date,Calendar,Locale,Random,Observer,Observable類和接口。主要理清楚這些類或接口的繼承關(guān)系、主要功能。
  2. 演繹階段。通過閱讀代碼,練習(xí)編程,學(xué)習(xí)并應(yīng)用這些類和接口。其實這些類的大部分是經(jīng)常用的,無非對這些類和接口說不清楚。在這些類中,對java.lang和java.util包中的類,最好將各個方法練習(xí)使用一次。而對java.util包中Collections framework中的類,最好理清楚各個類和接口之間的關(guān)系。常用的類的方法我就不具體介紹了,我舉一個使用Observer和Obserable 的例子(摘自《The Complete Reference Java 2 》)。在Observer和Obserable中,java實現(xiàn)了對設(shè)計模式Observer的支持。

             Watcher.java代碼

    import java.util.*;

    class Watcher implements Observer
    {
     public void update(Observable obj, Object arg )
     {
      System.out.println("Update() called, count is " +
       ((Integer) arg).intValue());
     }
    }
          

          BeingWatched.java代碼

    import java.util.*;

    class BeingWatched extends Observable
    {
     void counter( int period )
     {
      for(;period >=0; period-- )
      {
       setChanged();
       notifyObservers( new Integer ( period ) );
       try
       {
        Thread.sleep(100);
       }
       catch( InterruptedException e)
       {
        System.out.println("Sleep interrupeted" );
       }
      }
     }
    };

           ObserverDemo.java代碼

    public class ObserverDemo
    {
     public static void main( String[] args )
     {
      BeingWatched observed = new BeingWatched();
      Watcher observing = new Watcher();
      observed.addObserver( observing);
      observed.counter(10);
     }
    };

    執(zhí)行結(jié)果

    Update() called, count is 10
    Update() called, count is 9
    Update() called, count is 8
    Update() called, count is 7
    Update() called, count is 6
    Update() called, count is 5
    Update() called, count is 4
    Update() called, count is 3
    Update() called, count is 2
    Update() called, count is 1
    Update() called, count is 0

  3. 歸納階段。總結(jié)使用經(jīng)驗,體會這兩個包中類的繼承關(guān)系,對設(shè)計模式的支持(如Iterator本身就是設(shè)計模式,同時也是工廠方法模式的應(yīng)用),了解這些類提供的所有功能,比較功能相近類的異同。將這些類的api記在心中。

         雖然集成開發(fā)環(huán)境支持方法提示功能,但我個人認(rèn)為,對于java.lang和java.util這兩個包的api應(yīng)當(dāng)熟記于心,java的其他類庫在使用時可以查找api。當(dāng)然如果從事不同的開發(fā),對其他類庫應(yīng)當(dāng)有相應(yīng)的了解,如開發(fā)swing,就應(yīng)當(dāng)對javax.swing包了如執(zhí)掌,開發(fā)b/s結(jié)構(gòu)的程序,就要了解javax.servlet,依個人的應(yīng)用來開發(fā)了。


文章來源:CSDN
·我學(xué)習(xí)使用java的一點體會(下)
 放生
 愚愛
 夠愛
 觸電
 白狐
 葬愛
 光榮
 畫心
 火花
 稻香
 小酒窩
 下雨天
 右手邊
 安靜了
 魔杰座
 你不像她
 邊做邊愛
 擦肩而過
 我的答鈴
 懷念過去
 等一分鐘
 放手去愛
 冰河時代
 你的承諾
 自由飛翔
 原諒我一次
 吻的太逼真
 左眼皮跳跳
 做你的愛人
 一定要愛你
 飛向別人的床
 愛上別人的人
 感動天感動地
 心在跳情在燒
 玫瑰花的葬禮
 有沒有人告訴你
 即使知道要見面
 愛上你是一個錯
 最后一次的溫柔
 愛上你是我的錯
 怎么會狠心傷害我
 不是因為寂寞才想
 親愛的那不是愛情
 難道愛一個人有錯
 寂寞的時候說愛我
主站蜘蛛池模板: 大新县| 新巴尔虎左旗| 石泉县| 吴桥县| 于都县| 涞水县| 五峰| 保山市| 奉贤区| 达日县| 潮安县| 白朗县| 盐城市| 修武县| 平果县| 呼图壁县| 莱州市| 塔河县| 东至县| 介休市| 广西| 夏河县| 辽阳市| 大新县| 江门市| 镇雄县| 宜宾市| 广宁县| 渝北区| 水城县| 左云县| 高密市| 枣强县| 张家界市| 修文县| 连云港市| 杨浦区| 施秉县| 临猗县| 红河县| 辉南县|