thumbnail
자바의 정석 1장 학습 내용 정리
Java / Study
2023.09.07.

해당 글은 남궁성님의 저서 ‘자바의 정석 3판’을 공부하며 개인적으로 복습해야 하거나 중요한 내용이라고 생각하는 부분을 정리한 글 입니다. 해당 책에서 제가 기존에 알고있거나 별도의 기록이나 복습 없이 이해가 가능한 부분은 생략되어 있습니다.

자바언어의 특징

  • 운영체제에 독립적
    • 이식성(Portability) 높음
  • OOP Language
    • 객체지향의 특징인 Inheritance, Encapsulation, Polymorphism
  • GC (Garbage Collector)
    • 프로그래머가 메모리 관리를 하지 않아도 됨, GC가 알아서 회수
  • 네트워크, 분산처리 지원
    • 다양한 네트워크 프로그래밍 라이브러리 지원
  • 멀티쓰레드(Mutli-Thread) 지원
    • 자바에서는 멀티쓰레드를 시스템과 관계없이 구현 가능 - 관련된 라이브러리 제공
    • 여러 쓰레드에 대한 스케줄링을 자바 인터프리터가 담당
  • 동적 로딩(Dynamic Loading) 지원
    • 실행 시점에 모든 클래스가 로딩되지 않고 필요한 시점에 클래스를 로딩하여 사용 가능
    • 일부 클래스가 변경되어도 전체 애플리케이션을 다시 컴파일하지 않아도 됨

JVM (Java Virtual Machine)

  • 소프트웨어로 구현된 컴퓨터?
    • 일반 애플리케이션 → OS → HW
      • OS를 거쳐 바로 HW 접근: 속도가 빠름
      • OS에 종속적: 다른 OS에서 실행시키기 위해서는 애플리케이션을 OS에 맞게 수정해야 함
    • 자바 애플리케이션 → JVM → OS → HW
      • 실행 시 해석: 속도가 느림, JIT 컴파일러의 성능 향상과 HW 성능의 증가로 거의 옛말
      • OS 종속이지 않음: JVM과 상호작용 단, OS에 맞는 JVM 필요

ETC

  • JDK: 자바개발도구(Java Development Kit)
  • JRE: 자바실행환경(Java Runtime Environment)
  • JDK: JRE + 개발에 필요한 실행파일
  • JRE: JVM + 클래스라이브러리

Reference

Thank You for Visiting My Blog, I hope you have a nice Day!
© 2023 Developer Yeong Ryeol Kim, Powered By Gatsby.