Java 특징
1. 운영체제에 독립적
- JVM(자바 가상 머신): 자바 응용 프로그램 -> JVM -> 운영체제
> JVM이 명령어를 운영체제가 이해할 수 있도록 변환
- JVM은 운영체제에 종속적
"Write once, run anywhere"
2. 객체지향언어
- 상속, 캡슐화, 다형성
3. 비교적 배우기 쉬움
4. 자동 메모리 관리(Garbage Colleciton, GC)
- 프로그래머가 메모리 관리 할 필요가 없음
- 다소 비효율적일 수 있으나, 프로그래머가 프로그래밍에 집중할 수 있도록 도와줌
5. 네트워크와 분산처리 지원
- Java API를 통해 짧은 시간에 네트워크 관련 프로그램을 쉽게 개발 할 수 있도록 지원
6. 멀티쓰레드 지원
- 시스템과 관계없이 구현 가능
- 관련된 라이브러리 제공
- 자바 인터프리터가 여러 쓰레드의 Scheduling 제공
7. 동적 로딩 (Dynamic Loading) 지원
- 자바 애플리케이션은 여러 개의 클래스로 구성
- 변경사항 발생 시 비교적 적은 작업으로 처리 ⭕
> 실행 시, 모든 클래스가 로딩되지 않고 필요한 시점에 클래스를 로딩하여 사용
> 일부 클래스가 변경되어도 전체 애플리케이션을 다시 컴파일 하지 않아도 됨
JVM(Java Virtual Machine)
- 자바를 실행하기 위한 가상 컴퓨터: 실제 컴퓨터가 아닌 소프트웨어로 구현된 가상의 컴퓨터
- JVM: OS에 종속적, JAVA: OS에 독립적
- 자바는 모두 JVM에서만 실행
> 하드웨어에 맞게 완전히 컴파일된 상태가 아님
> 실행 시, 해석(interpret)을 거치므로 속도가 느림
- JIT컴파일러: 속도 감소
> 컴파일된 자바코드(바이트코드)를 하드웨어의 기계어로 변환해주는 기술
'IT > CS' 카테고리의 다른 글
[프레임워크] Spring Framework (0) | 2021.04.14 |
---|---|
[Web] 쿠키/세션/캐시 (0) | 2021.04.13 |
[Web] Rest란? (0) | 2021.04.13 |
[DB] MariaDB vs MySQL 차이점 (0) | 2021.04.12 |
[알고리즘] ArrayList vs LinkedList (0) | 2021.04.05 |