(1) 자바란?
자바는 썬 마이크로세스템즈에서 개발하여 1996년 1월에 공식적으로 발표한 객체 지향 프로그래밍 언어이다.


(2) 자바의 역사
자바의 역사는 1991년에 썬의 엔지니어들에 의해서 고안된 오크(Oak)라는 언어에서부터 시작되었다. 제임스 고슬링과 아서 밴 호프와 같은 썬의 엔지니어들의 원래 목표는 가전제품에 탑재될 소프트웨어를 만드는 것이었다. 처음에는 C++ 을 확장해서 사용하려 했지만 C++ 로는 그들의 목적을 이루기에 부족하다는 것을 깨닫고, C++의 장점을 도입하고 단점을 보완한 새로운 언어의 개발하기에 이르렀다.

- Oak 를 인터넷에 적합하도록 그 개발 방향을 바꾸면서 이름을 자바(Java)로 변경
- 1995년 자바로 개발한 웹브라우저인 '핫 자바(Hot java)를 발표
- 1996년 1월 자바의 정식버전 발표


(3)  자바언어의 특징

○ 운영체제에 독립적이다.
: 자바 응용 프로그램은 운영체제나 하드웨어가 아닌 자바가상머신(JVM)하고만 통신하고 JVM이 전달받은  명령을 해당 운영체제가 이해할 수 있도록 변환하여 전달한다. 자바로 작성된 프로그램은 운영체제에 독립적이지만 JVM은 운영체제에 종속적이어서 썬에서는 여러 운영체제에 설치할 수 있는 서로 다른 버전의 JVM을 제공하고 있다. (Write once, run anywhere)

○ 객체지향언어이다.
: 자바는 객체지향 프로그래밍언어중의 하나로 객체지향 개념의 특징인 상속, 캡슐화, 다형성이 잘 적용되어 있다.

○ 배우기 쉽다.
: 자바의 연산자와 기본 구문은 C++ 에서, 객체지향관련 구문은 스몰통(small talk)에서 가져왔다. 이 들 언어의 장점은 취하면서 복잡하고 불필요한 부분은 과감히 제거하여 단순화함으로서 쉽게 배울 수 있으며, 간결하고 이해하기 쉬운 코드를 작성할 수 있도록 하였다.

○ 자동 메모리 관리(Garbage Collection).
: 자바로 작성된 프로그램이 실행되면, 가비지컬렉터(Garbage collector)가 자동적으로 메모리를 관리해주기 때문에 프로그래머는 메모리를 따로 관리 하지 않아도 된다.

○ 네트워크와 분산처리를 지원한다.
: 자바는 풍부하고 다양한 네트워크 프로그래밍 라이브러리(Java API)를 통해 비교적 짧은 시간에 네트워크 관련 프로그램을 쉽게 개발할 수있도록 지원한다.

○ 멀티쓰레드를 지원한다.
: 자바에서 개발되는 멀티쓰레드 프로그램은 시스템과는 관계없이 구현가능하며, 관련된 라이브러리가 제공되므로 구현이 쉽다. 그리고 여러 쓰레드에 대한 스케줄링을 자바 인터프리터가 담당하게 된다.

 동적 로딩(Dynamic Loading)을 지원한다.
: 자바는 동적 로딩을 지원하기 때문에 실행 시에 모든 클래스가 로딩되지 않고 필요한 시점에 클래스를 로딩하여 사용할 수 있다는 장점이 있다. 그 외에도 일부 클래스가 변경되어도 전체 어플리케이션을 다시 컴하일하지 않아도 된다.



by 민트앤라떼 2012. 12. 19. 09:51