자바 static 메소드 내부 지역변수 메모리 변화에 대해 궁금합니다~
글쓴이: busungg / 작성시간: 화, 2014/07/01 - 5:16오후
자바에서
public class A{ public static String B{ StringBuilder c= new StringBuilder(); c.append("메모리"); return c.toString(); } }
1. 위의 코드처럼 static 메소드 안에 지역변수가 존재할때 B 메소드가 호출될시 지역변수 c의 메모리는 B메소드의 실행이 끝나고 어떻게 될까요?
2. B 메소드가 여러번 호출될시 new로 생성되는 StringBuilder 클래스 메모리들은 어떻게 될까요?
Forums:
아는대로만.
1. toString에서 새로 스트링을 리턴하므로 c자체는 일정 시간이 흐른 후 GC에 의해 소멸되겠죠. 물론 코드를 바꿔서 레퍼런스 자체를 리턴한다면 유지되겠지요.
2. 루프를 돌리면서 프로세스 관점으로 살펴보면 아마 어느정도 카운터가 증가하다가 GC에 의해 확 줄어들고 하는게 반복될겁니다.
--
감사합니다~
메모리 변화가 너무 궁금했는데 알려주셔서 감사합니다~
댓글 달기