gpt4 book ai didi

java - 我应该将应用程序子类对象保留为成员变量还是局部变量?

转载 作者:行者123 更新时间:2023-12-02 06:37:04 25 4
gpt4 key购买 nike

我想知道,我正在使用应用程序子类来访问 Activity 中的一些全局数据。我想知道在性能和内存方面什么会更好。

是否最好将应用程序对象分配给 onCreate 中的字段变量并作为 mamber 访问它

Activity

onCreate() {
mApp = (MyApplication) getApplication()
}

不要使用成员并每次调用 getApplication 并将其分配给局部变量?

MyApplication app = (MyApplication) getApplication()

据我所知,局部变量可以立即被垃圾回收,但成员必须保留在内存中。

由于我认为应用程序对象是一个大对象,因此可以将其保留在内存中还是应该允许它被垃圾收集?

谢谢

最佳答案

Application 对象将始终位于内存中。您要么将其缓存为字段成员,要么每次为局部变量检索它,这只是它的引用。后者不会给你带来任何空间或时间上的好处。

<小时/> Application 对象及其所有子对象和孙对象仅位于 上。方法 getApplication() 所做的就是将 地址返回到 root 该对象树的。无论对象树有多长或每个对象元素有多大,地址/指针/引用大小都将保持不变。

关于java - 我应该将应用程序子类对象保留为成员变量还是局部变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19518664/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com