archive
Java 애플리케이션 작동 원리 본문
간단한 프로그램을 예시로 들어보겠다.
class Hello{
public static void main(String[] argv){
System.out.println("Hello, world.");
}
}
화면에 "Hello, world."를 출력하는 프로그램이다.
이 소스코드를 작성한 파일을 Hello.java 로 저장한다.
이 때, 소스코드의 이름은 class명과 정확하게 일치해야하고 확장자는 .java로 해줘야 한다.
이 예제를 실행하기 위해선 먼저 컴파일 과정을 거쳐야 한다.
이전 포스팅에서 언급된 javac.exe(자바 컴파일러)를 사용하여 소스파일로부터 클래스파일(바이트 코드)을 생성한다.
컴파일과정에서는 소스코드를 분석하여 Syntax Error를 검출한다.
그 후 java.exe(자바 인터프리터)로 컴파일러가 생성한 바이트코드를 해석하고 실행한다.
컴파일과 실행을 분리해놓음으로써 매번 문법을 검사하는 과정을 거치지 않아도 되고, 소스코드를 외부로부터 보호할 수 있다.
main메소드는 java.exe에 의해 호출될 수 있도록 미리 약속된 부분이다.
즉, 자바 애플리케이션은 main메소드의 호출로 시작해서 첫 문장부터 차례대로 실행된다.
하나의 애플리케이션에는 main메소드를 포함한 클래스가 반드시 하나는 있어야 하고,
main메소드 없이는 애플리케이션이 실행될 수 없기 때문에 java.exe 를 실행할 때 main메소드를 포함한 클래스의 이름을 적어줘야 한다.
이렇게 자바로 작성한 소스코드를 실행해볼 수 있다.
- 프로그램 실행 과정
1. 실행에 필요한 클래스를 로드한다.
2. 클래스파일을 검사한다.(파일형식, 악성코드 체크)
3. 지정된 클래스(Hello)에서 main을 호출한다.
좀 더 자세한 실행과정은 아래와 같다
(참고)
컴파일과 빌드 차이점
평소 이클립스와 같은 IDE를 사용하기 때문에 컴파일과 빌드의 개념에 대해 잘 알지 못했다. 단지 소스코드를 작성하고 이클립스에서 run을 실행하면 알아서 모든 과정이 자동으로 실행되기 때문
freezboi.tistory.com
'STUDY > Java' 카테고리의 다른 글
[OOP] Chap3. 자바와 객체지향 (0) | 2021.02.01 |
---|---|
[OOP] Chap2. 자바와 절차적/구조적 프로그래밍 (0) | 2021.01.27 |
[Java] 변수와 자료형 (0) | 2021.01.25 |
Java 개발환경구축 / Java API문서 (0) | 2021.01.07 |
Java란 / JVM (0) | 2021.01.07 |