Java에 대하여
포스트
취소

Java에 대하여

Java란?

  • 객체 지향 언어로 개발된 프로그래밍 언어

Java의 특징

  • 객체지향 언어
    • 처음부터 객체 지향 언어로 개발된 프로그래밍 언어
    • Java는 Java 가상 머신(JVM)을 사용하여 운영체제와 독립적으로 동작한다.
      • 어느 운영체제에서나 같은 형태로 실행 될 수 있다.
      • 작성한 코드가 동작하려면 JVM을 거쳐야되서 다른 언어에 비해 비교적 실행 속도가 느리다.
    • 객체지향 언어의 특징인 캡슐화, 상속성, 다형성 등을 지원한다.
  • 높은 이식성
    • Java 실행 환경이 설치만 되있으면 어떤 운영체제에서든지 실행할 수 있다.
  • 컴파일 언어 겸 인터프리터 언어
    • 텍스트 소스를 컴파일하여 이진 파일(class)파일로 만든 다음 Java 런타임이 클래스 파일을 인터프리트하면서 실행한다.
    • 시스템에 무관한 이진 파일을 만듦으로써 Java는 컴파일 언어에 가까운 속도와 시스템 독립성을 얻을 수 있다.
  • 메모리 자동 관리
    • 객체 생성시 자동으로 메모리 영역을 찾아 할당한다.
    • 가비지 콜렉터를 실행시켜 자동으로 사용하지 않는 객체를 제거한다.
    • 개발자가 직접 메모리에 접근할 수 없으며 자바가 직접 관리한다.
  • 멀티 쓰레딩 지원
    • 하나의 프로그램 단위가 동일한 쓰레드를 동시에 수행할 수 있다.
    • 운영체제마다 멀티 쓰레드를 이용하는 API가 다르나, Java의 경우에는 Java API를 사용하기 때문에 쉽게 구현이 가능하다.
  • 동적인 구현 방식
    • 객체 간의 상호 작용을 정의한다.
      • 필요한 객체만 생성해서 사용한다.
      • 필요하지 않은 객체는 생성되지 않는다.
    • 오류가 발생하면 오류가 발생한 클래스만 수정하면 된다.
      • 유지보수를 쉽고 빠르게 진행할 수 있다.
      • 대신 일일이 예외 처리를 해줘야 한다.
  • 방대한 오픈 소스 라이브러리
    • Java는 오픈소스 언어다.
    • 검증된 오픈소스 라이브러리를 사용하면 개발에 대한 부담이 줄어든다.

JVM

  • 정의
    • Java Virtual Machine
    • 가상 머신이란 프로그램을 실행하기 위해
      물리적 머신과 유사한 머신을 소프트웨어로 구현한 것
  • 역할
    • Java 애플리케이션을 클래스 로더를 통해 읽어 들여 Java API와 함께 실행한다.
    • Java와 운영체제 간에 중개자 역할을 수행하여
      Java가 운영체제에 구애받지 않고 독립적으로 작동이 가능하다.
    • Java의 메모리 관리를 담당한다.
    • Garbage collection을 수행한다.
  • 특징
    • 컴파일된 바이트 코드를 기계가 이해할 수 있는 기계어로 변환
    • 스택 기반의 가상 머신
    • 메모리 관리와 GC를 수행

JRE

  • 정의
    • Java 실행환경 (Java Runtile Environment)
  • 포함 항목
    • JVM
    • 표준 라이브러리
    • 설정 파일

JDK

  • 정의
    • Java 개발 환경 (Java Development Kit)
  • 포함 항목
    • JRE
    • Java 컴파일러
    • 디버거 -Jar 도구
    • 프로파일러
  • 특징
    • 개발자가 Java로 프로그래밍하는 전 과정을 도와주는 Java 코드 제작 키트
    • 최근엔 JRE와 JDK의 경계가 모호하다.
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.