📖 01. 자바의 특징
- 운영체제에 독립적이다.
-> 자바 응용프로그램은 운영체제나 하드웨어가 아닌 JVM하고만 통신하기 때문이다.
- 객체지향언어이다. (object - oriented - programming language)
-> 상속, 캡슐화, 다형성이 잘 적용된 언어이다.
- 자동 메모리 관리(Gargage Collection)
-> 프로그램을 실행하면 가비지컬렉터(garbage collector)가 자동적으로 메모리를 관리해준다.
- 네트워크와 분산처리를 지원한다.
-> 인터넷과 대규모 분산환경을 염두에 둔 까닭인지 풍부하고 다양한 네트워크 프로그래밍 라이브러리(java API)를 통해 비교적 짧은 시간에 네트워크 관련 프로그램을 쉽게 개발 할 수 있다.
- 멀티쓰레드를 지원한다.
-> 자바에서 개발되는 멀티쓰레드 프로그램은 시스템과는 관계없이 구현이 가능하다. 그리고 여러 쓰레드에 대한 스케줄링(sheduling)을 자바 이터프리터가 담당하게 된다.
- 동적 로딩(Dynamic Loding)을 지원한다.
📖 02. 자바 가상 머신(JVM)
- JVM : java virtual machine
-> virtual machine은 소프트웨어로 구현된 하드웨어를 뜻하는 넓은 의미의 용어이다.
- '가상 컴퓨터(virtual computer)'는 실제 컴퓨터(하드웨어)가 아닌 소프트웨어로 구현된 컴퓨터라는 뜻으로 컴퓨터 속의 컴퓨터라고 생각하면 된다.
-> 자바로 작성된 애플리케이션은 모두 이 가상 컴퓨터(JVM)에서만 실행되기 때문에 반드시 JVM이 필요하다.
- java 애플리케이션은 JVM을 한 번 거치기 때문에 속도가 느리다는 단점을 가지고 있다.
📖 03. 자바 개발도구(JDK)
- Java Development Kit
-> JDK를 설치하면, 자바가상머신(JVM)과 자바 클래스 라이브러리(Java API)외에 자바를 개발하는데 필요한 프로그램들이 설치된다.
[출처] 자바의 정석 <기초편> (남궁 성 지음)