Java
- 대표적 객체지향언어
- 가장 많이 쓰이는 개발 언어 중 하나
- 공통 실행환경이 있어 여러 기기에서 실행 가능
- 코드 이해와 유지보수가 쉬움
- 안정성이 높아 프로그래밍 오류를 방지하고 보안상 안전
- 대규모 앱 개발이 가능
- 다양한 개발 도구와 라이브러리 사용 가능
JVM
: Java Virtual Machine의 약자로 "자바 가상 머신" 이라는 의미
- 어느 기기에서나 자바를 실행시킬 수 있는 가상의 기기를 만들어주는 것
- 메모리 공간이 할당된 곳
JVM 환경 구성
바이트(Byte) 코드
: 자바 프로그램을 변환한 코드
- 작성한 코드(.java 파일)를 OS가 읽을 수 있도록 바이트코드(.class 파일)로 Java 컴파일러가 변환한 코드
인터프리터
: Java .class 코드 해석기
- OS가 읽은 바이트 코드(.class)를 기계가 실행할 수 있는 기계어로 번역
JIT 컴파일러
: 빠른 Java .class 코드 해석기
- 인터프리터의 효율을 높여주는 서포터 해석기
메모리 영역
: Java의 데이터를 저장하는 영역
- JVM이 돌아가기 위한 영역을 OS에서 할당을 해줘야 하는데 그 때 할당받은 영역이 바로 메모리 영역
클래스 로더 (Class loader)
: 바이트 코드(.class)를 메모리 영역으로 운반하는 운반기
- JVM으로 .class(바이트 코드)를 불러와 메모리에 저장
가비지 컬렉터
: Java 쓰레기 청소기
- 메모리 영역에서 안쓰는 데이터를 주기적으로 흡수해가는 청소기
- 쓰지 않는 데이터는 제거해줘야 메모리 공간을 효율적으로 사용 가능하기 때문에 관리해줘야 함
JVM 환경 프로그램이 동작하는 흐름
1️⃣ 작성한 .java 파일을 컴파일러가 .class 파일로 변환
2️⃣ class loader가 JVM 영역으로 .class 파일을 가지고 감.
3️⃣ 자바 인터프리터와 JIT 컴파일러가 바이트 파일을 기계가 이해할 수 있는 수준까지 해석한 뒤 runtime 시스템(구동이 되는 시스템)으로 넘겨줌
4️⃣ 넘겨주면서 발생하고 소멸되는 모든 변수, 객체 등을 가비지 컬렉터에 의해 청소하면서 메모리를 효율적으로 관리해줌
JRE
: Java Runtime Environment의 약자로, 자바 실행 환경을 의미
- 자바를 실행할 수 있는 환경.
JDK
: Java Development Kit의 약자로, 자바 개발 키트를 의미
JDK 역할 3가지
- Compiler
- JRE
- JDB (디버깅)
모든 프로젝트를 만들 때 main 메서드가 존재해야 함. 자바 프로젝트는 클래스의 main 메서드를 제일 먼저 실행시킴
'내일배움캠프(Sparta) > 자바 문법 종합' 카테고리의 다른 글
[Java] 연산자 / 배열 / 컬렉션 (0) | 2023.10.25 |
---|---|
[Java] 변수 (0) | 2023.10.19 |