01. 자바를 시작하기 전에

Soso K·2021년 9월 19일
0

Java의 정석

목록 보기
1/1

1. 자바 (Java Programming Language)

1.1 자바란?

자바의 가장 중요한 특징은 운영체제에 독집적이라는 것이다.

  • 자바로 작성된 프로그램은 운영체제의 종류에 관계없이 실행이 가능하기 때문에, 운영체제에 따라 프로그램을 전혀 변경하지 않고도 실행이 가능하다.

1.3 자바 언어의 특징

  1. 운영체제에 독립적이다.
  • 이는 자바가상머신(JVM)을 통해서 가능한 것인데, 자바 응용 프로그램으로부터 전달받은 명령을 해당 운영체제가 이해할 수 있도록 변환하여 전달한다.
    자바로 작성된 프로그램은 운영체제에 독립적이지만, JVM은 운영체제에 종속적이다.
  1. 객체지향언어이다.
  2. 비교적 배우기 쉽다.
  3. 자동 메모리 관리(Garbage Collection)
  • 자바로 작성된 프로그램이 실행되며, Garbage Collector가 자동적으로 메모리를 관리해주기 때문에 프로그래머는 메모리를 따로 관리 하지 않아도 된다.
  1. 네트워크와 분산처리를 지원한다.
  2. 멀티쓰레드를 지원한다.
  • 자바에서 개발되는 멀티쓰레드 프로그램은 시스템과는 관게없이 구현가능하며, 관련된 라이브러리가 제공되므로 구현이 쉽다. 그리고 여러 쓰레드에 대한 스케줄링을 자바 인터프리터가 담당하게 된다.
  1. 동적 로딩(Dynamic Loading)을 지원한다.
  • 보통 자바로 작성된 애플리케이션은 여러 개의 클래스로 구성되어 있다. 자바는 동적 로딩을 지원하기 때문에 실행 시에 모든 클래스가 로딩되지 않고 필요한 시점에 클래스를 로딩하여 사용할 수 있다는 장점이 있다.

참고 :
자바의 단점으로는 속도문제가 가장 대표적이지만 바이트 코드를 하드웨어의 기계어로 바로 변환해주는 JIT 컴파일러와 Hotspot과 같은 신기술의 도입으로 JVM의 기능이 향상됨으로서 속도 문제가 상당히 개선되었다.

1.4 JVM(Java Vertual Merchine)

JVM은 '자바를 실행하기 위한 가상 기계'라고 할 수 있으며, '가상 기계'는 소프트웨어로 구현된 하드웨어를 뜻하는 넓은 의미의 용어이다.
자바로 작성된 애플리케이션은 모두 JVM에서만 실행된다.

일반 애플리케이션의 코드는 OS만 거치고 하드웨어로 전달되는데 비해 Java 애플리케이션은 JVM을 한 번 더 거치기 때문에, 그리고 하드웨어에 맞게 완전히 컴파일된 상태가 아니고 실행 시에 해석(interpret)되기 때문에 속도가 느리다는 단점을 가지고 있다. 그러나 요즘엔 바이트코드를 하드웨어 기계어로 바로 변환해주는 JIT 컴파일러와 향상된 최적화 기술이 적용되어서 속도의 격차를 많이 줄였다.

자바 애플리케이션은 JVM하고만 상호작용을 하기 때문에 OS와 하드웨어에 독립적이라 다른 OS에서도 프로그램의 변경없이 실행이 가능하다. 단, OS에 종속적이기 때문에 해당 OS에서 실행가능한 JVM이 필요하다.

원문

Java의 정석 3rd Edition 남궁성 지음

profile
새싹 개발자

0개의 댓글