Java란?

엄지찬·2023년 4월 12일

Java는 무엇일까?


자바(java)는 C언어와는 달리 처음부터 객체 지향 언어로 개발된 프로그래밍 언어이다.
또한, 자바는 자바 가상 머신(JVM)을 사용하여 어느 운영체제에서나 같은 형태로 실행 될 수 있다.


Java의 특징

  • 장점
    1. 자바는 운영체제와는 독립적으로 실행 할 수 있다.
    2. 자바는 불필요한 기능을 과감히 제거하여 다른 언어에 비해 배우기가 쉽다.
    3. 자바는 자동 메모리 관리 등을 지원하여 다른 언어에 비해 안정성이 높다.
    4. 자바는 연산자 오버로딩을 금지하고 제네릭을 도입함으로써 코드의 가독성을 높였다.
  • 오버로딩이란?
    - 매개 변수의 개수나 타입을 다르게 하여 같은 이름의 메소드를 여러 개 정의하는 것.
    - 타입으로 인한 여러가지 출력이 가능하다.
  • 단점
    1. 실행을 위해 자바 가상 머신을 거쳐야 하므로, 다른 언어에 비해 실행 속도가 느리다.
    2. 예외처리가 잘 되어있지만, 개발자가 일일이 처리를 지정해 줘야 한다는 불편함이 있다.
    3. 다른 언어에 비해 작성해야 하는 코드의 길이가 길다.

자바 프로그램의 실행 과정

실행과정

자바 컴파일러(Java compiler)

자바로 작성한 소스 코드를 자바 가상 머신이 이해할 수 있는 자바 바이트 코드로 변환한다.
자바 컴파일러는 자바를 설치하면 javac.exe라는 실행 파일 형태로 설치된다.


자바 바이트 코드(Java bytecode)

자바 가상 머신이 이해할 수 있는 언어로 변환된 자바 소스 코드를 의미한다.
자바 컴파일러에 의해 변환되는 코드의 명령어 크기가 1바이트라 자바 바이트 코드라고 불린다.


자바 가상 머신(Java Virtual Machine)

자바 바이트 코드를 실행시키기 위한 가상의 기계이다.
자바로 작성된 모든 프로그램은 자바 가상 머신에서만 실행될 수 있으므로, 자바 프로그램을 실행하기 위해서는 반드시 자바 가상 머신이 설치되어 있어야 한다.

단, 자바 프로그램과는 달리 자바 가상 머신은 운영체제에 종속적이므로, 각 운영체제에 맞는 자바 가상 머신을 설치해야 한다.


자바 가상 머신의 구성

  1. 자바 인터프리터(Interpreter)
    • 자바 컴파일러에 의해 변환된 자바 바이트 코드를 읽고 해석하는 역할을 한다.
  2. 클래스 로더(Class loader)
    • 동적으로 클래스를 로딩해주는 역할을 한다.
  3. JIT 컴파일러(Just-In-Time compiler)
    • 프로그램이 실행 중인 런타임에 실제 기계어로 변환해주는 컴파일러를 의미한다.
  4. 가비지 컬렉터(Garbage collector)
    • 사용하지 않는 메모리를 자동으로 회수하며, 따라서 개발자가 메모리를 관리하지 않게끔 해주는 역할을 한다.

위와 같이 자바는 큰 틀로써 구성되어 있으며, 나도 다시 알아보면서 자바의 역할에 대해, 특징에 대해 좀 더 알아가는 계기가 되는 것 같다.

자바는 역시 위대하다.

profile
비전공 신입 개발자의 마라톤 완주!

0개의 댓글