1. 자바(Java Programming Language)
1.1 자바란?
대표적인 객체지향 프로그래밍 언어(O.O.P)이다.
1.3 자바의 특징
- 운영체제에 독립적이다.
자바 응용프로그램은 운영체제나 하드웨어가 아닌 자바가상머신(JVM)하고만 통신하기 때문이다. 단, JVM은 운영체제에 종속적이어서 해당 OS에서 실행가능한 JVM이 필요하다.
- 객체지향언어이다.
- 비교적 배우기 쉽다.
- 자동 메모리 관리
자바로 작성된 프로그램이 실행되면, 가비지 컬렉터가 자동적으로 메모리를 관리해주기 때문에 프로그래머는 메모리를 따로 관리하지 않아도 된다.
- 네트워크와 분산처리를 지원한다.
- 멀티쓰레드를 지원한다.
- 동적 로딩을 지원한다.
실행 시에 모든 클래스가 로딩되지 않고 필요한 시점에 클래스를 로딩하여 사용할 수 있다는 장점이 있다.
1.4 JVM(Java Virtual Machine)

- 일반 프로그램과 달리 자바 프로그램은 JVM을 한 번 더 거치고, 실행 시에 해석(interpret)되는 방식이기 때문에 속도가 느리다는 단점이 있다.
- 앞서 '자바의 특징'에서 언급한 것처럼 자바 프로그램은 OS와 하드웨어에 독립적이다. (단, JVM은 OS에 종속적)
- 이러한 구조를 통해 자바의 중요한 장점 중 하나인 "Write once, run anywhere."이 가능하게 된다.
2. 자바개발환경 구축하기
2.1.1 JDK와 JRE
JRE = JVM + Java API
JDK = JRE + tools (컴파일러 등을 포함한 개발도구들)
- 개발(컴파일 등)을 할 것이라면 tools을 포함한 JDK가 필요, 실행만 할 것이라면 JRE만 필요!
javac: 자바 컴파일러. 자바 소스를 바이트 코드로 변환
java: 자바 인터프리터. 바이트 코드를 해석하고 실행, JVM을 작동시켜 자바 프로그램을 실행시키기 때문에 java launcher로도 불림
javap: 역어셈블러. 컴파일된 클래스파일을 원래의 소스로 변환
javadoc: 자바 소스로부터 HTML 형식의 API 도큐먼트 생성
jar: 자바 클래스 파일을 압축한 자바 아카이브 파일(.jar) 생성 및 관리
바이트코드 - JVM이 이해할 수 있는 기계어, JVM은 바이트코드를 해당 OS의 기계어로 변환하여 OS로 전달함
3. 자바로 프로그램 작성하기
3.0 자바 API 문서를 종종 읽어보자!..
일단 링크는 드릴게..
3.1 소스파일의 이름은 public class의 이름과 일치해야 한다.
- 소스파일에 public class가 없어도 된다!
- 하지만 있다면 반드시 소스파일의 이름은 public class의 이름과 일치해야 한다.
- 하나의 소스파일에 둘 이상의 public class가 있으면 안 된다.
- 구체적인 예시는 자바의 정석 1권 p.10 참고
3.4 주석
/* 범위 주석 */
// 한 줄 주석
3.5 이 책으로 공부하는 방법
- 자바의 정석 1권 p.14-15 참고
- 별도 pdf로 제공되는 연습문제 풀기
- 모르는 내용은 네이버 카페를 활용하기