

public class Start3 {
public static void main(String[] args) {
int i = 10;
int k = 20;
if (i == 10) {
int m = k + 5;
k = m;
} else {
int p = k + 10;
k = p;
}
// k = m + p;
} // (1)
}
(1) line: 여기서 main() 을 닫는 중괄호로 인해, T 메모리 소멸/ JVM 기동 중지/ JRE가 사용했던 시스템 자원을 운영체제에 반납이 일어난다.
main() 메소드가 프로그램의 시작점이자 끝이기도 합니다.
main() 메소드가 끝나면 JRE는 JVM을 종료하고 JRE 자체도 운영체제 상의 메모리에서 사라집니다. 그럼 T메모리도 이제 운명을 다하고 사라집니다.
기존 언어로 작성한 프로그램은 각 플랫폼(하드웨어와 OS의 조합)용으로 배포되는 설치 파일을 따로 준비해야 했던 불편함을 없애기 위해서 입니다.
자바 개발자가 본인이 사용 중인 플랫폼에 설치된 JVM용으로 프로그램을 작성하고 배포하면 각 플랫폼에 맞는 JVM이 중재자가 되어 각 플랫폼에서 프로그램을 구동하는 데 문제가 없도록 만들어줍니다.
이러한 자바의 특성을 Write Once Run Anywhere 라고 합니다.
[도서] 스프링 입문을 위한 자바 객체 지향의 원리와 이해