每当我创建任何应用程序时,我总是对字符串进行硬编码,而不是从XML中的字符串资源引用它.应用程序工作正常,但让我警告使用@string资源
示例按钮:
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="click here" />
Run Code Online (Sandbox Code Playgroud)
我的问题是,如果我这样做或者它(@string资源)仅用于国际化,它是否会影响我的应用程序性能.
假设在apk中我们在strings.xml中有1000个字符串.
因此,当我们在设备上运行此应用程序时,所有字符串始终在堆内存中可用.或者当我们调用getString()Context的方法来加载字符串时,它们会加载到内存中.
运行时是否所有字符串都在堆中?
class StaticTest{
public static SomeClass statVar = new SomeClass();
}
Run Code Online (Sandbox Code Playgroud)
在此之后,如果我们StaticTest.statVar随机访问和分配一些新对象,那么所有这些对象何时会被垃圾收集?答:在正常的垃圾收集时间内。
但是如果 thisstatVar引用了一些实例变量(对象)呢?
不清楚?
好的,静态变量的生命周期是在类卸载之前。在 Web 应用程序中,我们在静态上下文中初始化许多东西。如果我们提供了一些对这个静态上下文的对象引用,但我们没有释放它们,那么它是如何被垃圾收集的?
我很乐意就此进行讨论。