:자바 플랫폼 분류

위키백과, 우리 모두의 백과사전.
항목 자바 SE 자바 EE 자바 ME[1] 자바 카드
CLDC CDC Classic Edition Connected Edition
개요 모든 자바 플랫폼의 기본이 되는 플랫폼으로 자바 가상 머신, 자바 언어 규격 제정의 기준이 된다. 데스크톱 환경 및 서버 환경에서 공히 널리 사용된다. 기업 서버 환경에서 사용될 목적으로 제정된 플랫폼으로 자바 SE에 추가 API가 더 정의된 형태이다. 저사양 임베디드 시스템을 위한 플랫폼으로 특히 스마트폰이 아닌 피처폰에서 많이 사용된다. 8~32MHz 클럭으로 동작하는 16비트 혹은 32비트 프로세서, 최소 160KB ROM(Flash), 32KB RAM을 목표로한 플랫폼이다.[2] 상대적으로 고사양 임베디드 시스템을 위한 플랫폼으로 디지털 TV블루레이 디스크 플레이어에 널리 사용되고 있다. 원래는 스마트폰 같은 고사양 휴대폰에도 CDC를 보급하는 것이 목적이었으나 안드로이드, iOS 위주로 재편된 시장에서는 거의 사용되지 않는다. 메모리/CPU가 제약된 스마트카드용 플랫폼으로 목표 환경은 통상 RAM 1.2KB, EEPROM이나 flash 16KB, ROM 32~48K 정도를 가진다.[3] 스마트카드의 고사양화에 의해 새로 추가된 플랫폼이다. 최소 환경은 비휘발성 메모리 176 KB[4], RAM 16KB를 요구한다. 통상적으로는 ROM 512KB, 읽고 쓸 수 있는 비휘발성 메모리 128KB, RAM 24KB 정도의 환경을 목표로 한다.[3]
JVM 규격 자바 가상 머신 규격에 따르는 VM 규격 사용 자바 SE와 동일 다음과 같은 부분 집합:[2]
  • 사용자 정의 클래스 로더 제외
  • 스레드 그룹 및 데몬 스레드 제외
  • 객체 종결(finalization) 제외
  • 비동기 예외 제외
  • 리플렉션(reflection) 제외
  • 약한 레퍼런스(weak reference)를 제외한 레퍼런스 객체 제외
  • 실행 시 참조할 수 있는 애노테이션(annotation) 제외
  • Assertion 제외
자바 SE와 동일하나 일부 핵심 API만 부분 집합 다음과 같은 부분 집합:[3]
  • 동적 클래스 로딩 제외
  • 보안 관리자(Security Manager) 제외
  • 객체 종결(finalization) 제외
  • 객체 복제(cloning) 제외
  • 자바 패키지 접근 권한 제어 일부 제한
  • 참조(reference) 객체 제외
  • 실행 시 참조할 수 있는 애노테이션(annotation) 제외
  • Assertion 제외
  • 클래스 파일 형식 대신 CAP (Converted Applet) 파일 사용
  • char, double, float, long 타입 제외
다음과 같은 부분 집합:[3]
  • 부동소수점 타입 미지원
  • 사용자 정의 클래스 로드 제외
  • 스레드 그룹 및 데몬 스레드 제외
  • 객체 종결(finialization) 제외
  • 비동기 예외 제외
  • 리플렉션(reflection) 제외
  • 참조(reference) 객체 제외
  • 실행 시 참조할 수 있는 애노테이션(annotation) 제외
  • Assertion 제외
API
주요 구현 오라클 HotSpot VM[5], 오라클 JRocket[6] (추후 두 VM을 하나로 통합 예정) Java SE와 차이 없으며 HotSpot VM의 경우 서버용으로 튜닝된 버전이 있음 오라클 KVM[7], IBM WEME(WebSphere Everyplace Micro Environment)[8] : 동일한 코드에서 CLDC/CDC 버전을 도출

각주[편집]

  1. JVM과 그와 밀접하고 필수적인 표준 API를 정의하는 configuration을 기준으로 실제 사용되는 플랫폼은 목표 환경에 맞게 API를 추가한 프로파일(profile)들이다. 추가되는 APII는 일반적으로 자바 SE에서 부분 집합을 가져 오나 javax.microedition 패키지에 임베디드 시스템 전용 API를 추가하기도 한다.
  2. CLDC 1.1 JSR 페이지
  3. 자바 카드 3.0.1 규격 다운로드 페이지
  4. ROM 및 읽고 쓸 수 있는 비휘발성 메모리인 EEPOM/flash/배터리 달린 SDRAM 포함
  5. HotSpot VM 홈페이지
  6. JRocket 홈페이지
  7. 오라클 모바일 자바 참조 구현 다운로드 페이지
  8. WEME 홈페이지
  9. Java ME for Embedded 문서 페이지
  10. JBed 홈페이지