자바. 기본 지식

tae_in·2022년 5월 17일
0

자바

목록 보기
4/8

모든 언어들을 처음 배울 때 "Hello World"를 출력해보며 시작하곤한다. 자바는 다른 언어들과 다르게 "Hello World"를 출력하기 위해 알아야 할 내용이 많다. 기본 지식에서는 단순히 코드 작성할 땐 몰라도 상관이 없지만 자바에 대한 이해를 높이기 위해선 알아야 할 내용을 정리해 볼 것이다.

자바소스와 컴파일

우리는 자바를 사용하기 위해 JDK를 설치한다. 설치된 JDK의 디렉토리 중 bin이라는 하위 디렉토리가 있는데 그 안에는 javac.exe와 java.exe 파일이 저장되어 있다. javac.exe파일은 자바파일을 컴파일할 때 사용하며 java compiler의 약어이다. java.exe는 javac.exe파일을 거쳐 만들어진 바이트 코드(class파일)를 기계어로 만들 때 사용한다.

  • 우리가 작성하는 자바 프로그램은 .java라는 확장자를 가진 파일로 저장하게 되는데 이렇게 저장되는 .java파일을 자바파일 또는 자바소스라고 한다.
  • javac 명령어 - "파일을 컴파일해라(. java을 . class로 바꿔라(자바 프로그램 -> 바이트 코드))"
    java - "생성한 클래스 파일을 실행시켜라"

프로그램 실행

자바로 작성한 파일을 실행하기 위해서는 두 번의 단계를 거쳐야만 한다. 하나는 내가 작성한 자바 프로그램 .java파일을 .class파일로 바꾸어 주는 컴파일 단계이고 두번째는 .class파일을 실행하는 단계이다. 이 두 단계를 거쳐야 우리가 작성한 프로그램을 실행시킬 수 있다.

Compiler는 javac.exe에 해당되고 Java VM은 java.exe에 해당된다.

실행과정

  1. 소스코드(MyProgram.java)를 작성한다.
  2. 자바 소스코드(.java)를 이용하여 java VM(JVM)이 인식할 수 있는 바이너리 파일인 클래스 파일(MyProgram.class)을 생성한다.
  3. javaVM(JVM)은 클래스 파일의 바이너리 코드를 해석하여 프로그램을 수행한다.
  4. MyProgram 수행 결과가 컴푸터에 반영된다.

자바는 컴파일을 하고나면 class 파일이 생성된다. 하지만 C나 C++로 작성된 프로그램은 최종 결과물로 exe 파일을 만들어낸다. 왜 자바는 실행하기도 어려운 class 파일을 만들어서 하는걸까? 자바와 C,C++는 어떤 차이가 있는 것일까?

왜 자바는 실행하기도 어려운 class 파일을 만들어서 하는걸까?

물론, java도 exe 프로그램으로 만들어 낼 수는 있다. 다만 JVM이 파일안에 포함되는 형식으로 만들어야 하기 때문에 exe 파일은 만든다면 파일이 무척 커진다는 단점이 있다.

자바와 C,C++는 어떤 차이가 있는 것일까?

C나 C++등의 언어로는 컴파일 된 실행파일을 모든 운영체제에서 사용할 수 없지만 자바는 JVM을 거쳐 만들어진 실행파일 하나로 모든 운영체제에서 사용할 수 있다. 이는 JVM을 거치는 중간단계를 거치는 차이로 인해 발생하는데 JVM은 바이트 코드와 운영체제 사이에서 둘을 호환시켜주는 역할을 하게 되는데 이 과정 때문에 자바에서 만들어진 실행파일은 모든 운영체제에서 사용할 수 있게 되는 것이다.

0개의 댓글