• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    Java開發平臺中的生命周期管理

    發布: 2009-12-30 10:46 | 作者: 不詳 | 來源: 領測軟件測試網采編 | 查看: 36次 | 進入軟件測試論壇討論

    領測軟件測試網

            Java開發平臺中的生命周期管理   Java開發

       對象的生命周期沒有大家想的那么復雜。其實其就是回答了兩個簡單的問題。什么時候需要創建對象?什么時候把對象消亡?這兩個問題解決了,那么對象的生命周期問題也就解決了。

      一、傳統的對象生命周期管理方法。

      為了對Java開發平臺中的生命周期管理方法有一個更加深刻的理解,筆者認為大家需要對傳統的生命周期管理方法先有一個了解。因為這有助于大家有一個相互的對比,從而會對Java語言中的生命周期管理方法會有一個比較直觀的印象。

      在傳統的編程語言中,如C語言,其考慮對象的生命周期,主要是從對象與應用程序的執行效率出發的。為了追求應用程序最大的執行效率,C語言要求在編寫應用程序的時候程序開發人員必須確定對象的存儲空間與生命周期,既可以通過堆餞或者限域變量來實現。這么設計的話,好處是很明顯的。由于在程序開發的時候就涉及好了對象的存儲空間與生命周期,那么在程序運行的時候就不需要再花精力去創建對象。應用程序開發人員需要知道的是,在堆棧中創建與釋放對象的存儲空間是一件很容易且不用花費多少時間的事情。如在堆棧中創建對象空間只需要一條將棧頂指針向下移動的匯編指令,另一條匯編指令對應釋放存儲空間所需的將棧頂指針往上移動即可。所以應用程序的執行速度就會比較高,可以將對象存儲空間的分配和釋放置于比較有限考慮的地位。

      但是這種管理方法的最大缺陷就是靈活性不高。因為在應用程序開發的時候就必須要知道對象的確切數量、生命周期和存儲空間。如果后續需要對應用程序進行二次開發或者功能升級,如果涉及到添加新對象的話,那么修改的工作量就會很大。而且對于普通的應用程序開發人員來說,很難對所需要的對象的數量與生命周期,做出一個準確的預計?梢,這種管理方式雖然可以保證應用程序的最大運行速度,但是其局限性也是蠻大的。其不僅靈活性不高,而且對于應用程序開發者有更高的要求。

      二、Java平臺下的對象生命周期管理方法。

      在Java語言平臺下,其與傳統的對象管理方法有很大的不同。在Java語言平臺下,叫做動態創建對象。簡單地說,就是不是在應用程序開發的時候創建對象,而是在應用程序運行的過程中動態的根據需要建立對象。與上面的對象生命周期不同,動態的創建對象,只在應用程序運行的時候才會考慮需要創建多少對象,他們的生命周期有多久,對象的類型是什么等等。這些問題只有在應用程序代碼被執行的那一刻才能夠最終的確定下來。在應用程序開發的過程中不需要關注這些問題。如在Java語言開發中,一開始不需要建立對象。在需要對象的時候,可以利用new關鍵字來創建一個對象。

      很明顯,由于對象的創建與消亡都是在應用程序運行的時候動態管理的,為此其靈活性要比傳統的靜態管理方式要高。當需要新的對象相時,只需要在代碼中利用NEW關鍵字創建一個即可,而不需要對其他的內容進行更改。為此,象Java這種采用動態機制來管理對象生命周期的語言,往往被認為其在升級、二次開發上面都比傳統的C語言程序要高。而且由于在需要的時候創建對象,為此對于應用程序開發者的要求也相對比較低一點。應用程序開發人員進入Java語言的門檻也會低許多。

      但是其最大的缺陷就是會影響到應用程序的執行效率。因為如果采用動態創建對象的話,則對象的存儲空間是在應用程序運行時被動態管理的。所以此時應用程序就需要耗費額外的時間在堆中分配存儲空間,這個時間就要遠遠的大于第一種靜態管理對象在堆棧中創建存儲空間的時間。為此在同等條件下,Java語言開發的應用程序效率就比C語言開發的應用程序要低一點。如果不采取其他措施來優化Java語言性能的話,那么這個差距會很大。

      為此Java語言采用這種對象生命周期管理方式,主要就是看中其對象管理過程中的靈活性。動態創建對象的管理方式可以方便解決一般化編程問題。這也會創建一些應用程序自定義平臺提供了幫助。

      三、通過垃圾回收器來自動回收不需要用的對象。

      動態管理對象的方式其除了在性能上有所欠缺外,最重要的是其在對象的回收上也有比較大的缺陷。如通過堆棧來創建對象(第一種管理對象的方式),語言編譯器可以確定對象存活的時間,并在時間到期后自動收回對象所占用的空間。而如果在堆上創建對象(第二種對象管理方式),則語言編譯器就對應用程序對象的生命周期一無所知,不知道什么時候對象會消亡。為此如果不采取其他處理機知的話,則需要通過代碼來判斷對象的生命周期,并在適當的時候收回對象所占用的存儲空間?墒沁@種通過代碼來判斷對象生命周期的方式,會在很大程度上造成應用程序的安全漏洞,若發現內存泄露等等的安全隱患。

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    21/212>

    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>