배우기 쉬운 객체 지향 언어
•
상속, 캡슐화, 다형성이 잘 적용된 순수한 객체 지향 언어
◦
프로그래밍의 대세로 자리 잡은 객체 지향 개념을 익히기 좋은 언어
◦
C++은 배우기 어렵고, python은 쉽지만 객체 지향 개념을 잡기엔 부족한 감이 있음.
자동 메모리 관리(Garbage Collection)
•
가비지 컬렉터(Garbage Collector)의 자동 메모리 관리
◦
기존엔 프로그램 사용시, 사람이 직접 메모리를 체크하고 반환하는 번거로움이 있었음.
◦
가비지 컬렉터는 자동적으로 메모리를 관리하여 사람이 프로그래밍에 집중하도록 도와줌.
멀티 쓰레드(Multi-Thread) 지원
•
대부분의 프로그램에 사용되는 멀티 쓰레드 를 지원
◦
일반적으로 멀티쓰레드의 지원은 운영체제에 따라 구현과 처리 방식이 다름.
◦
자바에서 개발되는 멀티 쓰레드 프로그램은 시스템 상관없이 구현 가능하며,
관련 라이브러리(Java API)도 제공되므로 구현이 쉬움.
다양한 라이브러리 지원
•
라이브러리 : 프로그램 개발에 자주 사용되는 주요 기능을 미리 만들어 제공하는 것
◦
다양한 자바 라이브러리가 있기 때문에 개발자가 원하는 프로그램을 쉽게 개발 가능
운영체제에 독립적
•
기존의 언어로 프로그램 작성시, 특정 운영체제에서만 실행 가능
◦
자바는 자바 가상 머신(JVM)을 통해 여러 운영 체제에서 프로그램 실행이 가능