자바의 정석 기초편 1-8~9
1-8 첫번째 자바 프로그램 작성하기
자바로 프로그램을 개발하려면 편집기가 필요함.
이클립스eclips나 인텔리제이IntelliJ 같은 전문 개발 도구를 많이 씀.
이번 시간에는 메모장으로 간단한 자바 프로그램을 작성함.
class Hello {
public static void main(String[] args) {
System.out.printIn("Hello, world.");
}
}
이 예제는 Hello, world를 출력하는 간단한 프로그램임.
이름은 Hello.java로 저장. jdk1.8 폴더 안에 work 폴더를 새로 만들어서 그 안에 저장함.
이 프로그램이 출력되기 위해 거치는 과정은 다음과 같음.
Hello.java 작성 → javac.exe 컴파일 → Hello.class 생성 → java.exe 실행 → Hello.world 출력
그러니까, 이 파일을 실행하려면 먼저 컴파일을 해야 함.
1. 일단 파일의 경로를 복사함.
2. cmd를 열어 cd* 쓰고 복사한 경로를 붙여넣기 한 후 엔터 침.
*change directory
3. dir 쓰고 엔터치면 현재 디렉토리에 있는 모든 파일이 나오는데, Hello.java 있는지 확인.
4. javac 치고 한 칸 띄우고, Hello.java 치고 엔터 침.
→" (액세스가 거부되었습니다) "라고 뜨면 cmd 자체를 관리자 권한으로 실행하면 됨.
5. dir 쳐서 확인해보면 Hello.class 파일이 생성되어 있음.
→ 자바에서 모든 코드는 반드시 클래스 안에 존재해야 함.
6. cmd에 java 치고 클래스 이름인 Hello를 친 후 엔터 누르면 프로그램이 실행됨.
→ 컴파일할 때와 달리 실행할 때는 확장자 c를 붙이지 않음.
즉, 중요한 부분을 정리하자면
1. javac.exe:
자바 컴파일러. 사람이 작성한 문장을 기계어로 번역함.
소스 파일(*.java)을 클래스 파일(*.class)로 변환함.
2. java.exe:
자바 인터프리터. 자바 프로그램(클래스 파일)을 실행함.
3. class:
자바 프로그램의 단위. 자바 프로그램들은 하나 이상의 클래스들로 구성됨.
4. main 메서드:
다른 프로그래밍 언어의 함수와 같은 개념이자 자바 프로그램의 시작점.
모든 클래스가 main 메서드를 가지고 있어야 하는 건 아니지만
main 메서드가 하나도 없다면 프로그램은 실행이 불가능함.
그림 속 string[] 에서 []은 배열을 의미하는 기호임. 배열의 타입type 또는 이름 옆에 쓸 수 있음.
'string[] args'는 string 타입의 배열 args를 선언한 것이고, string args[]로 써도 무방함.
1-9 자바 프로그램의 실행 과정
예를 들어, Hello 파일은 main(String[] args)로 구성되어 있다고 치고
콘솔(명령 프롬프트, cmd.exe)에서 아래와 같이 Java 애플리케이션을 실행시키면
c:\jdk1.8\work>java Hello
내부적인 진행 순서는 다음과 같음.
1. 프로그램의 실행에 필요한 클래스(*.class 파일)를 로드함.
2. 클래스 파일을 검사함. (파일 형식, 악성 코드 체크)
3. 지정된 클래스(Hello)에서 main (String[] args)를 호출함.
main 메서드의 첫 줄부터 코드가 실행되고, 마지막 코드까지 모두 실행되면 프로그램 종료.
프로그램에서 사용했던 자원들은 모두 반환됨.