我的理解,就是一个对象没有被引用的时候,就会被回收。是这样吗?   还有个问题,, JAVA怎么获取变量的地址,
像C一样,, int *p = &a;

解决方案 »

  1.   

    没有办法获得所谓的变量的地址。Java不支持C的取地址符号 &
      

  2.   

    地址对于java程序员是透明的,是不允许操作内存的。至于垃圾对象 没有被引用当然就认为是垃圾对象,垃圾回收线程自然就把他回收了,还有匿名对象呀,用完就回收了。
      

  3.   

    首先说说垃圾对象,所谓的垃圾对象就是程序中不再对其进行引用的对象(可以说不再使用),这个一般等垃圾回收器来将其回收。另外我们应该明白:在《java编程思想》这本书上讲到垃圾回收器回收一般是在内存不足或者是在所运行的程序关闭的时候,甚至是在你关闭自己的电脑的时候,垃圾回收器才会起作用,所以像是被回收了的对象又被使用的情况一般是不存在的。对于如何取得变量的地址这个问题没有怎么研究过,不过变量的地址在java中是以对象的形式存在的。
      

  4.   

    方法体里面创建的局部对象,出了方法体之后,就没有用了,这就成为了垃圾对象,垃圾回收器会在满足一定的条件下回收这块内存。又如String abc=new String("aaaa");当你调用abc=null;时 new出来的对象就没有引用指向他了,因此就成为了垃圾对象,也会被回收的。
      

  5.   

    你的理解是对的,至于变量的地址的话,当你new一个对象的时候它返回的就是一个变量地址或是变量的句柄(根据JVM的不同而不一样),你的所有操作都是对变量地址的操作,比如说赋值啊什么的。
      

  6.   

    1,一个对象没有被引用的时候,就会被回收
    2,java语言本身是没有提供任何方法来查看内存地址的。关于加载类对象完全是由JVM来完成的,出于安全和方便的考虑,JVM管理内存对Java应用程序员是透明的
      

  7.   


    一个对象没有被引用的时候,就会被回收
    java语言本身是没有提供任何方法来查看内存地址的。关于加载类对象完全是由JVM来完成的,出于安全和方便的考虑,JVM管理内存对Java应用程序员是透明的