Java의 특징
1. 운영체제에 독립적으로 동작
*자바가상머신(JVM, Java Virtual Machine)을 통해 JVM이 설치되어 있는 OS에서는 모두 자바로 작성된 프로그램이 실행 가능하다.
그래서 자바 언어를 Write once, run anywhere (한 번 작성하면, 어디서나 실행된다.)로 표현하기도 한다.
* 자바로 작성된 프로그램을 실행 할 수 있는 가상의 컴퓨터이다.
JVM의 경우는 기존의 하드웨어로 구성된 컴퓨터를 소프트웨어적으로 구현한 것으로, 자바로 작성된 프로그램은 모두 이 JVM을 통해 실행되므로 자바 프로그램을 실행하기 위해서는 JVM이 설치되어 있어야 한다.
(JVM에 대한 내용은 추후 자세히 다뤄보도록 하자.)
2. 객체지향언어 (OOP, Object - Oriented Programming language)
자바는 객체지향개념의 특징인 상속, 캡슐화, 다형성이 잘 적용된 순수한 객체지향언어이다.
3. 가비지컬렉터 (GC, Garbage Collector)를 통한 자동 메모리 관리
다른 프로그래밍 언어와는 달리, 자바는 가비지 컬렉터(GC)가 자동으로 메모리를 관리하여 참조되고 있지 않은 메모리를 해제해준다.
이러한 특징으로 인해 프로그래머는 메모리 관리에 신경 쓸 필요 없이 오직 프로그래밍에만 집중 할 수 있다.
4. 네트워크, 분산처리의 지원
다양한 Java API 라이브러리들은 네트워크 및 분산처리와 관련된 기능을 쉽게 개발할 수 있도록 지원한다.
이러한 특징으로 인해 자바 언어는 대규모 분산처리 환경 등의 프로그래밍에 적합하다.
5. 멀티쓰레드의 지원
자바의 멀티쓰레드는 시스템과 관계없이 구현이 가능하며, Java API를 통해 쉽게 구현할 수 있다.
6. 동적 로딩(Dynamic Loading)의 지원
자바는 동적 로딩을 지원함으로써 프로그램 실행 시 모든 클래스가 로딩되지 않고 필요한 시점에 필요한 클래스만을 로딩하여 사용할 수 있다.
출처 :
남궁성 저자 - Java의 정석
'Java' 카테고리의 다른 글
[Effective Java] Item06. 불필요한 객체 생성을 피하라 (0) | 2022.06.01 |
---|---|
[Effective Java] Item03. private 생성자나 열거 타입으로 싱글턴임을 보증하라 (0) | 2022.05.31 |
[Effective Java] Item02. 생성자에 매개변수가 많다면 빌더(Builder)를 고려하라 (0) | 2022.05.31 |
[Effective Java] Item01. 생성자 대신 정적 팩터리 메서드를 고려하라 (0) | 2022.05.31 |
[Java] 배열 (Array) (0) | 2022.02.13 |