[자바] 스택이 충분히 크면 힙은 없어도 될까?
rowing0328
Intro개발하면서 문득 이런 생각이 들었다. "스택 메모리를 무한히 쓸 수 있다면, 굳이 힙이 필요할까?" GC도 안 돌리고, 다 스택에 넣고 쓰면성능도 빠르고 깔끔하지 않을까 싶었다. 그런데 공부해보니까, 그렇게 단순한 얘기가 아니었다. 스택과 힙의 역할은 명확히 다르다자바에서 스택은 메서드 호출 시 생기는지역 변수, 매개변수 등을 저장하는 공간이다. 스레드마다 따로 존재하고, 메서드가 끝나면 스택 프레임도 바로 날아간다. 반면 힙은 new로 만든 객체들이 저장되는 공간이다.객체가 참조되지 않으면 GC가 알아서 지운다. 즉, 프로그램이 돌아가는 동안계속 살아있을 수도 있는 공간이다. 스택만 커지면 힙 없이도 될까?이론적으로는 가능할 수도 있다.모든 데이터를 지역 변수로 만들고,공유도 안 하고, ..