Object 에 관해서 질문
가을바람
2023.04.01
안녕하세요 좋은 하루 되시길 바라며
간단한 질문 드립니다
다름이 아니라
public void createSth()
{
Object a = new SomeClass();
a.createAnything();
a.createSomething();
}
위의 함수가 실행이 되었다 치면.. object a는 어떻게 되는건가요.
뭐 사용할 수 없는건 당연하다 하지만 리소스적 측면이 궁금합니다
메모리에서 사라지겠죠? 안사라지면 함수 끝에 a=null해줘야 하나요?
바보 같은 질문 해봅니다. 우문현답 기대합니다^-^
-
설희
감사합니다
-
헤벌심
a 변수는 메소드 안에서 선어되어 있는 자동지역변수 입니다.
즉, 메소드가 호출될때 동적으로 스택에 할당되어서 메모리에 상주되다가
메소드 호출이 끝나면, 메모리에서 사라지는거죠.
메모리 회수는 가비지 컬렉터의 알고리즘에 의해서 회수되는것이라.
회수되는 원리는 가비지컬렉터 알고리즘을 더 공부하시면 될것입니다~ ^
즉, a=null; 을 명시적으로 적어주지 않으셔도 메모리에서는 GC에 의해서 해제됩니다~ ^^