Develop/JAVA

JAVA feature

soleil.ardent 2011. 11. 23. 08:44

<자바의 특징>

 

1. 단순

자바는 포인터, 다중상속처럼 C++에서 거의 사용되지 않거나 이해하기 어려운 부분을 포함하지 않고 있다.

 

2. 객체지향적

객체지향 프로그래밍(Object Oriented Programming)은 캡슐화, 상속성, 다형성의 세가지 특징을 가지며 높은 생산성과 유지보수를 가능하게 한다. 객체지향 언어로 Smalltalk, C++, Object Pascal, JAVA 등이 있지만 차이점은 JAVA는 설계 당시부터 객체지향 언어로 개발되어 객채지향을 구현하는데 좀 더 명확하고 쉽다.

 

3. 분산 환경에 적합

자바는 HTTP나 FTP와 같은 TCP/IP 프로토콜을 지원하기위한 광범위한 라이브러리 루틴을 가지며 이외에 RMIEJB라는 강력한 분산 환경을 제공한다. 또한 자바는 특정 플랫폼에 대한 제약 없이 보다 적은 예산으로 쉽게 분산 애플리케이션을 개발할 수 있는 환경을 제공한다.

 

자바 원격 함수 호출(Java Remote Method Invocation, Java RMI)는 자바 프로그램에서 각 객체간, 컴퓨터간 메서드를 호출할 수 있게 해주는 기술로 마치 분산된 객체들을 로컬 객체처럼 사용할 수 있게 한다.

엔터프라이즈 자바빈즈(Enterprise JavaBeans; EJB)는 기업환경의 시스템을 구현하기 위한 서버 측 컴포넌트 모델이다.

 

4. 견고하고 안전한 프로그램을 개발

자바는 신뢰성이 필요한 프로그램을 작성하기 위해 에러가 발생하기 쉬운 상태를 제거하는데 중점을 두고 설계되었다. C++은 객체 생성부터 소멸까지를 프로그래머가 책임을지는 반면 자바는 가비지 컬렉터(Garbage Collector)가 프로그램에서 사용하지 않는 객체의 메모리를 시스템으로 반환시켜 프로그램이 안정적으로 동작할 수 있는 환경을 제공해준다.

 

5. 플랫폼 독립적

자바로 작성된 프로그램의 바이트 코드는 자바 가상머신(JVM : Java Virtual Machine)이 설치된 어떤 시스템에서도 동일하게 동작한다. 즉, 개발한 하나의 프로그램은 하드웨어나 운영체제가 다른 시스템에서 동작 시킬 경우 포팅이라는 작업을 하는데 자바는 가상머신을 통해 이 포팅이라는 작업을 통한 많은 예산과 시간 소모를 피할 수 있다.

 

6. 멀티 쓰레드를 지원

멀티 쓰레드가 등장하기 이전에 멀티 프로세스 방법을 사용하여 한 프로그램이 여러 작업을 수행하였다.

 

프로세스 : 컴퓨터 내에서 실행중인 프로그램을 일컫는 용어.

쓰레드 : 한 프로그램 내 즉, 프로세스 내에서 실행되는 흐름의 단위를 말한다.

 

멀티 프로세스 : 프로그램이 자식 프로세스를 만들고 그 자식 프로세스가 작업을 수행하는 방식.

새로운 작업이 요청 될 때마다 프로세스를 만들고 필요한 기억공간을 할당하기 때문에 동시에 동작하는 프로세스가 많은 경우 처리속도 저하와 프로세스간 정보 공유가 비효율적인게 단점이다.

 

멀티 쓰레드 : 하나의 프로세스를 여러 개의 쓰레드로 구성하여 작업을 수행하기 때문에 메모리를 공유하여 효율적으로 작동하는 프로그램을 개발 할 수 있다.

 

7. 동적

자바는 변화하는 환경을 수용하기 위해 개발되었기 때문에 자바의 라이브러리는 클라이언트에 어떠한 영향도 주지 않고 새로운 메서드나 인스턴스 변수를 자유롭게 추가할 수 있다.