[Java] Java란?

후니·2023년 8월 2일
0

Java

목록 보기
1/5

Java란

  • 썬 마이크로시스템즈에서 개발하여 1996년 1월에 공식적으로 발표한 객체지향 프로그래밍 언어

Java의 특징

  1. 운영체제에 독립적이다.
  • 일종의 에뮬레이터인 JVM을 통해서 가능한 것인데, 자바 응용프로그램은 운영체제나 하드웨어가 아닌 JVM하고만 통신하고 JVM이 자바 응용프로그램으로부터 전달받은 명령을 해당 운영체제가 이해할 수 있도록 변환하여 전달
  1. 객체지향언어이다.
  • 객체지향개념의 특징인 상속, 캡슐화, 다형성이 잘 적용된 언어이다.
  1. 자동 메모리 관리(Garbage Collection)
  • 자바로 작성된 프로그램이 실행되면, garbage collector가 자동적으로 메모리를 관리해주기 때문에 프로그래머는 따로 관리하지 않아도 된다.
  1. 네트워크 및 분산처리 지원
  • Java API를 통해 비교적 짧은 시간에 네트워크 관련 프로그램을 쉽게 개발할 수 있도록 지원한다.
  1. 멀티쓰레드 지원
  • 자바에서 개발되는 멀티쓰레드 프로그램은 시스템과는 상관없이 구현이 가능하며, 관련된 라이브러리(Java API)가 제공되므로 구현이 쉽다. 또한, 여러 쓰레드에 대한 스케줄링을 자바 인터프리터가 담당하게 된다.
  1. 동적 로딩(Dynamic Loading) 지원
  • 여러 개의 클래스로 구성되어 있는 자바는 동적 로딩을 지원하기 때문에 실행시 모든 클래스가 로딩되지 않고 필요한 시점에 클래스를 로딩하여 사용할 수 있다. 또한, 일부 클래스가 변경되어도 다시 컴파일 하지 않아도 된다.

JVM이란?

'Java virtual machine'을 줄인 것으로 직역시 '자바를 실행하기 위한 가상 기계(컴퓨터)'이다. 자바로 작성된 애플리케이션은 모두 이 가상 컴퓨터(JVM)에서만 실행되기 때문에, 자바 애플리케이션이 실행되기 위해서는 반드시 JVM이 필요하다.

  • Java는 OS에 종속받지 않고 CPU가 JAVA를 인식, 실행할 수 있게 해주는 가상 컴퓨터

JAVA 소스코드, 즉 원시코드(*.java)는 CPU가 인식을 하지 못하므로 기계어로 컴파일을 해줘야한다.

하지만 Java는 이 JVM 이라는 가상머신을 거쳐서 OS에 도달하기 때문에 OS가 인식할 수 있는 기계어로 바로 컴파일 되는게 아니라 JVM이 인식할 수 있는 Java bytecode(*.class)로 변환된다.

profile
Developer

0개의 댓글