■ 플랫폼 독립성
자바의 가장 큰 장점이다. 한 번 만들어진 자바 프로그램 코드는 운영체제나 CPU의 타입에 상관없이 프로그램이 작동할 수 있다. 이것을 썬에서는 "Write once, Run Anywhere"라는 말로 내세우고 있다. 이러한 기능이 가능한 것은 자바 VM(JVM: Java Virtual Machine)이 해당 플랫폼에 설치되면 자바로 작성된 프로그램에게 동일한 실행환경을 제공하기 때문이다.
이와 같은 특성은 플랫폼에 맞춰 프로그램을 수정해야 하는 수고를 덜어준다. CPU가 32비트가 64비트냐에 따라 기본 데이터형의 크기가 달라지기 때문에 프로그램이 오작동하는 경우가 많았고, 프로그램을 해당 플랫폼에 맞춰 수정해야하는 불편을 제거할 수 있다.
■ 객체 지향 언어
객체 지향의 기법은 프로그램이나 기타 기술과 연계될 때 매우 큰 유연성을 갖게 해 준다. 현재 많은 기술들이 별 문제없이 자바의 테두리로 들어오는 큰 이유중에 하나는 자바가 객체지향 언어이기 때문이다.
객체지향의 강점은 소프트웨어 설계에서도 절차지향과 차이가 있는데, 상속과 구현이라는 재사용성과 전체 틀을 구성하는데 상당한 유연함을 제공한다. 절차지향에서 해결할 수 없는 수 많은 문제들을 객체지향은 다른 관점에서 해결점을 제시하고 있다.
■ 멀티 쓰레드 지원
컴퓨터는 한번에 하나의 일만 처리하는 것이 아니라 동시에 여러 일을 처리해야 할 경우가 많다. 대표적인 것이 네트워크 프로그램이다. 네트워크 프로그램은 다수의 사용자의 요청을 동시에 처리해 주어야 한다. 이 때 사용자의 요청에 따라 프로세스를 하나씩 생성해 처리한다면 서버의 부하는 그 만큼 늘어나는 것이다.
자바는 멀티 쓰레드를 지원한다. 쓰레드란 프로세스안에서 독립적으로 실행되는 작은 실행단위이다. 쓰레드는 하나의 프로세스 안에서 같이 실행되기 때문에, 메모리 공유가 가능하면서 프로그램이 보다 효율적으로 실행될 수 있도록 해준다. 즉, 프로세스 안에 작은 프로세스라고 이해하면 된다.
■ 자동 메모리 관리
메모리를 할당하고 사용이 완료되면 해제해주는 작업을 JVM이 대신해 준다. 메모리를 해제하는 작업은 개발자에게 상당히 고민되는 부분이다. 인스턴스(메모리에 객체를 할당한것)를 생성한 후 사용하지 않는 인스턴스를 찾아서 메모리에서 해제하는 작업을 개발자에게 JVM이 가져가는 것이다. 나중에 알겠지만 이런 부분은 프로그램을 작성할 때 유연성을 증가시키는 부분이다.
(참고: 대림출판사, 클릭하세요 자바2 JDK1.4)
'자바(Java) > JAVA 2SE' 카테고리의 다른 글
JAVA API 기술문서 (0) | 2010.11.29 |
---|---|
자바 플랫폼의 종류 (0) | 2010.11.29 |
자바 기술의 소개 (0) | 2010.11.29 |
자바 어플리케이션의 구성 (0) | 2010.11.28 |
TableModel 를 사용하여 구구단 출력하는 프로그램 (0) | 2010.09.03 |