일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- oauth
- Spring Boot
- AWS
- html
- react native
- pandas
- C++
- google 로그인
- Loss Function
- marksense.ai
- 2021 제9회 문화공공데이터 활용경진대회
- 졸프
- google cloud
- YOLOv5
- 순환참조
- Spring
- 커스텀 데이터 학습
- matplotlib
- Expo
- google login
- idToken
- OG tag
- yolo
- JPA
- STT
- 코드업
- @Transactional
- javascript
- skt fellowship 3기
- 양방향 매핑
Archives
- Today
- Total
민팽로그
자바 특징 및 JVM, JRE, JDK 본문
자바의 특징
- 운영체제에 독립적: 자바 응용프로그램은 JVM을 통하여 동작하기 때문에 운영체제에 독립적. 하지만 JVM은 운영체제에 종속적임.
- 객체지향 언어: 상속, 캡슐화, 다형성 등 객체지향 언어의 특징을 잘 갖고 있음.
- 자동 메모리 관리(Gargage Collection): 자바 프로그램 실행 시 가비지 컬렉터가 자동으로 메모리를 관리. 가비지 컬렉터가 사용하지 않는 메모리를 체크하고 반환하는 작업을 자동으로 수행.
- 멀티 쓰레드 지원: 자바 멀티쓰레드 프로그램은 시스템과 관계없이 구현 가능. 관련된 라이브러리(Java)가 제공되어 구현 용이. 자바 인터프리터가 여러 쓰레드에 대한 스케줄링을 담당.
- 동적 로딩 지원: 자바로 작성된 애플리케이션은 보통 여러 클래스로 구성 -> 실행 시 필요한 시점에 클래스를 로딩하여 사용 가능. 일부 클래스가 변경되어도 전체 애플리케이션을 컴파일하지 않아도 됨.
JVM(Java Virtual Machine)
- 자바 애플리케이션은 JVM를 통해서 실행됨.
- 자바 애플리케이션을 클래스 로더를 통해 읽어들여 자바 API와 함께 실행.
- 자바 컴파일러가 자바 바이트 코드를 생성하면 JVM이 기계어 코드로 해석하여 실행.
- 하드웨어에 맞게 완전히 컴파일된 상태가 아니라 실행 시에 해석되기 때문에 속도가 느리다는 단점 -> 최근에는 기술 발전으로 속도 문제가 많이 개선됨.
JRE와 JDK
- JRE(Java Runtime Enviornment): JVM과 자바 API로 구성. 자바 응용 프로그램을 실행하는 데에 필요한 환경을 구성.
- JDK(Java Development Kit): JDK를 설치하면 JVM 및 자바 API 등 자바를 개발하는 데에 필요한 프로그램들이 설치됨. 자바 프로그램을 개발할 수 있는 환경을 제공. JDK는 JRE를 포함하므로 JRE를 별도로 설치할 필요가 없음.
reference
Java의 정석 - 남궁성
Comments