小编Sam*_*les的帖子

当我移出范围但仍保留引用时,Java GC会发生什么?

基本上我是Java的新手,我试图让我的头脑更好.

public class Test {

TestObject objectA;

 public static void main(String args[])
 {
     Test t = new Test();
     t.test();
     while (true){
         try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {}
         System.out.println("Obj A: " + t.objectA.toString()); 
     }
 }

 void test(){
     Object objectB = new TestObject(1, 1);

     objectA = (TestObject)objectB;
     System.out.println("Obj B: " + objectB);

     objectB = null;     System.out.println("Obj B: " + objectB);
 }
Run Code Online (Sandbox Code Playgroud)

}

输出:

Obj B: TestObject@525483cd 

Obj B: null

Obj A: TestObject@525483cd

Obj A: TestObject@525483cd
Run Code Online (Sandbox Code Playgroud)

基本上,我在Method test()中创建一个本地对象objectB,并将它的引用分配给Test对象中的变量objectA.

然后我将局部变量设置为null并验证引用是否已为空.

现在根据我的理解,我已经有效地将一个指针指向该对象.对象仍然存在,objectA保持唯一的引用.这是否意味着垃圾收集器不会收集在具有窄范围的方法中创建的对象?

如果我找到了对象的指针,我的对象会被收集吗? …

java garbage-collection

3
推荐指数
1
解决办法
166
查看次数

如何在vim中根据搜索模式直观地选择线条?

我在一个大文件中有一些方法调用,我想匹配这些行,选择然后把它们作为一个,所以我可以将它们全部放在一个地方.

我可以找到我想要的所有线条,:g/>set但我如何在视觉上选择每条线?

vim

3
推荐指数
1
解决办法
1561
查看次数

标签 统计

garbage-collection ×1

java ×1

vim ×1