91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java開發平臺中生命周期管理的示例分析

發布時間:2022-01-05 16:00:40 來源:億速云 閱讀:120 作者:小新 欄目:編程語言

這篇文章主要介紹Java開發平臺中生命周期管理的示例分析,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

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

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

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

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

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

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

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

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

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

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

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

不過如果采用Java語言作為開發平臺的話,則不用擔心這個問題。因為在Java語言平臺下,提供了一種叫做垃圾回收器的管理機制。垃圾回收器就好像是一個監視器,其時刻監視著應用程序的運行。它可以自動發現應用程序對象何時消亡,從而幫助應用程序釋放對象所占用的空間。也就是說,如果采用Java語言的垃圾回收器,不需要再通過編碼來判斷什么時候消亡對象。這項工作的話,Java語言編譯器會幫助程序開發人員來完成。說的再直白一點,應用程序開發人員只需要負責創建對象即可。對象需要消亡的時候,其會自動消失(當然是在垃圾回收器的幫助下)。

可見通過Java垃圾回收器的幫助,可以解決通過堆來創建對象的不足之處。應用程序開發人員可以不用考慮該在什么時候釋放對象所占用的空間,不需要開發額外的代碼來管理這個問題。從而可以在***程度上避免應用程序內存泄露的安全隱患。

另外需要注意的一點就是,雖然Java語言的垃圾回收器已經解決了對象回收與空間釋放的問題。但是其對于性能方面的改善不能夠起到任何的作用。所以這個性能上的缺陷仍然成為Java語言的一個瓶頸資源。當然這個問題也不是我們能夠解決的,需要那些語言專家來想法設法提高動態分配對象空間的效率。我們應用程序開發者所能夠做的就是通過優化Java語言代碼,通過代碼復用與繼承等方式來提高應用程序的性能,讓應用程序的性能有所改善。

以上是“Java開發平臺中生命周期管理的示例分析”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

鄂伦春自治旗| 滨海县| 定日县| 上虞市| 无为县| 朝阳市| 龙游县| 南皮县| 安西县| 本溪| 泸水县| 遵义县| 开封市| 洪洞县| 巴楚县| 新蔡县| 平乡县| 汝城县| 河曲县| 株洲市| 汪清县| 丹棱县| 化德县| 苏州市| 德州市| 堆龙德庆县| 桑植县| 长寿区| 肇庆市| 确山县| 肥城市| 隆回县| 峡江县| 汉川市| 嘉兴市| 崇明县| 兴化市| 巴里| 玛沁县| 张掖市| 巫山县|