산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> java

자바에서 가비지 컬렉션이란?

자바에서 가비지 컬렉션이란 무엇입니까?

자바의 가비지 컬렉션 프로그램이 자동으로 메모리 관리를 수행하는 프로세스입니다. Garbage Collector(GC)는 사용되지 않는 객체를 찾아 삭제하여 메모리를 회수합니다. Java에서 객체의 동적 메모리 할당은 일부 메모리를 사용하는 new 연산자를 사용하여 이루어지며 메모리는 객체 사용에 대한 참조가 있을 때까지 할당된 상태로 유지됩니다.

개체에 대한 참조가 없으면 더 이상 필요하지 않은 것으로 간주되고 개체가 점유한 메모리를 회수할 수 있습니다. Java가 할당 해제를 자동으로 처리하므로 객체를 제거할 필요가 없습니다.

이를 수행하는 기술을 가비지 컬렉션이라고 합니다. . 메모리 할당을 해제하지 않는 프로그램은 시스템에 할당할 메모리가 남아 있지 않을 때 결국 충돌할 수 있습니다. 이러한 프로그램에는 메모리 누수가 있다고 합니다.

Java의 가비지 컬렉션은 자동으로 발생합니다. 프로그램 수명 동안 메모리 할당을 해제할 필요가 없으므로 메모리 누수가 방지됩니다.

C 언어에서 free() 함수를 사용하여 동적으로 할당된 메모리를 해제하는 것은 프로그래머의 책임입니다. 이것이 자바 메모리 관리가 이끄는 곳입니다.

참고:모든 개체는 에서 생성됩니다. 메모리 섹션. 이에 대한 자세한 내용은 이후 자습서에서 설명합니다.

예:Java에서 가비지 수집기 메커니즘을 배우려면

1단계) 다음 코드를 편집기에 복사합니다.

class Student{
int a;
int b;

  public void setData(int c,int d){
    a=c;
    b=d;
  }
  public void showData(){
    System.out.println("Value of a = "+a);
    System.out.println("Value of b = "+b);
  }
  public static void main(String args[]){
    Student s1 = new Student();
    Student s2 = new Student();
    s1.setData(1,2);
    s2.setData(3,4);
    s1.showData();
    s2.showData();
    //Student s3;
    //s3=s2;
    //s3.showData();
    //s2=null;
    //s3.showData();
    //s3=null;
    //s3.showData();
  }
}

2단계) 코드를 저장, 컴파일 및 실행합니다. 그림과 같이 2개의 객체와 2개의 참조변수가 생성됩니다.

3단계) 주석 제거 라인 # 20,21,22. 코드를 저장, 컴파일 및 실행합니다.

4단계) 아래 그림과 같이 두 개의 참조 변수가 동일한 객체를 가리키고 있습니다.

5단계) 23 및 24행 주석 제거. 코드 컴파일, 저장 및 실행

6단계) 아래 다이어그램과 같이 s2는 null이 되지만 s3은 여전히 ​​개체를 가리키고 있으며 Java 가비지 수집에 적합하지 않습니다.

7단계) 25 및 26행 주석 제거. 코드 저장, 컴파일 및 실행

8단계) 이 시점에서 개체를 가리키는 참조가 없으며 가비지 수집 대상이 됩니다. 메모리에서 제거되며 다시 검색할 방법이 없습니다.

자바에서 개체를 삭제하는 방법

1) 개체를 가비지 컬렉션에 적합하게 만들려면 참조 변수를 null로 할당합니다.

2) 기본 유형은 객체가 아닙니다. null을 할당할 수 없습니다.


java

  1. 자바 연산자
  2. 자바 인터페이스
  3. 자바 리소스 사용
  4. 자바 주석
  5. Java의 정적 변수:정적 블록 및 메서드란 [예시]
  6. Java의 인터페이스 대 추상 클래스:차이점은 무엇입니까?
  7. Java의 생성자 오버로딩:프로그램의 정의 및 예제
  8. 자바 - 컬렉션 프레임워크
  9. Java 10 - 향상된 가비지 컬렉션
  10. 자바 10 - 힙 할당