【问题标题】:Duplicate Memory Allocation Java [duplicate]重复的内存分配Java [重复]
【发布时间】:2016-10-08 09:40:43
【问题描述】:

在我的代码中,我有一个或多个声明一些对象的方法,例如:

public void method{
ArrayList <Integer> al = new ArrayList<>(); 
//do smth else
}

我多次调用这些方法。是否会因为调用新的 Operator 而在每次迭代中分配新的内存? 提前致谢!

【问题讨论】:

  • 这是一个关于内存管理如何在编程语言(尤其是 Java)中工作的基本 CS 主题。以防万一您在其他任何地方都找不到答案:如果您多次调用此方法,是的,您会在内存中创建多个 al 副本。但是一旦方法结束,在 Java 中,对象的引用就不再使用了,GC 可以尽可能地释放内存。

标签: java android memory allocation


【解决方案1】:

是的,你每次迭代都会有一个新的内存分配,你可以这样做以避免多次内存分配

ArrayList <Integer> al = null; //make the declaration outside the method   
public void method{
    if (al == null){
        al= new ArrayList<>();
    }else{
        al.clear();}

//do smthing with you're arrayList here
  }

【讨论】:

  • 作为旁注,做这样的事情会使代码更不清楚,同时不会提供真正的性能优势。
猜你喜欢
  • 1970-01-01
  • 2012-12-23
  • 2017-02-20
  • 1970-01-01
  • 2011-06-23
  • 2018-06-17
  • 2015-11-17
  • 2012-12-13
  • 2013-12-19
相关资源
最近更新 更多