-1

好吧,我正在尝试创建一个分配 10000 个有理对象而不将它们中的任何一个保存在变量中的程序,这样它们就都变成了垃圾。之后,我必须测量垃圾收集前后的可用内存量,并使用差异来报告释放了多少字节。到目前为止,我已经创建了两个 .java 文件。Rational.java 和 gc.java。我创建了构造函数 Rational,因此我可以在我的 gc.java 文件的 void run 方法中“调用”它。构造函数创建一个新的有理对象,其值为 x/y。

但是,我得到错误: Java 错误:找不到符号

符号方法 gcd(Math.abs(x),Math.abs(y));

位置类 Rational

1 个错误

这是我的两个 JAVA 文件:

RATIONAL.java

import acm.program.*;

public class Rational {

    public Rational(int x,int y) {

        int g = gcd(Math.abs(x),Math.abs(y));
        int num;
        int den;
        num = x/g;
        den = Math.abs(y)/g;
        if (y<0) {
            num = -num;
        }
    }
}

和 GC.java

import acm.program.*;


public  class gc extends ConsoleProgram {

    public void run() {

        println("Allocating 10000 objects");

        for(int i = 0;i<10000;i++) {
            new Rational(i+1,i+2);
        }

        Runtime myTime = Runtime.getRuntime();
        long a = myTime.freeMemory();
        println(a);
        myTime.gc();
        long b = myTime.freeMemory();
        println(b);
        println((a-b));
    }
}

我找不到是我的错误,所以我可以修复它。您的帮助将不胜感激

问题是,根据这里的编译器: int g = gcd(Math.abs(x),Math.abs(y));

编辑:工作!刚刚创建了 gcd 方法吧!

4

1 回答 1

3

是的,因为您没有调用任何方法gcd!也许你应该写一个?

于 2013-12-31T02:31:15.463 回答