[Java] 1. Java의 소개

garam0410·2021년 3월 18일
0

Java

목록 보기
1/4
post-thumbnail

일반적인 프로그램 개발 순서

일반적으로 프로그램은 다음과 같은 순서로 개발한다.

  • C언어

test.c 를 컴파일 하면 test.exe 라는 컴퓨터에서 바로 실행할 수 있는 파일이 생성된다.

  • Java

test.java 를 컴파일하면 test.class 라는 파일이 생성된다.


✔ 컴파일 했을 때 차이점

C언어는 실행파일이 컴퓨터에서 바로 실행시킬 수 있는 기계어 코드
Java는 바이트 코드

바이트코드 : 기계어로 변환하기 전 중간단계의 코드

  • 컴퓨터는 기계어로 된 코드만을 실행할 수 있는데, Java는 컴파일한 실행파일이 바이트 코드 이기 때문에 컴퓨터에서 바로 실행할 수 없다.





Java 개발 및 실행 순서

컴퓨터에서 실행하기 위해서는 바이트 코드기계어 코드로 변환하는 작업이 필요하다.

코드를 변환함과 동시에 프로그램 실행에 관련된 모든 작업은
자바 가상머신(JVM, Java Virtual Machine) 에서 담당한다.


JVM (Java Virtual Machine)

JVM은 Java 실행 파일이 각 컴퓨터의 운영체제에 맞게 실행될 수 있도록 기계어 코드로 변환 작업을 한 후 Java 실행 파일을 구동한다.

이러한 실행 구조의 큰 장점은, 실행 파일이 실행되는 컴퓨터의 운영체제가 달라져도 추가적인 작업을 할 필요가 없다는 것이다.

그 이유는, 운영체제와 실행 파일 사이에 JVM이 있어서 JVM이 각 운영체제에서 실행할 수 있도록 처리하기 때문이다.

  • Java 실행 구조



  • C 실행 구조




JVM 실행환경

Java 프로그램이 실행 될 때, JVM은 항상 일정한 처리과정을 거친다.

  • 클래스 로더 (Class Loader)

    실행에 필요한 모든 파일 (*.class)을 찾아준다.


  • 바이트 코드 검증 (Byte code verifier)

    클래스 로더가 모든 실행파일(*.class)를 준비한 후, 해당 파일의 코드가 올바른지 확인한다.
    실행 시점에 코드의 유효성을 검증하는 과정을 거치므로 보안에 강하다.


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

    바이트 코드를 기계어 코드로 변환하는 기능

    • 인터프리터(Interpreter) : 명령문 단위로 처리
    • JIT(Just-In-Time) : 파일 전체를 한번에 처리, 인터프리터(Interpreter) 보다 빠른 속도

0개의 댓글