항목 |
자바 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 버전을 도출
|
|
|
|