programing

Java에서 개체를 삭제하시겠습니까?

goodjava 2023. 1. 4. 20:06

Java에서 개체를 삭제하시겠습니까?

내가 만든 오브젝트(아래로 이어지는 타원형)를 삭제하고 싶은데 어떻게 해야 하나요?

delete follower1;

효과가 없었습니다.

편집:

좋아요, 제가 상황을 좀 더 설명할게요.당신이 조종할 수 있는 타원형과 당신을 따라오는 타원형으로 작은 게임을 만들고 있어요.파일명은 다음과 같습니다.DrawPanel.class 이 클래스는 화면에 모든 것을 그려 충돌, 사운드 등을 처리합니다.enemy.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 the object itself.

현재 찾고 있는 것은 아니지만 참고: System.gc() 호출로 가비지 컬렉터를 호출할 수 있습니다.

C++가 표시됩니다.

거기에는 없다delete모든 개체가 힙에 생성됩니다.JVM에는 참조 수에 의존하는 가비지 컬렉터가 있습니다.

개체에 대한 참조가 더 이상 없으면 가비지 컬렉터에서 개체를 수집할 수 있습니다.

myObject = null는, 다음과 같이 할 수 없습니다.

Foo myObject = new Foo(); // 1 reference
Foo myOtherObject = myObject; // 2 references
myObject = null; // 1 reference

이 작업은 참조 설정뿐입니다.myObjectnull은 오브젝트에 영향을 주지 않습니다.myObject단순히 기준 카운트를 1씩 감소시키는 것을 제외하고 한 번 지적되었다.부터myOtherObject아직 그 오브젝트를 참조하고 있기 때문에 아직 수집할 수 없습니다.

개체를 제거할 수 있도록 하려면 개체의 참조를 null로 설정하십시오.

String x = "sadfasdfasd";
// do stuff
x = null;

참조를 null로 설정하면 개체에 대한 다른 참조가 없는 한 개체가 가비지 수집될 가능성이 높아집니다.

Java에서는 개체를 삭제할 필요가 없습니다.개체에 대한 참조가 없는 경우 가비지 컬렉터에 의해 자동으로 수집됩니다.

다음을 사용하여 참조를 제거할 수 있습니다.null.

수업이 있다고 칩시다.A:

A a = new A();
a=null;

마지막 문은 개체의 참조를 제거합니다.a이 오브젝트는 JVM에 의해 "쓰레기 수집"됩니다.이것은 가장 쉬운 방법 중 하나입니다.

Java에는 Garbage Collector가 있으며 참조가 더 이상 없을 경우 개체를 삭제합니다.

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

언급URL : https://stackoverflow.com/questions/5757552/deleting-an-object-in-java