将局部变量限制在方法内是否会使垃圾回收更容易?

时间:2019-04-22 15:43:02

标签: java android memory methods garbage-collection

在内存方面,我正在尝试针对我正在处理的Android项目优化代码。

我正在寻找一种减少累积垃圾的方法,我的主要问题是,如果仅在特定方法(初始化或其他方法)中使用它们,是否值得在类中注入(通过匕首)变量?目的)还是只应在受尊重的方法中声明它们,否则将在执行此方法后增加垃圾收集?

F.i。是否存在以下情况:

@Inject
Foo foo;

@Overrides
public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        DaggerAppComponent.create().inject(this);
}


public void bar() {
       foo.bar();
}

而不是下面的那个(假设该对象仅在bar方法中使用)?

@Overrides
public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
}


public void bar() {
       Foo foo = new Foo();
       foo.bar();
}

第二种情况不是更有效地利用了内存,使对象准备好进行垃圾收集器了吗?

最后,在任何情况下建议使用System.gc()吗?

谢谢!

0 个答案:

没有答案