[Java] Java의 특징과 JVM

szlee·2023년 10월 23일
0

Java

목록 보기
3/23

자바 언어 특징

1. 운영체제에 독립적이다.

  • 자바 응용 프로그램은 운영체제나 하드웨어가 아닌 JVM과 통신한다.
  • JVM이 자바 응용 프로그램으로부터 전달 받은 명령을 해당 운영체제가 이해할 수 있도록 변환하여 전달한다.
  • 자바로 작성된 프로그램은 운영체제에 독립적이지만, JVM은 운영체제 종속적이어서 여러 운영체제에 설치할 수 있는 서로 다른 버전의 JVM이 제공된다.

2. 객체지향언어

자바는 객체지향 프로그래밍언어 중 하나.
객체 지향 개념의 특징인 상속, 캡슐화, 다형성이 잘 적용된 순수한 객체지향언어이다.

3. 자동 메모리 관리(Garbage Collection)

  • 자바로 작성된 프로그램이 실행되면 GC가 자동적으로 메모리를 관리해준다.
  • GC가 없다면 프로그래머가 사용하지 않는 메모리를 체크하고 반환하는 일을 수동으로 처리해야한다.
  • 이로써 프로그래머가 보다 프로그래밍에 집중할 수 있도록 도와준다.

4. 네트워크와 분산처리 지원

다양한 Java API를 통해 비교적 짧은 시간에 네트워크 관련 프로그램을 쉽게 개발할 수 있도록 지원한다.

5. 멀티스레드 지원

  • 자바에서 개발되는 멀티쓰레드 프로그램은 시스템과는 관계없이 구현가능하며 관련된 라이브러리가 제공되므로 구현이 쉽다.
  • 여러 쓰레드에 대한 스케쥴링을 자바 인터프리터가 담당하게 된다.

6. 동적로딩 지원

  • 자바 애플리케이션은 보통 여러 개의 클래스로 구성됨
  • 자바는 동적 로딩 지원하기 때문에 실행 시에 모든 클래스가 로딩되지 않고 필요한 시점에 클래스를 로딩하여 사용할 수 있다.
  • 일부 클래스가 변경되어도 전체 애플리케이션을 다시 컴파일 하지 않아도 된다.
  • 애플리케이션의 변경사항이 발생해도 비교적 적은 작업만으로도 처리할 수 있다.




JVM

자바를 실행하기 위한 가상 컴퓨터.
자바로 작성된 애플리케이션은 모두 이 JVM에서만 실행되기 때문에 자바 애플리케이션이 실행되기 위해선 반드시 JVM이 필요하다.

  • 일반 어플리케이션 <-> OS <-> 컴퓨터(하드웨어)
  • 자바 어플리케이션 <-> JVM <-> OS <-> 컴퓨터(하드웨어)

자바 어플리케이션은 JVM을 한번 더 거치고, 하드웨어에 맞게 완전히 컴파일된 상태가 아니고 실행 시에 해석되기 때문에 속도가 느리다는 단점이 있지만, 바이트코드를 기계어로 바로 변환해주는 JIT 컴파일러 기술이 적용되어 JVM의 기능이 향상됨으로써 속도 문제가 개선되었다.





  • 자바에서 모든 코드는 반드시 클래스 안에 존재해야 한다.
  • 이 클래스들이 모여 하나의 자바 어플리케이션을 이룬다.
  • main()메서드는 자바 어플리케이션의 시작점이다.
  • main()메서드의 첫 줄부터 코드가 실행되기 시작하여 마지막까지 모두 실행되면 프로그램이 종료되고 프로그램에서 사용했던 자원들은 모두 반환된다.








자바의 정석

profile
🌱

0개의 댓글