最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android靜態(tài)變量的生命周期 簡單介紹

 更新時間:2013年06月13日 11:33:06   作者:  
Android靜態(tài)變量的生命周期 簡單介紹,需要的朋友可以參考一下

Android是用Java開發(fā),其靜態(tài)變量的生命周期遵守Java的設(shè)計。我們知道靜態(tài)變量是在類被load的時候分配內(nèi)存的,并且存在于方法區(qū)。當(dāng)類被卸載的時候,靜態(tài)變量被銷毀。在PC機的客戶端程序中,一個類被加載和卸載,可簡單的等同于jvm進程的啟動和結(jié)束。那么在Android中呢?用的Dalvik vm也是一樣的。不過Android不太突出的進程概念,所以對靜態(tài)變量的生命周期就會感覺模糊,這種模糊對于值類型是無所謂的,如果是靜態(tài)的對象引用,則與內(nèi)存回收、內(nèi)存泄漏這些問題有關(guān),有必要加深研究和理解。

一、靜態(tài)變量在類被加載的時候分配內(nèi)存。

類在什么時候被加載?

當(dāng)我們啟動一個app的時候,系統(tǒng)會創(chuàng)建一個進程,此進程會加載一個Dalvik VM的實例,然后代碼就運行在DVM之上,類的加載和卸載,垃圾回收等事情都由DVM負責(zé)。也就是說在進程啟動的時候,類被加載,靜態(tài)變量被分配內(nèi)存。

二、靜態(tài)變量在類被卸載的時候銷毀。

類在什么時候被卸載?

在進程結(jié)束的時候。

說明:一般情況下,所有的類都是默認的ClassLoader加載的,只要ClassLoader存在,類就不會被卸載,而默認的ClassLoader生命周期是與進程一致的,本文討論一般情況。

三、Android中的進程什么時候結(jié)束

這個是Android對進程和內(nèi)存管理不同于PC的核心——如果資源足夠,Android不會殺掉任何進程,另一個意思就是進程隨時可能會被殺掉。而Android會在資源夠的時候,重啟被殺掉的進程。也就是說靜態(tài)變量的值,如果不做處理,是不可靠的,可以說內(nèi)存中的一切都不可靠。如果要可靠,還是得保存到Nand或SD卡中去,在重啟的時候恢復(fù)回來。

另一種情況就是不能把退出所有Activity等同于進程的退出,所以在用戶點擊圖標(biāo)啟動應(yīng)用的時候,以前存放于靜態(tài)變量中的值,有可能還存在,因此要視具體情況給予清空操作。

四、Application也是一樣不可靠

Application其實是一個單例對象,也是放在內(nèi)存中的,當(dāng)進程被殺掉,就全清空了,只不過Android系統(tǒng)會幫重建Application,而我們存放在Application的數(shù)據(jù)自然就沒有了,還是得自己處理。

五、靜態(tài)引用的對象不會被垃圾回收

只要靜態(tài)變量沒有被銷毀也沒有置null,其對象一直被保持引用,也即引用計數(shù)不可能是0,因此不會被垃圾回收。因此,單例對象在運行時不會被回收

相關(guān)文章

  • 解決Android TabLayout 在寬屏幕上tab不能平均分配的問題

    解決Android TabLayout 在寬屏幕上tab不能平均分配的問題

    這篇文章主要介紹了解決Android TabLayout 在寬屏幕上tab不能平均分配的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • Android組件化工具ARouter使用方法詳細分析

    Android組件化工具ARouter使用方法詳細分析

    這篇文章主要介紹了Android組件化工具ARouter使用方法,組件化項目存在各個模塊之間耦合,通信麻煩的問題,為了解決這個問題,阿里巴巴的開發(fā)者就搞出了Arouter這個框架,以解決上述問題
    2022-10-10
  • Android中Activity生命周期和啟動模式詳解

    Android中Activity生命周期和啟動模式詳解

    這篇文章主要介紹了Activity生命周期和啟動模式詳解的相關(guān)資料,需要的朋友可以參考下
    2016-07-07
  • Android實現(xiàn)外部喚起應(yīng)用跳轉(zhuǎn)指定頁面的方法

    Android實現(xiàn)外部喚起應(yīng)用跳轉(zhuǎn)指定頁面的方法

    這篇文章主要給大家介紹了關(guān)于Android實現(xiàn)外部喚起應(yīng)用跳轉(zhuǎn)指定頁面的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-12-12
  • Android手機保持屏幕高亮方法

    Android手機保持屏幕高亮方法

    這篇文章主要介紹了Android手機保持屏幕高亮方法,本文直接給出實現(xiàn)代碼,需要的朋友可以參考下
    2015-06-06
  • Android 動態(tài)改變布局實例詳解

    Android 動態(tài)改變布局實例詳解

    這篇文章主要介紹了Android 動態(tài)改變布局實例詳解的相關(guān)資料,這里舉例說明如何實現(xiàn)動態(tài)改變布局的例子,幫助大家學(xué)習(xí)理解,需要的朋友可以參考下
    2016-11-11
  • Android編程設(shè)置全屏的方法實例詳解

    Android編程設(shè)置全屏的方法實例詳解

    這篇文章主要介紹了Android編程設(shè)置全屏的方法,結(jié)合實例形式較為詳細的分析了Android設(shè)置全屏的兩種常見技巧,非常簡單實用,需要的朋友可以參考下
    2015-11-11
  • Android AOP基本用法全面詳解

    Android AOP基本用法全面詳解

    這篇文章主要為大家介紹了Android AOP基本用法全面詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-09-09
  • Android 使用Zbar實現(xiàn)掃一掃功能

    Android 使用Zbar實現(xiàn)掃一掃功能

    這篇文章主要介紹了Android 使用Zbar實現(xiàn)掃一掃功能,本文用的是Zbar實現(xiàn)掃一掃,因為根據(jù)本人對兩個庫的使用比較,發(fā)現(xiàn)Zbar解碼比Zxing速度要快,實現(xiàn)方式也簡單,需要的朋友可以參考下
    2023-03-03
  • Android編程實現(xiàn)隱藏狀態(tài)欄及測試Activity是否活動的方法

    Android編程實現(xiàn)隱藏狀態(tài)欄及測試Activity是否活動的方法

    這篇文章主要介紹了Android編程實現(xiàn)隱藏狀態(tài)欄及測試Activity是否活動的方法,涉及Android界面布局設(shè)置及Activity狀態(tài)操作的相關(guān)技巧,需要的朋友可以參考下
    2016-10-10

最新評論

靖宇县| 汪清县| 额尔古纳市| 柳江县| 山西省| 桃源县| 阿勒泰市| 修武县| 疏勒县| 若羌县| 马龙县| 喀什市| 兴城市| 方山县| 陆川县| 洪江市| 金湖县| 迭部县| 曲松县| 中方县| 扎赉特旗| 贡山| 嘉义市| 丽江市| 清新县| 岢岚县| 彭阳县| 那坡县| 桐城市| 长顺县| 汤阴县| 洪洞县| 宜昌市| 社会| 普安县| 辉县市| 华宁县| 博野县| 武威市| 招远市| 大化|