IT/CS

[Java] Java란?

Terriermon 2021. 4. 12. 18:43

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