[Java] Java의 특징
1. 운영체제에 비종속적이다.
Java는 다른 프로그래밍 언어와 다르게 OS(운영체제)에 종속되지 않는다.
Java의 응용프로그램은 OS나 하드웨어가 아닌 JVM하고만 통신을 하고,
JVM이 응용프로그램으로부터 전달받은 명령을 해당 운영체제가 이해할 수 있는
기계어로 변환하여 전달하기 때문에 Java는 운영체제와 통신할 일이 없다.
그렇기에 ‘Write once, run anywhere’라고 표현하기도 한다.
JVM은 추후 깊게 다룰 예정
2. 객체지향언어(OOP: Object Oriented Programming language)
Java는 추상화, 상속, 캡슐화, 다형성이 적용된 객체지향 언어다.
OOP에 대해서도 추후 깊게 다룰 예정
3. 자동 메모리 관리(Garbage Collectoion)
직접 메모리를 관리해야하는 C와 다르게 Java는 Garbage Collector가 자동적으로 메모리를 관리해준다.
그렇기에 프로그래머가 따로 메모리를 관리하지 않아도 된다.
다소 비효율적인 면도 있지만 프로그래머가 보다 프로그래밍에 집중할 수 있도록 도와준다.
Garbae Collector도 추후 깊게 다룰 예정
4. 네트워크와 분산처리 지원
Java API를 통해 비교적 짧은 시간에 네트워크 관련 프로그램을 쉽게 개발할 수 있도록 지원한다.
그렇기에 Java는 대규모 분산처리 환경에서의 프로그래밍에 적합하다.
5. 멀티쓰레드 지원
일반적으로 멀티쓰레드는 각 운영체제에 따라 구현방법과 처리 방식이 다르다.
그러나 Java에서는 시스템과 관계없이 멀티쓰레드 프로그램 구현이 가능하다.
관련된 라이브러리 Java API가 제공되므로 구현이 쉽고 쓰레드에 대한 스케줄링을 Java 인터프리터가 담당하게
된다.
6. 동적 로딩(Dynamic Loading) 지원
자바는 동적 로딩을 지원하기 때문에 필요한 시점에 클래스를 로딩하여 사용할 수 있다는 장점이 있다.
그렇기에 일부 클래스가 변경되어도 전체 애플리케이션을 다시 컴파일하지 않아도 된며,
애플리케이션의 변경사항이 발생해도 비교적 적은 작업으로 처리할 수 있는 유연한 프로그래밍이 가능하다.
참고도서 :