JAVA 언어 개요
자바의 특징
-
단순함
- Java Garbage Collector에 의한 자동 메모리 관리
-
객체지향적(Object-Oriented) 언어
- 코드와 객체의 재사용
- 클래스 라이브러리 API의 다양성
-
분산 처리에 용이함
- 분산 환경에서 TCP/IP 네트워크 프로토콜을 통해 통신 가능
- 원격 메서드 호출(RMI, Remote Method Invocation) 라이브러리 제공
-
컴파일 언어인 동시에 인터프리터 언어임
- 소스코드(.java 파일) -> 컴파일(javac) -> 바이트 코드의 중간코드(.class 파일) -> 기계어로 해석 -> 실행
-
플랫폼 독립적임
- Write Once Run Anywhere
- 자바 컴파일러와 자바 가상 머신으로 인해 사용하는 운영체제, CPU 등의 하드웨어에 종속되지 않고 사용 가능
- 단, 코드가 OS에서 바로 실행되는 것이 아니라 JVM을 거쳐 실행되므로 다른 프로그래밍 언어(ex. C/C++/Python)보다 실행 시간이 오래걸림
-
멀티쓰레드 방식을 지원
- 하나의 CPU가 여러개의 프로그램을 동시에 수행하게 함으로써 수행 속도가 높음
자바 프로그램 구조
자바 플랫폼
자바 가상 머신
- 자바 프로그램과 운영체제 중간에 존재하여 서로를 분리함으로써 애플리케이션이 운영체제에 영향받지 않고 동작할 수 있는 환경을 제공.
- 다양한 자바 API를 내장하고 있음. 프로그래머가 필요로하는 기본 클래스들을 거대 라이브러리로 제공함으로써 기능을 쉽게 구현할 수 있음.
자바 개발 환경
- JRE(Java Runtime Environment) : JVM + Core API
- JDK(Java Development Kit) : JRE + 각종 개발 도구(컴파일러 등)