JVM 구조

Hello.java(자바파일) ---> Java Compiler(javc) ---> hello.class(바이트코드) ---> 클래스로더 ---> JVM(OS로부터 메모리 영역을 할당받음) ---> [자바 인터프리터, JIT Compiler,가비지콜렉터 ---> Runtime 시스템 ] ---> 운영체제(OS) ---> 하드웨어(HW)

  • Java : 사람이 읽을 수 있는 방식으로 작성한 코드 파일
  • Java Compiler : Java 파일을 Class 파일로 만들어주는 파일
  • 바이트코드 : 운영체제가 읽을 수 있는 Java Compiler가 변환한 코드 
  • Class : 운영체제가 이해할 수 있는 방식의 코드 파일 / 바이트코드의 확장자
  • 클래스 로더 : 바이트코드를 메모리 영역으로 운반하는 역할의 운반기
  • JVM : Java Virture Machine 의 약자로 가상의 머신을 만들어 운영체제(window, mac, Linux)와 기기(PC, Mobile, 서버)에 상관없이 Java 프로그램을 실행 가능하게 만들어 주는 것.
  • 메모리 영역 : 운영체제로 부터 JVM이 할당받은 영역 (Java 데이터를 저장하는 영역)
  • 자바 인터프리터 : 운영체제가 읽은 바이트코드를 기기가 실행할 수 있는 로우레벨의 기계어로 변환하는 것
  • JIT Compiler : 인터프리터의 효율을 올려주는 컴파일러
  • 가비지 콜렉터 : 메모리 영역에서 안쓰는 영역 주기적으로 청소하는 역할
  • Runtime 시스템 : 프로그램이 실행중인 상태를 관리하는 시스템

JRE : Java Runtime Environment(자바 실행 환경)이라는 뜻으로 .class로 된 Java프로그램을 실행만 시킬 수 있다.

JDK : Java Development Kit(자바 개발 키드) .java 파일들을 .class 파일들로 변환해주는 Java Compiler (javac) 기능, Jdb(디버깅기능), JRE, Java Development Tools 등을 모두 포함하고있다.

저장공간의 선언

int number;

int = 저장공간의 타입

number = 저장공간(변수)의 이름

값의 저장

1. 초기화 int number = 10;

저장공간을 선언함과 동시에 값을 저장 한다면 초기화

2. 덮어쓰기 number = 10;

저장공간을 먼저 선언하고 저장공간의 데이터를 저장하면 덮어쓰기이다.

+ Recent posts