applications, both in development and in execution. Another reason for this difference, as we
will see, is the required compatibility with the pre-existing ISO 7816 standard for smart cards.
We will give an overview of the Java Card platform in the following section.
The Java Card environment is quite interesting because of the hardware limitations and pecu-
liarities of this kind of platform. Let's begin with the hardware. The memory configuration of a
smart card could be in the order of 1KB of RAM, 16KB of EEPROM and 24KB of ROM. Of
these resources, the Java Card Runtime Environment (JCRE) occupies a good part of the
ROM. The remaining types of memories are left to Java Card applications, known as applets ,
because of their ability to be downloaded and executed even after the card has been issued
(that is, its ROM memory has been written out).
Although ROMs are written once and for all, and RAM is erased when power goes
off, EEPROMs (Electrically-Erasable Programmable ROMs) are slower, but able to keep
data persistently, independently from power sources.
Given this amount of resources, even the tiniest Java 2 Micro Edition environment wouldn't fit.
The solution was to adopt only a subset of the Java technology. Indeed, rather than a subset, it
seems like a completely new Java platform, as we will see now. We will introduce only the
needed details in order to give an overview of the deployment procedure on this platform.
Supported Java Features
Unsupported Java Features
Three small primitive data types
All large primitive data types ( long , double , float )
only ( boolean , byte , short )
Optional support for integer
Primitive char types and strings ( String class)
( int) primitive data type
dynamic class loading (the whole System class is
Java packages, classes,
interfaces, and exceptions
All Object-Oriented features