好吧,我正在尝试创建一个分配 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 方法吧!