[Java] Java와 JVM

Jiisuniui·2023년 10월 19일

Java의 모든 것

목록 보기
1/7
post-thumbnail

Java 특징

  1. 객체 지향 및 네트워크 중심 언어
  2. 공통 실행환경(JVM)이 있어서 여러 운영체제에서 실행 가능
    • 앱 개발에 적합
    • ex) mobile app, server app, web 등
  3. 안정성이 높아서 프로그래밍 오류를 방지하고 보안상 안전
    • byte code로 변환하는 compiler가 오류를 먼저 체크
    • java 자체에서 지원하는 보안 기술
  4. 대규모 앱 개발 가능
    • network 및 db 연결 및 통신 등의 작업을 처리하는 API가 제공
  5. 다양한 개발도구와 라이브러리 사용

Java 구성

1. ⛳️ JVM (Java Virtual Machine)

  • 자바 가상 머신
  • 여러 운영체제에 Java 프로그램을 실행시킬 수 있는 가상의 기기를 만들어 주는 것
  • .java(Code) -> Java Compiler -> .class -> JVM -> Device

2. 💬 Bytecode

  • 운영체제가 읽을 수 있는 Bytecode
  • java file -> class file

3. 📇 인터프리터

  • Java .class 코드 해석기
  • 운영체제가 읽은 Byte Code를 기계가 실행할 수 있는 기계어로 번역

4. 📇 JIT(Just In Time) 컴파일러

  • 빠른 Java .class 코드 해석기
  • 인터프리터의 효율을 높여주는 서포터 해석기

5. 🗂 메모리 영역

  • Java 데이터를 저장하는 영역
  • 운영체제로부터 JVM이 할당받은 메모리 영역

6. 🚚 클래스 로더(Class Loader)

  • .class(Bytecode)를 메모리 영역에 담는 운반기
  • JVM으로 class(Bytecode)를 불러와서 메모리에 저장함

7. 🧹 가비지 컬렉터

  • Java 쓰레기 청소기
  • 메모리 영역에서 안 쓰는 데이터를 주기적으로 흡수해가는 청소기

8. 🎡 JVM 동작방식

  • Runtime: 프로그램이 실행중인 상태
  • Runtime 시스템: 프로그램이 실행중인 상태를 관리하는 시스템

Java 환경 구성

1. JRE (Java Runtime Environment)

  • 자바 실행 환경
  • JRE(JVM)은 .class 파일만 실행 가능

2. JDK (Java Development Kit)

  • 자바 개발 키트
  • Java Compiler(javac): .java를 .class로 변환
  • JRE(JVM): 자바 실행 환경
  • JDB: 디버깅

참고하면 좋은 포스트

profile
why error?

0개의 댓글