在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删除引用。

假设你有Aclass:

 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); } }