在java中删除一个对象?
我想删除一个我创build的对象(跟随着你的一个椭圆),但是我怎么做呢?
delete follower1;
没有工作。
编辑:
好吧,我会给更多的上下文。 我正在制作一个可以控制的椭圆形小游戏,还有一个跟随着你的椭圆形游戏。 现在我已经得到了名为DrawPanel.class的文件,这个类在屏幕上绘制所有的东西,并且处理碰撞,声音等等。我得到了一个enemy.class,就是玩家的椭圆形。 我有一个entity.class,这是你可以控制的玩家。 如果玩家与追随者相交,我希望我的玩家对象被删除。 我这样做的方式:
public void checkCollisions(){ if(player.getBounds().intersects(follower1.getBounds())){ Follower1Alive = false; player.health = player.health - 10; } }
您应该通过分配null或者将其声明的块保留下来来删除对它的引用。 之后,它将被垃圾收集器自动删除(不是立即,但最终)。
例1:
Object a = new Object(); a = null; // after this, if there is no reference to the object, it will be deleted by the garbage collector
例2:
if (something) { Object o = new Object(); } // as you leave the block, the reference is deleted. Later on the garbage collector will delete he object itself.
不是你正在寻找的东西,但FYI:你可以通过调用System.gc()来调用垃圾回收器。
你的C ++正在显示。
java中没有delete
,所有的对象都在堆上创build。 JVM有一个垃圾收集器,它依赖于引用计数。
一旦没有更多的对象引用,就可以被垃圾收集器收集。
myObject = null
可能不行; 例如:
Foo myObject = new Foo(); // 1 reference Foo myOtherObject = myObject; // 2 references myObject = null; // 1 reference
所有这一切都将引用myObject
设置为null,它不会影响曾经指向的对象myObject
,只是简单地将引用计数递减1.因为myOtherObject
仍然引用该对象,所以它还不可用于收集。
如果你想帮助对象消失,请将其引用设置为null。
String x = "sadfasdfasd"; // do stuff x = null;
只要没有其他对象的引用,将引用设置为null将使得对象更有可能被垃圾收集。
你不需要删除java中的对象。 当没有对象的引用时,它将被垃圾收集器自动收集。
是的,Java是垃圾回收,它会为你删除内存。
您可以使用null
删除引用。
假设你有A
class:
A a = new A(); a=null;
last语句将删除对象a
的引用,该对象将被JVM“垃圾回收”。 这是最简单的方法之一。
//Just use a List //create the list public final List<Object> myObjects; //instantiate the list myObjects = new ArrayList<Object>(); //add objects to the list Object object = myObject; myObjects.add(object); //remove the object calling this method if you have more than 1 objects still works with 1 //object too. private void removeObject(){ int len = myObjects.size(); for(int i = 0;i<len; i++){ Objects object = myObjects.get(i); myObjects.remove(object); } }