Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

자바의 고립 섬

<시간/>

개체가 사용된 후에는 가비지 수집기 클래스를 사용하여 메모리에서 할당이 해제됩니다. 해당 객체에 대한 참조가 없다는 사실에 따라 객체가 소멸됩니다. Garbage Collector 클래스는 소멸되어야 하는 객체에 대해 'finalize' 함수를 호출합니다.

고립 섬이란 무엇인가요?

두 개체 'a'와 'b'가 서로를 참조하고 다른 개체에 의해 참조되지 않는 경우 격리 섬이라고 합니다.

서로 참조하지만 참조되지 않는 개체의 그룹이며 다른 응용 프로그램의 다른 개체입니다.

참고 − 참조되지 않은 단일 개체도 고립된 섬입니다.

예를 들어 보겠습니다 -

예시

public class Demo{
   Demo i;
   public static void main(String[] args){
      Demo my_ob_1 = new Demo();
      System.out.println("Demo object one has been created");
      Demo my_ob_2 = new Demo();
      System.out.println("Demo object two has been created");
      my_ob_1.i = my_ob_2;
      my_ob_2.i = my_ob_1;
      my_ob_1 = null;
      my_ob_2 = null;
      System.gc();
   }
   @Override
   protected void finalize() throws Throwable{
      System.out.println("The finalize method has been called on the object");
   }
}

출력

Demo object one has been created
Demo object two has been created
The finalize method has been called on the object
The finalize method has been called on the object

Demo라는 클래스에는 주요 기능이 포함되어 있습니다. 여기에서 Demo 클래스 유형의 변수가 생성됩니다. Demo 클래스의 인스턴스가 생성되고 두 번째 객체가 첫 번째 객체의 Demo 객체에 할당됩니다. 두 번째 dobject에서도 반대 방식으로 동일한 작업이 수행됩니다. 이제 이 두 객체가 모두 null에 할당되고 'System.gc' 함수가 호출됩니다. 이제 '완료' 기능이 무시됩니다.