Learn something new every day
More Info... by email
The Java Card™ application programming interface is a platform designed to create applications for smart cards and smart card devices. In addition to smart card-related programming, Java Card™ is well-suited for the creation of applications on a wide range of small-footprint, low-memory devices, such as some kinds of cell phones. These small applications run very similarly to larger Java® programs; a virtual machine establishes a base environment, and then the Java® code runs within it. The only real difference between standard Java® and a Java Card™ system is the size and a handful of features that have yet to be implemented.
Java Card™ originally came on the market in 1996. At this time, the only use for the technology was in smart card-based systems. As time went on, the number of small computing platforms increased. Now this system is used on a wide range of devices that operate with platform restrictions similar to a smart card system.
The language is suited for an environment that has very limited memory and processing power. The majority of smart card systems use a fixed environment; outside of special equipment, it is very difficult to get a program on or off the card. These environments are often extremely limited in terms of available resources, making the language a perfect fit.
The most common secondary location for Java Card™ is on cellphones. Most modern smartphones actually have enough memory and power to make use of more advanced Java® platforms, so the card systems are often limited to older smartphones or dumbphones. A small selection of other devices use Java Card™ technology, mostly ones that use add-on cards or memory cards for additional programming.
Most Java® systems work the same way, regardless of their intended platform or overall size. A virtual machine creates an emulated environment on the target device. The Java® program runs within that environment with little regard for the system’s actual hardware. The virtual machine installation is different on every platform, but the inner workings are not. As a result, it is possible to run the same application on a wide range of computers or devices with no conversion.
The main goals of the Java Card™ language are compatibility and security. This language is designed to be compatible with nearly any device that wants to use it. This is generally done through individually-coded virtual machines. Once the virtual machine for the hardware is operational, applications are relatively easy to port over.
The second main focus is creating a secure program and platform. Since smart systems often contain sensitive information, the language has a wide range of methods for safeguarding that information while it is in use. These methods range from inner application firewalls to multiple forms of encryption.
One of our editors will review your suggestion and make changes if warranted. Note that depending on the number of suggestions we receive, this can take anywhere from a few hours to a few days. Thank you for helping to improve wiseGEEK!