<dfn id="is4kg"></dfn>
  • <ul id="is4kg"></ul>
  • <abbr id="is4kg"></abbr>
  • <ul id="is4kg"></ul>
    <bdo id="is4kg"></bdo>

    曙海教育集團論壇開發語言培訓專區JAVA語言開發 → Java開發語言規律


      共有8062人關注過本帖樹形打印

    主題:Java開發語言規律

    美女呀,離線,留言給我吧!
    wangxinxin
      1樓 個性首頁 | 博客 | 信息 | 搜索 | 郵箱 | 主頁 | UC


    加好友 發短信
    等級:青蜂俠 帖子:1393 積分:14038 威望:0 精華:0 注冊:2010-11-12 11:08:23
    Java開發語言規律  發帖心情 Post By:2010-12-11 10:19:38

    JAVA規律
          在尋找普遍規律之前,讓我們先看看Java的發展歷程:
          (1)SUN的主流技術的發展
          GUI界面:Java AWT API--〉Java Swing API
          JavaWeb: Servlet--〉JSP--〉JSF
          持久化層:JDBC--〉CMP EJB或BMP EJB或JDO
          分布式應用:Socket--〉RMI--〉J2EE或Java Web Service

          (2)主要Java開源軟件的種類
          JavaWeb容器: Tomcat、Resin
          EJB容器: JBoss
          框架: Java Web框架(Struts)、業務邏輯層框架(Spring)
          持久化層: DAO、ORM映射工具(如Hibernate、OJB)
          工程管理工具:ANT、Eclipse
          日志輸出工具: Log4J
          JavaWeb服務工具:Apache Axis

          促成Java世界如此絢麗多姿的基本動力在于以下核心思想:

          接口與實現

          不同的軟件系統之間通過接口來交互。軟件系統只對外公開接口,封裝實現細節。接口描述了軟件系統具備的功能,也就是指定軟件系統能夠做什么,但是沒有指明怎么去做。接口具有三大作用:

          (1)對于接口制訂者:SUN公司通過定義接口,來制定新的軟件系統的規范,例如Servlet規范、EJB規范和JDO規范,這些規范主要以接口的形式描述了軟件系統必須具備的功能。通過制定規范,SUN公司指引著Java技術的發展方向,同時給接口的實現者提供了自由發揮的廣闊空間。

          (2)對于接口實現者:接口實現者以特定的方式實現標準的規范。例如一些開放源代碼軟件,如Tomcat和Resin分別以不同的實現方式,實現了標準的Servlet規范。同一個接口允許有多種實現,使得Java領域保持著百花齊放、百家爭鳴的良好勢頭,

          (3)對于接口調用者:接口調用者的程序具有良好的可移植性。以JavaWeb應用為例,由于Tomcat和Resin遵守同樣的規范,因此用戶開發的JavaWeb應用能夠順利的從Tomcat容器移植到Resin容器中。

          封裝與抽象

          封裝指的是在一個大系統中包含一個小系統,大系統是建立在已有小系統的基礎上的更為復雜、功能更強大的系統。例如,Hibernate對JDBC API進行了封裝,在Hibernate內部依賴JDBC API來操縱數據庫,但是Hibernate API比JDBC API具有更強大的功能,例如JDBC API只具有連接和操縱數據庫的功能,而Hibernate不僅具備這一功能,還具有對象-關系映射的功能。

          抽象是指從已經存在的具有相似功能、但不同接口的系統中抽取共性,提煉出統一的接口。例如,Hibernate Transaction API是對JDBC
          Transaction API和Java Transaction API(JTA)的抽象。 

          繼承與擴展

          繼承與擴展是一對孿生兄弟,當兩個類之間存在繼承關系,那么必定也存在擴展關系。繼承的優點在于提高代碼的可重用性,子類會繼承父類的所有public和protected類型的屬性和方法,在子類的程序代碼中,無需重復定義這些屬性和方法。擴展的優點在于使軟件應用具有可伸縮性,能夠在已有功能的基礎上擴展新的功能。

          Struts框架充分運用了擴展思想。Struts框架中的許多類都是供應用程序擴展的,其中最主要的一個是Action類,在Action類中已經定義了一些通用的方法,采用Struts框架的JavaWeb應用將擴展Action類,創建負責特定流程或業務的客戶化的Action類。

          對象的生命周期

          當一個對象通過new語句創建后,它就會擁有一塊固定的內存空間,如果沒有任何變量引用它,它就會結束生命周期,它占用的內存空間隨時可能被JVM的垃圾回收器回收。

          應用程序如何管理對象的生命周期呢?目前比較流行的做法是把對象存放在一個“范圍”內。例如在JavaWeb應用中,JavaBean可以存放在request、session或application范圍內。每個范圍對應一個對象,例如request范圍對應HttpServletRequest對象,session范圍對應HttpSession對象,application范圍對應ServletContext對象。把一個JavaBean存放在request范圍內,實質上是在HttpServletRequest對象的一個集合屬性中加入這個JavaBean的引用,這個集合屬性也被稱為HttpServletRequest對象的緩存。


          把一個JavaBean存放在request范圍內,等價于以下兩種說法:
          把一個JavaBean加入到HttpServletRequest對象的緩存中
          把一個JavaBean和HttpServletRequest對象關聯

          當JavaBean位于request范圍內,這個JavaBean的生命周期依賴于HttpServletRequest對象的生命周期,當HttpServletRequest對象結束生命周期,并且這個JavaBean也不被應用程序中的其他變量引用,那么它就會結束生命周期。

          那么HttpServletRequest對象本身的生命周期由誰管理呢?這是由JavaWeb容器(也稱Servlet容器)來管理的。對于每個HTTP請求,JavaWeb容器會自動創建一個HttpServletRequest對象,當HTTP請求的響應完畢,JavaWeb容器就會結束這個對象的生命周期。同理,當每個HTTP會話開始,JavaWeb容器會自動創建一個HttpSession對象,當這個會話結束,JavaWeb容器就會結束這個對象的生命周期;當每個JavaWeb應用啟動時,JavaWeb容器會自動創建一個ServletContext對象,當這個應用被關閉,JavaWeb容器就會結束這個對象的生命周期。

          在Hibernate中,在net.sf.hibernate.Session范圍內加入一個持久化對象,實質上是在Session對象的集合屬性中加入這個持久化對象的引用。以下幾種說法是等價的:
          在Session范圍內加入一個持久化對象
          在Session的緩存中加入一個持久化對象
          把一個持久化對象與Session關聯

          值得注意的是,Hibernate的Session不僅能管理緩存中持久化對象的生命周期,還會負責按照持久化對象的狀態的變化,來同步更新數據庫。

          集成開源軟件的基本步驟

          在開發Java應用時,為了提高開發效率,縮短開發周期,常常需要集成第三方提供的Java軟件,如ORM映射工具Hibernate、MVC框架Struts、日志工具Log4J和Web服務軟件Apache
          AXIS等。在自己的應用中集成這些第三方軟件時,大體步驟都很相似。
          (1) 把它們的JAR文件拷貝到classpath中。
          (2) 創建它們的配置文件(XML格式的文件或者Java屬性文件),這些配置文件通常也位于classpath中。
          (3) 在程序中訪問它們的接口。

          接口與配置文件,是軟件系統對外公開的兩個主要窗口。無論是Tomcat、Struts還是Hibernate,都離不開配置文件,與編寫程序代碼相比,配置文件能提高軟件的可維護性,更加靈活的適應用戶變化的需求,但是,配置文件不擅長表達非常復雜的邏輯,在這種情況下,必須求助于程序代碼。作為軟件使用者,如果僅僅想快速掌握一個新的Java軟件的使用方法,而不打算深入了解軟件內在原理和結構,無非就是了解它的接口以及配置文件的使用方法。當然,如果想對軟件的運用達到得心應手的地步,還應該了解軟件本身的實現原理和結構,而這些軟件無非就是通過抽象、封裝和實現等手段,從簡單的小系統出發,構造出更加復雜,但是對外有著簡潔統一的接口的大系統


    支持(0中立(0反對(0單帖管理 | 引用 | 回復 回到頂部

    返回版面帖子列表

    Java開發語言規律








    簽名
    主站蜘蛛池模板: 一级毛片试看三分钟| 亚洲精品一级片| 黑人一个接一个上来糟蹋| 小兔子好大从衣服里跳出来| 亚洲人成77777在线播放网站| 狠狠色丁香婷婷久久综合| 国产在线观看麻豆91精品免费 | 精品亚洲成a人无码成a在线观看| 国产福利在线导航| jizz视频在线观看| 成人无码精品一区二区三区| 亚洲av午夜成人片| 欧美日韩性猛交xxxxx免费看| 和搜子居的日子2中文版| 青草国产精品久久久久久| 国产线视频精品免费观看视频| 三上悠亚一区二区观看| 无码人妻精品一二三区免费| 亚洲人成人无码网www国产| 欧美激情一区二区三区蜜桃视频 | 一本色道久久88综合日韩精品| 日日噜噜噜夜夜爽爽狠狠视频| 亚洲女人影院想要爱| 欧美视频免费在线观看| 午夜福利啪啪片| 美妇浑圆硕大高耸美乳| 国产成人一级片| 6一13小幻女| 国内a级毛片免费···| 一本久道久久综合多人| 成人无号精品一区二区三区| 久久精品无码专区免费青青| 有人有看片的资源吗www在线观看| 亚洲精品无码人妻无码| 狠狠躁天天躁无码中文字幕图 | 最近中文字幕在线中文视频| 亚洲精品国产综合久久一线| 狼友av永久网站免费观看| 又粗又大又硬又爽的免费视频| 色在线亚洲视频www| 国产成人精品免费视频大全|