2013-10-22 53 views
1

其實我有一個快速問題,我找不到答案。Java垃圾收集器和字段變量

我很持久,我的Android/Java應用程序吃掉的RAM儘可能最少的,因爲它可以幫助用戶體驗。

這就是說我的問題是關注場變量和垃圾收集器。

我的應用程序將啓動,我有一個設置字段變量(硬編碼)的列表。爲了可讀性,我選擇了字段變量。如果我希望快速更改,則更改該值,而不是通過查看代碼來查看實際使用變量的時間。

在這種情況下,我的字段變量僅在第一次加載應用程序時使用一次。

垃圾收集器是否刪除此變量,或者是否必須手動設置它爲空。我知道一個簡單的int值沒有太大的要哭,但我很好奇垃圾收集器。

它包含字段將總是在使用對象(這將是一個Android ViewPagerAdapter在這種情況下)。

+2

沒有什麼可以收集單一'int'。帶有「int」字段的對象有一個位置(4個字節),對此您無能爲力。將其初始化爲與寫入零相同。 – maaartinus

+0

他們是實例還是靜態字段?如果它們是靜態的,佔用的空間可以忽略不計。如果它們是實例字段,請考慮將它們設爲靜態。 – pburka

+0

也許他們應該在.properties文件中? – EJP

回答

2

字段變量是強引用;只要對象在附近,字段變量必須保持可訪問。如果你只是在一種方法中使用它們,它會(稍微,稍微)更有效,只保留它們在該方法的運行範圍內。

+0

只要那*對象*在附近。 – EJP

+0

是的,對象。爲清晰起見進行編輯。 – Josh

0

一般來說,你不需要明確設置字段設置爲null,但是如果你對性能/內存,避免創建領域,而不是去本地變量,即轉換爲局部變量領域的方法如果可能的話,並避免產生不必要的,如果真的領域關注他們只用了一次。

最好的,我建議你被請參照Android的最佳實踐文檔,應用程序的性能提升

  1. http://developer.android.com/training/best-performance.html
  2. http://developer.android.com/training/articles/perf-tips.html