1. 자바 언어
ㅇ Sun 社의 James Gosling이 1995년 개발한 객체지향 프로그래밍 언어(OOP)
- 인터넷 및 웹에 친화적이며, 어떤 플랫폼에서도 독립적이고, 이식성이 좋음
. 모토 : "Write Once, Run Anywhere (WORA)"
2. 자바 언어 특징
ㅇ 코드 크기가 작고 단순한 편임 => 단순 명료함
- 꼭 필요한 기능 만 포함하고, 복잡하고 덜 쓰이는 기능은 배제
- 복잡한 문법을 제거하고, 문법 체계가 단순 명료한 편임
. 例) C++ 언어에서의 다중 상속,연산자 재정의 같은 복잡한 문법 사용 안함
ㅇ 플랫폼(Platform) 및 컴퓨터 구조에 독립적임 => 플랫폼 독립적임 (기계 중립적임)
- 시스템 아커텍처에 관계없는 중립적인 바이트 코드로 컴파일 됨
- 자바 가상 기계(JVM)에 의한 실행 방식 : JVM 만 설치되어 있으면 어디서든 실행 가능
. 자바 소스(*.java)는, JVM에서 실행될 수 있는 바이트 코드로 번역되며(*.class),
. 번역된 바이트 코드는 해석기(JVM)가 있는 어떠한 기종의 컴퓨터 환경에서도 실행 가능
- 이식성이 좋음
. 자바 런타임-모듈을 지원하는 모든 시스템에서 실행 가능
ㅇ 객체지향 (Object-Oriented) => 재사용성 높음
- 캡슐화, 다형성, 상속성, 동적 바인딩과 같은 객체지향 특성 지원
- C++은 혼합/유사 객체지향이나, 자바는 순수 객체지향 언어 임
ㅇ 분산 처리 프로그래밍이 가능 => 네트워킹 지원 좋음
- 네트워크 상에서 동작되는 것을 기본으로 함
ㅇ 멀티 스레드 지원
- 많은 작업의 동시 실행 (하나의 프로그램에서 여러 스레드 실행 가능)
ㅇ 강건성
- 강력한 데이터 타입 검사 ☞ 자바 변수 자료형 참조
- 예외 처리 기능 등
ㅇ 개발자에게 단순성,편리성,친숙성,풍요함 등을 제공
- 자동으로 메모리 관리 (가비지 컬렉션)
. JVM이 알아서 메모리 할당,해제 등
- 실무용 필요 기능 대부분이 오픈 소스(자바 라이브러리)로 잘 구비/제공됨
- 보안성이 좋음
3. 자바 플랫폼 (자바 실행 환경)
ㅇ 자바 플랫폼 : 자바 프로그램이 실행되는 하드웨어 및 소프트웨어 환경
- 자바 가상기계(JVM, Java Virtual Machine)
. 바이트 코드를 해석하여 실행하여주는 해석기
- 자바 API
. 자바 프로그램에서 자주 사용되는 자바 클래스[OO] 모음(자바 클래스 라이브러리)
.. 그래픽,네트워킹,보안,데이터베이스 접근 등의 기능 지원
. 자바 개발자는,
.. 자바 API에 미리 정의된 소프트웨어 패키지를 이용하여 자바 프로그램을 작성하게 됨
ㅇ 자바 실행 대상 : 프로그래머가 작성한 자바 응용 프로그램 (자바 플랫폼 위에서 실행 됨)
4. 자바 컴파일 및 실행의 例
ㅇ 컴파일 : `소스코드(xxx.java)` → `자바 컴파일` → `클래스 파일(xxx.class)`
- 자바 컴파일러 : javac
ㅇ 실행 대상 : 컴파일된 `클래스 파일명 (xxx.class)`
- 한번 컴파일하면, 다양한 종류의 컴퓨터에서 변경없이 실행 가능
ㅇ 실행 주체 : java `클래스 파일명(xxx.class)`
- java는, 바이트 코드라는 가상의 기계어를 실행시켜준다는 의미에서,
- 자바 인터프리터(Java Interpreter) 또는 자바 가상기계(Java Virtual Machine) 라고 함
- 많은 운영체제에서 이를 지원함
ㅇ 만일, 단일 프로젝트 전체를 의존성까지 포함시켜 실행 가능 파일로 만든다면,
- *.jar 또는 *.war 형태의 압축 실행 파일로 됨
5. [참고사항]
ㅇ 자바 기초 문법 ☞ 자바 기초 문법 참조
- 기본 문자셋, 주석, 식별자 명명 규칙, 키워드(에약어), 주석 등
ㅇ 자바 개발 도구 및 환경 ☞ 자바 개발 환경 참조
ㅇ 자바 변수 및 자료형 ☞ 자바 변수 자료형 참조
ㅇ 자바 라이브러리 ☞ 자바 라이브러리 패키지 참조