[개발도서 정리] - 2장 자바와 절차적/구조적 프로그래밍
자바는 객체 지향 언어이면서 더 근본적으로는 프로그래밍 언어다.
- JDK(Java Development Kit)
- 자바 개발 도구 - JRE(Java Runtime Environment)
- 자바 실행 환경 - JVM(Java Virtual Machine)
- 자바 가상 기계
객체 지향 프로그램에서 메모리 사용 방식
- 코드 실행 영역
- 데이터 저장 영역
- Static 영역- Stack 영역
- Heap 영역
public Class Test {
public static void main(String[] args) {
System.out.println("Test");
}
}
- JRE에서 프로그램의 main() 메서드 존재 확인
- JRE가 JVM을 동작 시킴
- 동작한 JVM은 목적 파일을 받아 목적 파일을 실행
- JVM은 java.lang 패키지(모든 자바 프로그램이 반드시 포함하게 됨)를 static 영역에 놓음
- JVM은 개발자가 작성한 모든 클래스와 import 패키지를 static 영역에 가져다 놓음
- 위 코드의 2번째 줄 실행 시 main() 메서드의 스택 프레임을 stack 영역에 할당
- 스택 프레임은 여는 중괄호를 만날 때마다 생성(클래스를 정의하는 중괄호는 제외)
- 메서드의 인자를 저장할 변수의 공간을 스택 프레임 맨 아래 할당
- sout 실행
- 닫는 중괄호를 만나면 스택 프레임 소멸
- 지역 변수도 스택 영역에 생김 (스택 프레임이 사라지면 같이 사라짐)
- 클래스 멤버 변수는 Static 영역에 생김(자리를 잡고 나면 JVM이 종료될 때까지 그대로 있음) JAVA 8 버전 부터는 Heap 영역
- 객체의 멤버 변수는 Heap 영역에 생김 GC가 발생하면 소멸된 객체의 멤버 변수는 사라짐
Author And Source
이 문제에 관하여([개발도서 정리] - 2장 자바와 절차적/구조적 프로그래밍), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@crypt2r/개발도서-정리-2장-자바와-절차적구조적-프로그래밍저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)