본문 바로가기

Java

[Java] 자바란?

반응형

자바란?

  • 처음부터 객체 지향언어로 개발된 프로그래밍 언어이다.
  • 자바 가상 머신(JVM)을 사용하여, 운영체제와는 독립적으로 동작할 수 있다.
    ⇒ 자바는 어느 운영체제에서나 같은 형채로 실행될 수 있다.
  • 전 세계에서 가장 많이 사용하는 프로그래밍 언어 중 하나이다.

자바의 특징

장점

  1. 운영체제와는 독립적으로 실행할 수 있다.
  2. 불필요한 기능을 과감히 제거하여 다른 언어에 비해 배우기가 쉽다.
  3. 자동 메모리 관리 등을 지원하여 다른 언어에 비해 안정성이 높다.
  4. 연산자 오버로딩을 금지하고 제네릭을 도입함으로써 코드의 가독성을 높였다.
  5. 수많은 참고 자료를 찾을 수 있다.

단점

  1. 실행을 위해 자바 가상 머신을 거쳐야 하므로, 다른 언어에 비해 실행 속도가 느리다.
  2. 예외 처리가 잘 되어 있지만, 개발자가 일일이 처리를 지정해 줘야 한다는 불편함이 있다.
  3. 다른 언어에 비해 작성해야 하는 코드의 길이가 긴 편이다.

자바 프로그램의 실행 과정

  • 자바 컴파일러
    • 자바 컴파일러는 자바를 가지고 작성한 자바 소스 코드를 자바 가상 머신이 이해할 수 있는 자바 바이트 코드로 변환한다.
    • 자바 컴파일러는 자바를 설치하면 javac.exe라는 실행 파일 형채로 설치됩니다.
  • 자바 바이트 코드
    • 자바 바이트 코드란 자바 가상 머신이 이해할 수 있는 언어로 변환된 자바 소스 코드를 의미한다.
    • 자바 컴파일러에 의해 변환되는 코드의 명령어 크기가 1바이트라서 자바 바이트 코드라고 불리고 있다.
    • 자바 바이트 코드의 확장자는 .class이다.
    • 자바 가상 머신만 설치되어 있으면, 어떤 운영체제에서라도 실행될 수 있습니다.
  • 자바 가상 머신
    • 자바 가상 머신이란 자바 바이트 코드를 실행시키기 위한 가상의 기계라고 할 수 있다.
    • 자바로 작성된 모든 프로그램을 실행하기 위해서는 자바 가상 머신이 필요하다.
    • 오라클은 대부분의 주요 운영체제뿐만 아니라 웹 브라우저, 스마트 폰, 가전기기 등에서도 자바 가상 머신을 손쉽게 설치할 수 있도록 지원하고 있다.
      • 다른 운영체제라도 자바 가상 머신만 설치되어 있다면, 같은 자바 프로그램이 아무런 추가 조치 없이 동작할 수 있다.
    • 자바 가상 머신은 운영체제에 종속적이므로, 각 운영체제에 맞는 자바 가상 머신을 설치해야 한다.
    • 자바 가상 머신의 구성
      • 자바 인터프리터(interpreter) : 자바 컴파일러에 의해 변환된 자바 바이트 코드를 읽고 해석하는 역할을 한다.
      • 클래스 로더(class loader) : 자바는 동적으로 클래스를 읽어오므로, 프로그램이 실행 중인 런타임에서야 모든 코드가 자바 가상 머신과 연결된다. 이렇게 동적으로 클래스를 로딩해주는 역할을 하는 것이 바로 클래스 로더이다.
      • JIT 컴파일러(Just-In-Time compiler) : 프로그램이 실행 중인 런타임에 실제 기계어로 변환해 주는 컴파일러를 의미한다. 동적 번역(dynamic translation)이라고도 불리는 이 기법은 프로그램의 실행 속도를 향상시키기 위해 개발되었다.
      • 가비지 컬렉터(garbage collector) : 더는 사용하지 않는 메모리를 자동으로 회수해 준다. 따라서 개발자가 따로 메모리를 관리하지 않아도 되므로, 더욱 손쉽게 프로그래밍을 할 수 있도록 도와줍니다.

참고 자료

TCP School

반응형

'Java' 카테고리의 다른 글

[Java] 스트림(Stream)  (0) 2022.02.16
[Java] 자바 컬렉션 Map  (0) 2022.01.11
[Java] 자바 컬렉션 Set  (0) 2022.01.11
[Java] String 클래스 정리  (0) 2022.01.08
[Java] 상속이란?  (0) 2022.01.06