본문 바로가기

Java/기초

[Java] 자바(Java Programming Language)

1. 자바란

자바의 가장 중요한 특징은 운영체제(Operating System, 플랫폼)에 독립적이라는 것이다. 이런 장점으로 인해 자바는 다양한 기종의 컴퓨터와 운영체제가 공존하는 인터넷 환경에 적합한 언어로써 인터넷의 발전과 함께 많은 사용자층을 확보할 수 있었다.

자바는 풍부한 클래스 라이브러리(Java API)를 통해 프로그래밍에 필요한 요소들을 기본적으로 제공하기 때문에 자바 프로그래머는 단순히 이 클래스 라이브러리만을 잘 활용해도 강력한 기능의 자바 프로그램을 작성할 수 있다.

2. 자바의 장점

운영체제에 독립적이다

객체지향 언어이다.

자동 메모리 관리(Garbage Collection)

네트워크와 분산처리를 지원한다.

멀티쓰레드를 지원한다.

동적 로딩(Dynamic Loading)을 지원한다.

3. JVM(Java Virtual Machine)

자바로 작성된 애플리케이션은 모두 이 가상 컴퓨터(JVM)에서만 실행되기 때문에, 자바 애플리케이션이 실행되기 위해서는 반드시 JVM이 필요하다.

Java 애플리케이션

JVM(Window용, Linux용, ...)

OS(Window용, Linux용, ...)

컴퓨터(하드웨어)

 

일반 애플리케이션

OS(Windows)

컴퓨터(하드웨어)

 

 

 

 

 

 

 

 

 

 

 

 

일반 애플리케이션의 코드는 OS만 거치고 하드웨어로 전달되는데 비해 Java애플리케이션은 JVM을 한 번 더 거치기 때문에, 하드웨어에 맞게 완전히 컴파일된 상태가 아니고 실행 시에 해석(interpret)되기 때문에 속도가 느리다는 단점을 가지고 있다.

일반 애플리케이션은 OS에 종속적이다. 그래서 다른 OS에서 실행시키기 위해서는 그 OS에 맞게 변경해야한다. 반면에 Java 애플리케이션은 JVM하고만 상호작용을 하기 때문에 OS와 하드웨어에 독립적이라 다른 OS에서도 프로그램의 변경없이 실행이 가능하다. 단, JVM은 OS에 종속적이기 때문에 해당 OS에서 실행가능한 JVM이 필요하다.이렇게 자바의 특징중 하나인 "Wite once, run anywhere"(한 번 작성시 어디서든 실행된다.)