希望java类对象具有优化内存利用率

时间:2015-03-03 03:07:27

标签: java memory optimization

我的课程定义为:

public class Percolation{
    private boolean[] openCells;
    private WeightedQuickUnionUF uob;
    public Percolation(int n){
        this.openCells = new boolean[n*n+1];
        this.uob = new WeightedQuickUnionUF(n*n+1);
}

在调用Percolation(n)时,WeightedQuickUnionUF对象和openCells []占用O(n ^ 2)空间。

现在有趣的是,如果我必须调用Percolation(n),某些时候没有(比如t),我不需要调用构造函数Percolation(n),' t'一次,我可以覆盖一次为n分配内存。 但为此我可以找到两个解决方案:

1.在我完成所需的操作然后再次调用Percolation之后释放构造函数使用的内存,但是通过一些odr StackOverflow线程让我意识到它不会确保内存释放,并且依赖于垃圾收集器。< / p>

2.i可以在类渗透中添加一个方法(如下所示)来覆盖WeightedQuickUnionUF类的成员,但问题是WQF的所有成员都是私有的。

3.i可以在WeightedQuickUnionUF类中添加一个方法来覆盖类的成员,但是WeightedQuickUnionUF是只读的。

private void set_containers(n){
        for(int i=0; i<n*n+1 ; i++){
            this.openCells[i] = false;
            this.uob.id[i] = i;
            this.uob.sz[i] = 1;
        }

我在java方面没有太多经验,需要知道如何在这种情况下优化内存利用率。

完整代码:

  

http://ideone.com/Hnorn8

     

http://ideone.com/h3uL0a

谢谢你:)

0 个答案:

没有答案