1장 자바 시작하기
Updated:
프로그래밍 언어와 자바
컴퓨터가 이해할 수 있는 기계어(machine language)는 0과 1로 이루어진 이진 코드를 사용한다. 프로그래밍 언어는 고급 언어와 저급 언어로 구분된다.
- 고급 언어
- 컴퓨터와 대화할 수 있도록 만든 언어 중에서 쉽게 이해할 수 있는 언어
- 고급 언어로 작성된 소스 파일은 컴파일(compile)이라는 과정을 통해 컴퓨터가 이해할 수 있는 0과 1로 이루어진 기계어로 변환한 후 사용해야 한다.
- 대표적으로 Java, C, C++, C#, Python 등이 있다.
- 개발자가 고급 언어로 작성한 파일을 소스(source) 파일이라고 부른다.
- 저급 언어
- 기계어에 가까운 언어로 대표적으로 어셈블리어가 있다.
자바는 다른 프로그래밍 언어와 비교해 다음과 같은 특징이 있다.
- 모든 운영체제에서 실행 가능
- 객체지향 프로그래밍(OOP, Object Oriented Programming)
- 메모리 자동 정리
- 자바는 메모리(RAM)를 자동 관리한다.
- 풍부한 무료 라이브러리
바이트코드 파일과 자바 가상 머신
자바 프로그램을 개발하고 실행하기 위해서는 먼저 Java SE(Standard Edition)의 구현체인 JDK(Java Development Kit)을 설치해야한다. 자바 소스 파일의 확장명은 .java이다. 텍스트 파일이므로 어떤 텍스트 에디터에서도 작성이 가능하다.
소스 파일을 작성한 후에는 컴파일 해야 한다. javac(java compiler) 명령어는 소스 파일을 컴파일하는데, 컴파일 결과는 확장명이 .class인 바이트코드(ByteCode) 파일로 생성된다.
바이트코드 파일(*.class)을 특정 운영체제가 이해하는 기계어로 변역하고 실행시키는 명령어는 java이다. java 명령어는 JDK와 함께 설치된 자바 가상 머신(JVM, Java Virtual Machine)을 구동시켜 바이트코드 파일을 완전한 기계어로 변역하고 실행시킨다.
바이트코드 파일은 운영체제와 상관없이 모두 동일한 내용으로 생성되지만, 자바 가상 머신은 운영체제에서 이해하는 기계어로 번역해야 하므로 운영체제별로 다르게 설치된다. 그래서 운영체제별로 설치하는 JDK가 다른 것이다.
소스 작성, 실행
다음과 같이 Hello.java를 작성한다.
package ch01;
public class Hello {
public static void main(String[] args) {
System.out.println("Hello, Java");
}
}
소스 파일을 javac 명령어로 컴파일해 본다. Terminal에 javac -d [바이트코드파일저장위치] [소스경로/*.java], 예를 들어 javac -d bin src/ch01/Hello.java로 컴파일을 하면 bin 디렉토리에 패키지 디렉토리와 바이트코드 파일(ch01/Hello.class)이 생성된다.
java 명령어로 바이트코드 파일을 기계어로 번역하고 실행시켜 본다. 주의할 점은 패키지 구분자는 .를 사용해야 하고 클래스명은 .class를 제외한 Hello만 입력해야 한다는 점이다. Terminal에 java -cp [바이트코드파일위치] [패키지 클래스명], 예를 들어 java -cp bin ch01.Hello를 실행하면 콘솔에 Hello.java가 출력된다.
코드 용어
Hello.java 소스 파일을 보면서 소스 파일을 작성할 때 공통적으로 나오는 부분을 어떻게 부르는지 알아본다.
- package ch01;
- 패키지 선언
- 소스 파일이 src/ch01 패키지에 있다는 뜻
- 컴파일 후 생성되는 바이트코드 파일도 bin/ch01 패키지에 생성
- public class Hello{}
- 클래스 선언
- 클래스명은 숫자로 시작할 수 없고, 공백을 포함해서는 안 되며 소스 파일명과 대소문자가 완전히 일치해야 한다.
- 중괄호를 클래스 블록이라고 하며, 여기에는 클래스의 정의 내용이 작성된다.
- public static void main(String[] args){}
- main() 메소스
- 중괄호를 main() 메소드 블록이라고 한다.
- 바이트코드 파일을 실행하면 이 main() 메소드 블록이 실행된다. 그래서 main() 매소드를 프로그램 실행 진입점(entry point)이라고 부른다.
- System.out.println(“Hello, java”);
- 괄호 안에 있는 내용을 Console 뷰에 출력하는 코드
코드 주석 달기
주석은 프로그램 실행과는 상관 없이 코드에 설명을 붙인 것이다. 주석은 컴파일 과정에서 무시되기 때문에 주석을 많이 작성한다고 해서 바이트코드 파일의 크기가 커지는 것은 아니다.
- 행 주석
- //
- //부터 행 끝까지 주석으로 처리
- 범위 주석
- /* */
- /*와 */ 사이에 있는 내용은 모두 주석으로 처리
- 도큐먼트 주석
- /** */
- /**와 */ 사이에 있는 내용은 모두 주석으로 처리
- javadoc 명령어로 API 도큐먼트를 생성하는 데 사용
주석 기호는 코드 내 어디서든 작성이 가능하지만, 문자열 내부에서 작성하면 문자열 데이터로 인식하기 때문에 문자열 내부에서 작성하면 안 된다.
실행문과 세미클론
main() 메소드 블록 내부에는 다양한 실행문이 작성된다. 실행문은 변수 선언, 변수값 저장, 메소드 호출에 해당하는 코드를 말한다. 실행문 끝에는 반드시 세미클론을 붙여야 한다. 실행문을 여러 줄에 걸쳐서 작성하고 맨 마지막에 세미클론을 붙여도 된다. 또한 여러 가지 실행문을 세미클론으로 구분해서 한 줄로 작성할 수도 있다.
int x = 1; int y = 2;
int result =
x + y;
댓글남기기