我正在开发一个项目,我需要将一些数据打印到文件中.在调试阶段,我想覆盖旧的文本文件,这样我就不必删除旧文件只是为了查看我在代码中所做的一些更改的结果.目前,新的输出数据要么添加到文件中的旧数据中,要么文件根本不会更改(另外,为什么会这样?).以下是代码的打印部分:
public class Test {
public static void main(String[] arg) {
PrintWriter pw = null;
try {
pw = new PrintWriter(new FileOutputStream("Foo.txt", true));
} catch (Exception e){}
double abra = 5;
double kadabra = 7;
pw.printf("%f %f \n", abra, kadabra);
pw.close();
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
我有一个程序,我将使用一个非常大的short[]数组:
import java.lang.Math;
public class HPTest {
public static void main(String[] args) {
int n = 30;
short[] a = new short[(int)Math.pow(2,n)];
}
}
Run Code Online (Sandbox Code Playgroud)
据我所知,short[]数组应该每个元素使用2个字节,因此具有2 ^ 30个元素的数组应该需要大约2 GiB的RAM.
为了运行该程序,我因此尝试了
java -Xms2000m HPTest
Run Code Online (Sandbox Code Playgroud)
但仍然有堆空间错误.即使在3000m我得到相同的错误,但在4000m它工作.
有什么想法,为什么我必须远远高于估计的限制2000m?
编辑:正如许多用户所指出的那样,我在声明短路需要1个字节而不是2个字节时犯了一个非常尴尬的错误.那么问题应该是为什么它不足以满足要求2000m.
我想知道是否有适合“快速”获取(按索引)和“快速”删除的java接口。“快速”是指比更好O(n)。
编辑:只有从集合中随机选择一个元素时才需要get方法。另外,标题应该说“收藏”而不是“界面”。
我试图更好地理解Java中匿名类的概念.从本网站的其他答案中,我了解到匿名类可以使用包含类的非最终字段OuterClass.this.myField.
我使用接口创建了以下简单的测试用例AnonInt,以及AnonTest带有foo返回实现的匿名类实例的方法的类AnonInt.Dspite我正在使用System.out.println(a)而不是System.out.println(AnonTest.this.a)代码工作并打印正确的结果.怎么会这样?
public interface AnonInt {
void print();
}
public class AnonTest {
private int a;
public AnonTest(int a) {
this.a = a;
}
public AnonInt foo() {
return new AnonInt() {
public void print() {
System.out.println(a);
}
};
}
public static void main(String[] args) {
AnonTest at = new AnonTest(37);
AnonInt ai = at.foo();
ai.print();
}
}
Run Code Online (Sandbox Code Playgroud)