- 자바언어의 특징
1. 운영체제에 독립적이다.
자바 응용프로그램은 운영체제나 하드웨어가 아닌 JVM하고만 통신하고 JVM이 자바응용프로그램으로부터 전달받은 명령을 해당 운영체제가 이해할 수 있도록 변환하여 전달한다. (JVM은 운영체제에 종속적이다.)
2. 객체지향언어이다
객체지향개념의 특징인 상속, 캡슐화, 다형성이 잘 적용된 순수한 객체지향언어다.
3. 자동 메모리 관리
가비지컬렉터가 자동적으로 메모리를 관리해주기 때문에 프로그래머는 메모리를 따로 관리 하지 않아도된다.
4. 멀티쓰레드를 지원한다.
자바에서 개발되는 멀티쓰레드 프로그램은 시스템과는 관계없이 구현가능하며, 관련된 라이브러리가 제공되므로 구현이 쉽다. 그리고 여러 쓰레드에 대한 스케줄링을 자바 인터프리터가 담당하게 된다.
자바로 작성된 어플리케이션은 모두 이 가상 컴퓨터(JVM)에서만 실행되기 때문에, 자바 어플리케이션이 실행되기 위해서는 반드시 JVM이 필요하다.
자바 어플리케이션 <--> **JVM** <--> OS <--> 컴퓨터
일반 어플리케이션 <--> OS <--> 컴퓨터
JVM의 해석 단계를 거쳐 실행되므로 속도가 느리다는 단점을 가지고 있었지만 현재는 JIT컴파일의 도입과 하드웨어의 발전으로 성능이 개선되었다.
JVM은 운영체제 종속적이기 때문에 해당 OS에서 실행가능한 JVM이 필요하다.(Window용, Mac용 등..)
class 파일 - 바이트파일 (JVM필요)
JAVAC 컴파일러 (JDK - JRE포함)
JAVA JVM (JRE - 실행만 가능)
인터프리팅(Interprting)
중간코드를 각 하드웨어에 따른 기계어로 번역
실행시간에 번역됨
'Java' 카테고리의 다른 글
자바 입출력 IO (0) | 2018.11.30 |
---|---|
Comparator와 Comparable의 차이 + 람다표현식 (0) | 2018.11.29 |
객체, 클래스, 인스턴스의 차이 (0) | 2018.11.29 |
객체지향 프로그래밍의 특징 (0) | 2018.11.29 |
자바 : 쓰레드(Thread)란? (0) | 2018.11.29 |