Link Search Menu Expand Document

Java Basic

Table of contents

  1. Programming Process
  2. Compiler
  3. Bytecode
  4. JVM (Java Virtual Machine)
  5. JVM Configuration

Java Basic

Programming Process

자바프로그램의 실행과정

Compiler

자바 컴파일러, 자바를 가지고 작성한 자바 소스 코드를 자바 가상 머신이 이해할 수 있는 자바 바이트 코드로 변환

▸ javac.exe라는 실행 파일 형태로 설치됨

Bytecode

자바 바이트 코드, 자바 가상 머신이 이해할 수 있는 언어로 변환된 자바 소스 코드를 의미

▸ 자바 컴파일러에 의해 변환되는 코드의 명령어 크기가 1바이트라서 자바 바이트 코드라고도 불림

▸ 확장자는 .class

▸ 자바 가상 머신만 설치되어 있으면, 어떤 운영체제에서라도 실행될 수 있음

JVM (Java Virtual Machine)

자바 가상 머신, 자바 바이트 코드를 실행시키기 위한 가상의 기계

▸ 자바로 작성된 모든 프로그램은 자바 가상 머신에서만 실행될 수 있으므로, 자바 프로그램을 실행하기 위해서는 반드시 자바 가상 머신이 설치되어 있어야 함

▸ 오라클은 대부분의 주요 운영체제뿐만 아니라 웹 브라우저, 스마트 폰, 가전기기 등에서도 자바 가상 머신을 손쉽게 설치할 수 있도록 지원

▸ 서로 다른 운영체제라도 자바 가상 머신만 설치되어 있다면, 같은 자바 프로그램이 아무런 추가 조치 없이 동작

▸ 자바 프로그램과는 달리 자바 가상 머신(JVM)은 운영체제에 종속적이므로, 각 운영체제에 맞는 자바 가상 머신을 설치해야함

JVM 장점

개발자는 한 번만 프로그램을 작성하면, 모든 운영체제에서 같이 사용 가능

JVM 단점

자바 프로그램은 일반 프로그램보다 자바 가상 머신이라는 한 단계를 더 거쳐야 하므로, 상대적으로 실행 속도가 느림

JVM Configuration

자바 가상 머신의 구성

  1. 자바 인터프리터(interpreter)

    자바 컴파일러에 의해 변환된 자바 바이트 코드를 읽고 해석하는 역할

  2. 클래스 로더(class loader)

    자바는 동적으로 클래스를 읽어오므로, 프로그램이 실행 중인 런타임에서야 모든 코드가 자바 가상 머신과 연결

    이렇게 동적으로 클래스를 로딩해주는 역할을 하는 것이 클래스 로더

  3. JIT 컴파일러(Just-In-Time compiler)

    자바 컴파일러가 생성한 자바 바이트 코드를 런타임에 바로 기계어로 변환하는 컴파일러를 의미

    → 동적 번역(dynamic translation)이라고도 불리는 이 기법은 프로그램의 실행 속도를 향상시키기 위해 개발

  4. 가비지 컬렉터(garbage collector)

    더는 사용하지 않는 메모리를 자동으로 회수

    ▸ 개발자가 따로 메모리를 관리하지 않아도 되므로, 더욱 손쉽게 프로그래밍을 할 수 있도록 도움


Table of contents


이 웹사이트는 jekyll로 제작되었습니다. Patrick Marsceill, Distributed by an MIT license.