728x90
원래는 static 키워드를 먼저 정리하려 했는데...
코드가 어떻게 돌아가는지는 알아야하니까..!
자바는 OS에 종속적이지 않다.
윈도우든, 맥이든, 리눅스든 운영체제에 구애받지 않는다.
그것을 가능하게 만들어 주는 것이 JVM이다.
JVM은 자바의 코드가 운영체제 위에서 돌아갈 수 있도록 바이트 코드 -> 기계어로 변환해주는 가상머신이다.
JVM의 구성요소
클래스 로더
클래스를 처음 참조할 때 여러개의 클래스를 묶어서 한번에 메모리에 올린다!(링킹 + 로딩)
실행 엔진
작성한 코드가 운영체제에서 실행이 될 수 있도록 바이트 코드를 기계가 실행할 수 있는 형태로 변경한다!
- 가비지 컬렉터
- 동적으로 생성된 인스턴스들을 관리한다!
- 더이상 사용되지 않는 인스턴스를 찾아 메모리에서 삭제한다!
런타임 데이터 공간
프로그램을 수행하기 위해 운영체제에게서 할당받은 메모리 공간!
JVM 스택 영역 | 메서드가 호출될 때 할당됨 |
Heap 영역 | 객체 생성 시 할당됨 |
Method Area | 클래스 로더에서 클래스/인터페이스, static 키워드 등이 저장됨 |
728x90
'JAVA' 카테고리의 다른 글
백준 알고리즘 17255 (0) | 2024.03.29 |
---|---|
JAVA TIL - 04 Java.base 모듈 - java.lang (0) | 2024.03.15 |
JAVA TIL - 02 abstract 추상 메서드/클래스 (0) | 2024.03.12 |
JAVA TIL - 01 다형성 (2) | 2024.03.12 |