Java

객체의 생명주기

DGeon 2023. 7. 26. 15:30

객체는 힙(Heap)영역에 저장되고, 변수는 스택(stack)영역에 저장 됩니다.

가비지 컬렉터에 의해 해당 메모리가 회수된다.

 

객체는 new키워드를 사용해 생성자를 호출할떄 생성되고 힙에 객체의 메모리 공간에 배정된다.

 

1. 로컬(지역) 변수

  • 지역변수는 처리 블로내에서만 사용할 수 있는 변수(메서 등 기타 블록 내)
  • 변수 선언한곳에서 생성되고 블록이 종료한 시점에서 종료

2. 인스턴스변수

  • 클래스의 필드로 선언하는 변수(클래스 블록 내)
  • 객체가 생성 될때 생성

3. 클래스 변수

  • 클래스가 메모리에 로드 될 때 생성하고 언로드 될 때 종료
  • static 필드로 선언한 변수

4. 가비지 컬렉션(GC)

  • 유효하지 않는 메모리가 발생되면 JVM의 가비지 컬렉터가 불필요한 메모리를 정리해준다.

5. Servlet 생명주기

  • 클라이언트의 요청이 오면 servlet클래스가 로딩되어 요청에 대한 servlet 객체 생성
  • 서버는 init()메소드를 호출하여 servlet을 초기화
  • serive()메소드를 호출하여 브라우저의 요청을 처리
  • service()메소드는 특정 Http요청(GET,POST,DELETE,PUT 등을 처리하는 메소드인 (doGET, doPOST 등)을 호출
  • 서버는 destroy()메소드를 호출하여 Servlet을 제거

6. Bean 생명주기

  • 객체생성
  • 의존설정
  • 초기화
  • 소멸