웹 개발/java

Java #1 자바 언어의 특징

dani0312 2023. 3. 7. 20:52

◾ Java의 탄생

1995년 개발된 객체 지향 프로그래밍 언어이며 창시자는 제임스 고슬링이다. 더 자세히 이야기 한다면, 1995년에 선 마이크로시스템스(현재 오라클)에서 개발하였고 자바의 탄생 초기에는 "Oak"라는 이름으로 시작되었다. Oak는 1990년대 초반에 선 마이크로시스템스의 그린 프로젝트(Green Project)에서 개발되었다. 

 

그린 프로젝트는 가전제품과 기타 소비자 전자제품에 사용할 목적의 작은 규모의 임베디드 시스템용 언어를 개발하는 것이었지만, 이 프로젝트는 초기 목표를 벗어나 다양한 플랫폼에서 실행 가능한 유연하고 안정적인 언어로 발전하게 되었다. 

 

1995년, 선 마이크로 시스템스는 Oak언어를 확장하고 인터넷의 발전에 맞춰 네트워크 기반의 애플리케이션을 개발하기 위해 "자바"로 이름을 변경하였다. 자바는 이후에 크로스 플랫폼 지원과 객체지향 프로그래밍의 특징 등으로 널리 사용되게 되었다. 

 

 

◾ Java 언어의 특징

1. 플랫폼(운영체제) 독립성


자바의 개발 환경과 배포환경이 다를 경우, 프로그램을 다시 컴파일 하지 않아도 실행이 가능하다. 이는 자바가 JVM(Java Virtual Machine)위에서 구동되기 때문이다.

  • 타 언어 : 하드웨어 - 운영체제 - 다른 언어의 어플리케이션(운영체제에 종속)
  • Java : 하드웨어 - 운영체제 - JVM(운영체제에 종속) - Java어플리케이션

 

 

2. 객체지향 

 

객체지향 패러다임의 특징인 캡슐화, 상속, 추상화, 다형성이 적용되는 객체지향 언어이다. 때문에 높은 재사용성 및 유지보수성을 가진다. 물론 primitive type(기본형)의 변수 타입이 존재해 순수한 객체지향 언어는 아니라는 말도 있다.

 

 

 

3. 메모리 관리 자동화


일부 언어들은 생성된 객체를 제거하기 위한 코드를 직접 작성해야하는 것처럼 개발자가 메모리 관리를 해야하지만 Java는 직접 메모리를 관리하여 객체 생성 시 메모리영역을 찾아 할당하고, 사용이 완료되면 Garbage Collector를 실행시켜 자동으로 사용하지 않는 객체를 제거해준다.


메모리 작업을 직접 해야하는 언어의 경우에 비해 이 작업을 잘 하지 못하면 발생하는 문제로부터 자유롭다. 메모리 관리의 수고를 덜게된다.

 

 

 

4. 멀티스레드 

 

하나의 자바 프로그램이 다수의 작업을 처리할 수 있도록 다수의 스레드가 동시에 실행할 수 있는 환경을 지원한다. C/C++등 많은 언어들은 자체적으로 멀티스레드를 지원하지 않아 운영체제의 도움을 받는다. 그러나 자바는 운영체제의 도움없이 멀티스레드 프로그래밍이 가능하기 때문에, 멀티스레드를 지원하지 않는 운영체제에서도 자바를 이용하면 멀티스레드 프로그램을 개발할 수 있다.