컴파일 (Compile)
소스코드를 기계어로 번역하는 과정
컴파일 vs 인터프린터 (스크립트)
인터프린터
- 소스코드를 실행코드로 변환하지 않고, 소스코드를 한줄한줄 바로 실행한다.
- 에러 발생 시, 에러가 발생한 해당 라인 직전 라인 까지는 실행이 된다.
컴파일
- 인터프린터와는 다르게 소스코드를 실행코드로 변환하고, 실행코드를 실행한다.
- 에러가 있으면 해당 라인 까지 실행 되는 것이 아니라, 아예 실행이 되지 않는다. (실행파일을 만들지 못함 = 컴파일을 못함)
플랫폼 종속성
개발하는 환경에 따라 사용자의 프로그램 사용 환경이 결정 됨.
- ISA (Instruction set architecture), OS (Operating System) 때문에 cpu가 프로그램을 해석하는 방식이 다 다르다.
자바의 플랫폼 독립성 (WORA)
사용자의 사용 환경이 개발하는 환경과 상관없이 범용성을 가짐
JRE (JVM)
- 자바는 자바 가상 머신이 존재하여, 프로그램이 자바 가상머신 위에서 돌아간다.
- 프로그래밍 언어를 구현하는데 번역의 징검다리 역할
자바 바이트코드
- 바이트코드란? 가상 머신이 이해할 수 있는 언어로 변환된 자바 소스 코드
- .class 의 확장자 형태를 가짐
플랫폼 독립성의 단점
종속적으로 개발했을 때보다 성능이 좋지 않음.
- 플랫폼 독립적일 때 최적화 문제가 있음
-> (instruction/data-level parallelism, cache optimization)
main 메소드
프로그램 실행을 시작시키는 메소드
- 프로그램 객체가 메모리에 생성 -> Main 메소드 호출
- 모든 자바 application은 main 메서드가 있어야 함
자바 IDE (Eclipse, JDK)
IDE (Integrated Development Environment)
- 통합 개발 환경
- 편집, 컴파일, 디버깅 등 여러 작업을 하는 툴
Eclipse (자바 IDE)
- 자바 응용 프로그램 개발을 위한 통합 개발 환경
- 프로젝트 생성 -> 패키지 생성 -> 클래스 생성 -> 소스코드 실행
JDK (Java Development Kit)
- 자바 응용 개발 환경, 개발에 필요한 도구 포함 (컴파일러, 클래스 라이브러리, 샘플 등)
- JRM과 JDK를 설치하면, Eclipse가 JRM과 JDK를 자동으로 선택해서 실행한다.
MVC 구조
모델 (Model)
뷰 (View)
제어기 (Controller)
간단한 프로그램 예제 (Hello World)
< 이름, 날짜, 시간을 출력하는 프로그램 만들기 >
import java.util.*;
public class NameAndDate
{
public static void main(String[] args)
{
System.out.print(“Hanyang ERICA --- ");
GregorianCalendar c = new GregorianCalendar();
System.out.println(c.getTime());
System.out.println("Finished");
}
}
Java 패키지와 API
Java에서 기본적으로 제공하는 패키지를 Java API (Application Programming Interface)라고 부른다.
ex) java.lang, java.util ...
- 일부 기초적인 API는 import 하지 않아도 사용할 수 있다.
ex) System.out.