java - Java 和 Android 中对象的作用域和销毁

标签 java android performance greendao

在我的 Android 应用程序首次启动(安装后)期间,我创建了近 1000 个对象,然后通过 greenDAO ORM 将它们保存在 SQLite 数据库中。我是 Java 编程新手,我想问一下是否可以通过放入括号来通过垃圾收集器调用对象销毁来获得更好的性能。

代码是:

Foo foo1 = new Foo();
Foo foo2 = new Foo();
Foo foo3 = new Foo();
Foo foo4 = new Foo();
.
.
.
Foo foo1000 = new Foo();

通过作用域销毁内存中的对象的想法是:

{
   Foo foo1 = new Foo();
   Foo foo2 = new Foo();
}
{
    Foo foo3 = new Foo();
    Foo foo4 = new Foo();
}
{
    .
    .
    .
    Foo foo1000 = new Foo();
}

所以我的想法是垃圾收集器在通过每个括号后立即从内存中释放对象。如果这不是正确的方法,您对在这种情况下获得更好性能的建议是什么?

最佳答案

就您而言,如果您不需要同时保存类的多个实例,您不妨创建一个对象并重复使用它 1000 次。

Foo my_foo = new Foo();

for(int i = 0; i < 1000; i ++){
    my_foo.setValue(i);
    saveToDB(my_foo);
}

关于java - Java 和 Android 中对象的作用域和销毁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34440870/

相关文章:

android - 为什么某些 Android Studio 类会以不同的颜色突出显示?

java - 菜单驱动的 Java 可在 3 个类别之间进行选择。如何将所有这些类合并到一个类中?

java - 通过 Jackson 将 JSON 转换为 JAVA

android - 开发通用 Android 应用程序(手机和平板电脑)

android - 更改包名称后 FCM 不工作

Javascript 在点击时更改整个 div

c# - 在 C# 中读取 csv 文件以提高时间效率的最佳方法

ruby - 为什么#map 比#each 更有效?

java - 生成所有可能的 8 位二进制字符串

java - 获取 java.io.IOException : stream active in a client server Java socket program