미스터 역마살
자바의 특징 본문
자바의 특징에 대해 정리해보자
자바는 한마디로 "Write once, run anywhere" 라고 표현할 수 있다.
1. 운영체제에 독립적이다.
JVM(Java vertual merchine)을 통해서 가능 한 것으로써, 운영체제(OS)나 하드웨어가 아닌 JVM하고만 통신하고 JVM은 자바 응용프로 그램으로 부터 전달받은 명령을 해당 운영체제가 이해할 수 있도록 변화하여 전달 한다. 즉, 자바는 운영체제에는 독립적이지만 JVM에는 종속적이다.
2. 자동 메모리 관리
Garbage Collector가 자동으로 메모리 관리를 해주기 때문에 프로그래머는 따로 메모리 관리를 하지 않아도 된다. 자동 메모리 관리는 다소 비효율적인 면도 있지만, 프로그래머가 보다 프로그래밍에 집중 할 수 있도록 도와준다.
3. 동적로딩(Dynamic Loading) 지원
일반적으로 자바로 작성된 Application은 여러개의 클래스로 구성되어 있다. 자바는 다이나믹 로딩을 지원하기 때문에 실행시 모든 클래스가 로딩되지 않고 필요한 시점에 클래스를 로딩하여 사용 할 수 있다. 따라서, 일부 클래스가 변경 되어도 전체 어플리케이션을 다시 컴파일 하지 않아도 된다.
4. 객체지향언어(OOP : Object Oriented Programming Language)
자바는 객체지향 개념의 특징인 상속, 캡슐화, 다형성이 잘 적용된 순수 객체 지향언어이다. 객체지향언어의 특징인 재사용성과 유지보수의 용이성이 하다는 점을 자바는 그대로 가지고 있는 셈이다. 또한 사용자들이 객체제향개념을 보다 쉽게 이해하고 활용할 수 있도록 하여, 객체지향 프로그래밍의 저변확대에 크게 기여하였다. 이러한 자바의 객체지향관련 구문은 small talk에서 가져왔다.
5. 멀티쓰레드 지원
자바에서의 멀티쓰레드 프로그램은 시스템과 관계없이 구현이 가능하다. 또한 자바 API가 제공되므로 구현이 쉬우며, 여러 쓰레드에 대한 스케쥴링을 자바 인터프리터가 담당한다.