如何从内存中删除int?
int i = 10;
//i = null;
//i = 0;
我已经尝试过以上的事情了。我不能把它弄为空,那该怎么办?
答案 0 :(得分:1)
简单的答案是,这是绝对必要的。一旦Java垃圾收集器超出范围,它将处理这个问题。如果它没有超出范围,那么它将持续执行程序的其余部分,但仍然不应成为问题。
答案 1 :(得分:0)
你的问题非常基础。在这里提出这些问题之前,您可能希望阅读一些关于Java的内容。但是,要有所帮助:
您正在声明一个原语,而不是对对象的引用。基元直接分配在您声明它的任何内容中。例如,如果在类中声明它是非静态的,那么它将从该类的每个实例(对象)中分配:
class MyIntContainer {
int getI() {
return i;
}
int i = 10; // Your declaration
}
当包含它的对象消失时,原语就会消失。
如果声明在方法的范围内,则int在调用方法时进入堆栈,在方法返回时消失。例如,添加到上面的类定义:
int add(int j) {
int k = i + j; // Your declaration
return k;
}
当调用该方法时,k将在堆栈上分配,并且当调用返回并且方法的堆栈块弹出时它将消失。
最后,如果声明一个静态变量,那么只要加载了包含类,它就会保持不变,这在大多数情况下只要程序正在运行。再次,添加到上面的类定义:
static int a = 10;
变量a将在类加载时分配,通常是在程序运行时。