如何在Java中销毁整数?

时间:2018-01-11 16:23:29

标签: java

如何从内存中删除int?

int i = 10;
//i = null;
//i = 0;

我已经尝试过以上的事情了。我不能把它弄为空,那该怎么办?

2 个答案:

答案 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将在类加载时分配,通常是在程序运行时。