Chapter 2. 자바 소개 및 특징

SeungHyun Son·2021년 6월 20일
0

본 내용은 KH정보교육원 에서 제공한 교재 내용을 개인적인 공부를 위한 목적으로 작성되었습니다.
만약 아래의 내용을 무료로 배부하거나 상업적으로 이용할 경우 법적 처벌을 받을 수 있음을 경고합니다.

자바 소개


Java란

  • 썬 마이크로 소프트웨어에서 개발하여 발표한 객체지향 언어
  • 운영체제에 영향을 받지 않고 실행되는 특징 때문에 다양한 기종의 컴퓨터와 운영 체제가 공존하는 인터넷 환경에 적합한 언어로 많이 사용되는 언어

Java의 역사

  • Sun의 엔지니어들이 가전제품에 탑재할 소프트웨어를 만드는 것을 목표로 C++를 확장하여 사용하려고 했지만 C++로는 한계가 있다는 것을 깨닫고 C++을 장점으로 도입하고 단점을 보완하여 Oak라는 새로운 언어를 개발
  • 초기에는 가전제품이나 PDA와 같은 소형기기에 사용될 목적이었으나 인터넷의 등장으로 인터넷 환경에 맞게 개발방향을 변경하고 이름도 자바(Java)로 변경
    현재 웹 개발에 많이 활용되고 있음

자바의 특징


Java의 특징 (반드시 숙지)

  • 객체 지향 언어
  • 플랫폼에 독립적이므로 이식성이 높음
  • 메모리를 자동으로 관리 (GC, Garbage Collection)
  • 동적 로딩(Dynamic Loading)을 지원
  • 멀티 스래드를 쉽게 구현
  • 오픈 소스 라이브러리가 충분함

Java의 플랫폼

  • Java SE(Standard Edition) : 자바 기본 플랫폼
  • Java EE(Enterprise Edition) : SE + WEB
  • Java ME(Micro Edition) : 임베디드 플랫폼

Java의 프로그래밍 과정

Java Source Code(파일명.java) -> Java Compiler -> Java Byte Code(파일명.class) -> JVM 에 의해 재컴파일 되어 실행

  • .java 언어의 문법에 따라 소스 코드 작성한다. (클래스명.java)
  • jdk(Java Development Kit) 이 제공하는 javac 컴파일러를 사용하여 바이트코드 형식으로 소스코드를 컴파일 한다. (클래스명.class)
  • 컴파일 된 class 파일을 jdk가 제공하는 java 인터프리터를 사용하여 실행한다.
  • 실행시 실행에 필요한 클래스들이 JVM(Java Virtual Machine)에 연결되며 클래스 로더(Loader)가 필요한 클래스를 동적으로 로딩(Loading)한다.

JVM(Java Virtual Machine)

  • 자바 바이트코드를 해당 운영체제(Operation System) 기계어로 재번역 하면서 실행하는 주체

  • 운영체제와 자바 프로그램을 연결시켜주는 역할

  • 자바 프로그램을 플랫폼(운영체제)에 독립적으로 동작할 수 있도록 해 주는 역할

  • 인터프리터나 JIT 컴파일 방식으로 바이트코드를 실행할 수 있도록 함

  • JRE에 포함되어 배포됨

  • 가비지 컬렉션을 수행함

  • 과거 순수 인터프리터 방식으로 실행시간이 늦은 편이었으나 JIT(Just-In-Time) 컴파일을 구현하여 성능을 개선하였음

  • 컴파일러(Compiler)

    • 고급 언어로 쓰여진 프로그램이 컴퓨터가 이해할 수 있는 저급 언어로 번역
    • 번역 과정이 번거롭고 번역 시간이 오래 걸림
    • 한 번 번역한 후에는 다시 번역하지 않으므로 실행 속도가 빠름
  • 인터프리터 (InterPreter)

    • 프로그램을 한 단계씩 기계어로 해석하여 실행
    • 실행 시간이 길어 속도가 늦음
    • 프로그램이 직접 실행되므로 목적 프로그램이 생성되지 않음
  • JIT 컴파일

    • 프로그램을 실제 실행하는 시점에 기계어로 번역하는 컴파일 기법
    • 실행 시점에 기계어 코드를 생성하면서 해당 코드를 캐싱
    • 함수가 여러 번 호출될 때마다 매번 기계어 코드가 생성되는 걸 방지
    • 인터프리터의 실행 속도가 느린 단점을 보완

0개의 댓글

관련 채용 정보