본문 바로가기

플밍 is 뭔들/JAVA

자바(Java Programming Language)의 특징과 JVM

※ 특징 
  1. 운영체제 독립적 
         - JVM(자바가상머신)이 운영체제마다 이해할 수 있는 형태로 변환하여 전달하기 때문에 자바로 작성한 코드는 
           운영체제와 하드웨어에 종속되지 않고 실행된다.

  1. 객체지향 언어
          - 객체지향의 개념의 특징인 상속, 캡슐화, 다형성이 잘 적용된 순수한 객체지향언어라는 평가를 받고 있다.

  1. 자동 메모리 관리(Garbage Collection)
          - 가비지컬렉터(Garbage Collector)가 자동적으로 메모리를 관리해 준다. 만약 가비지컬렉터가 없다면 
            프로그래머가 사용하지 않는 메모리를 체크하고 반환하는 일을 수동적으로 해야한다.

  1. 네트워크와 분산처리를 지원
          - 다양한 라이브러리(Java API)를 지원하여 네트워크 관련 프로그램 개발을 지원

  1. 멀티쓰레드 지원
          - 멀티쓰레드 프로그램은 시스템과 상관없이 구현이 가능하며, 관련 라이브러리가 제공되므로 구현이 쉽다.

  1. 동적 리딩(Dynamic Loading) 지원
          - 실행 시 모든 클래스가 로딩되지 않고 필요한 시저메 클래스르 로딩하여 사용.


※ JVM (Java Virtual Machine)
 - 자바를 실행하기 위한 가상 기계


위의 그림에서 보다시피 일반 어플리케이션과 자바 어플리케이션의 차이는 JVM에 있다. 
다른 어플리케이션은 OS와 바로 맞붙어 있기 때문에 OS 종속적이다. 
자바는 JVM이 운영체제와 프로그램 사이에서 해당 운영체제에 맞게 변환하여 전달하기 때문에 OS에 자유롭다.
하지만 JVM은 운영체제에 종속적이기 때문에 운영체제에 맞는 JVM이 필요하다.

자바코트 컴파일 과정..