자바 메모리 구조메소드 영역 : 프로그램을 실행하는데 필요한 공통 데이터를 관리하는 영역으로 프로그램의 모든 영역에서 공유한다.클래스 정보 - 클래스 실행 코드, 필드, 메소드, 생성자 코드 등...static 영역 - static 변수를 보관한다.런타임 상수 풀 - 프로그램을 실행하는데 필요한 공통 리터럴 상수를 보관한다.스택 영역 : 자바 실행 시(각 스레드 별로) 하나의 실행 스택이 생성되며 각 스택 프레임은 지역 변수, 중간 연산 결과, 메소드 호출 정보 정보 등을 포함한다.스택 프레임 - 스택 영역 안에 쌓이는 네모 박스가 하나의 스택 프레임으로 메소드 호출 시마다 하나의 스택 프레임이 쌓이고 메소드 종료 시 해당 스택 프레임이 제거된다.스레드 수 만큼 스택 영역이 생성된다.힙 영역 : 객체와 ..
쓰레드 (Thread)JVM이 시작되면 자바 프로세스가 시작된다.java 명령어로 클래스를 실행시키면 자바 프로세스가 실행되고 main() 메소드가 실행되면서 하나의 쓰레드가 시작된다.많은 쓰레드가 필요한 경우 main() 메소드에서 쓰레드를 생성해주면 된다.하나의 프로세스 내에서 여러 개의 쓰레드가 수행된다.하나의 프로세스 내에 하나 이상의 쓰레드가 수행된다.하나의 쓰레드를 여러 프로세스가 공유하지는 못한다.Tomcat과 같은 WAS(Web Application Server)도 main() 메소드에서 생성한 쓰레드들이 수행되는 것아무런 쓰레드를 별도로 생성하지 않아도 JVM을 관리하는 여러 쓰레드가 존재한다.자바의 쓰레기 객체를 청소하는 GC 관련 쓰레드 등...쓰레드라는 개념이 존재하는 이유는 뭘까?..