본문 바로가기

Server Programming/BackEnd Project

7일차. 자바 (1) Java 언어의 특징

반응형

자바의 특징

  • 객체 지향 : 데이터와 동작을 통합하는 다양한 객체 유형의 조합으로 소프트웨어 궝
    • OOP의 기본 개념 : Object, Class, 상속, 다형성, 추상화, 캡슐화
  • 보안
    • Classloader : 네트워크 소스로부터 가져온 로컬 파일 시스템의 클래스 패키지 분리
    • ByteCode Verifier: 불법코드 fragment 체크
  • 이식성
  • 네트워크 분산처리 지원
    • 풍부한 API을 통해 네트워크 통신 가능
    • 네트워크를 통해 객체를 전송, 특히 RMI, EJB로 분산애플리케이션 개발을 지원
  • 동적 클래스 로딩
    • 모든 프로그램이 로딩되지 않고 필요한 시점에 런타임시점에 로드해 사용한다.
    • 일부 프로그램 변경의 경우 전체 프로그램을 컴파일 하지 않는다.
  • 멀티 스레드
    • 스레드를 정의해 동시에 멀티 테스크를 처리하는 자바 애플리케이션을 작성할 수 있다.
    • 자바에서 OS 관계없이 구현하는 API 제공
  • 고성능
    • 초창기에 성능이 느렸지만, 지속적으로 성능이 개선되었다.
    • JIT 컴파일러 등으로 타 언어와 성능 차이가 거의 없다
  • 자동 메모리 관리 (가비지 컬렉션)
    • 사용하지 않는 데이터를 메모리로 변환하는 메모리 관리

 

플랫폼 독립적

  • OS마다 별도의 실행환경 제공
  • JVM을 통해서만 통신하고, JVM이 OS와 통신하는 구조
  • OS별로 JVM으로 구동되므로, OS와 상관없이 실행 가능하다.

 

인터프리터

  • 자바는 인터프리터를 통해 클래스 파일의 바이트 코드를 해석한다.
  • 컴파일 언어보다 느릴 수 있지만, OS마다 JVM을 통해 범용적으로 사용가능하다.

 

Java API Document

  • 클래스 라이브러리 설명, 기능, 사용법을 문서화
  • Package, Class, Class의 상속도 및 필드와 메서드들의 정의를 상세하게 표현
  • 일반적으로 Java SE API를 자주 사용한다.
    • JNDI : 계정 정보의 저장하는 액티브 디렉토리 관리
    • RMI / RMI-IIOP : 분산 처리 시스템 라이브러리

 

반응형

'Server Programming > BackEnd Project' 카테고리의 다른 글

9일차 -TIL  (0) 2022.12.21
8일차 -TIL  (0) 2022.12.20
7일차 -TIL  (0) 2022.12.18
6일차 - TIL  (0) 2022.12.17
5일차. TIL  (0) 2022.12.16