L'interface de programmation d'applications Java Card est une plate-forme conçue pour créer des applications pour cartes à puce et les lecteurs de carte à puce. En plus de la programmation liée à la carte à puce, Java Card est bien adapté pour la création d'applications sur un large éventail de faible encombrement, les appareils à faible mémoire, tels que certains types de téléphones portables. Ces petites applications fonctionnent de manière très similaire à des programmes plus importants Java ; une machine virtuelle établit un environnement de base, et ensuite le code Java exécute son sein. La seule vraie différence entre le standard Java et un système Java Card est la taille et une poignée de fonctionnalités qui n'ont pas encore été mis en œuvre.
Java Card est venu à l'origine sur le marché en 1996. A cette époque, la seule utilisation de la technologie était dans les systèmes à base de cartes à puce. Comme le temps passait, le nombre de petites plates-formes informatiques a augmenté. Or, ce système est utilisé sur une large gamme de dispositifs qui fonctionnent avec des restrictions de plate-forme similaire à un système de carte à puce.
Le langage est adapté à un environnement qui a une mémoire très limitée et la puissance de traitement. La majorité des systèmes de cartes à puce utilisent un environnement fixe; en dehors d'un équipement spécial, il est très difficile d'obtenir un programme ou désactiver la carte. Ces environnements sont souvent très limités en termes de ressources disponibles, ce qui rend la langue un ajustement parfait.
L'emplacement secondaire le plus commun pour Java Card est sur les téléphones portables. La plupart des smartphones modernes ont fait assez de mémoire et le pouvoir de faire usage de plates-formes les plus avancées de Java , de sorte que les systèmes de cartes sont souvent limitées à des smartphones plus âgés ou dumbphones. Une petite sélection d'autres appareils utilisent la technologie Java Card, surtout ceux qui utilisent les cartes d'extension ou des cartes de mémoire pour la programmation supplémentaire.
La plupart des systèmes Java ® fonctionnent de la même manière, indépendamment de leur plate-forme destinée ou la taille globale. Une machine virtuelle crée un environnement émulé sur le périphérique cible. Le programme Java fonctionne dans cet environnement avec peu d'égard pour le matériel réel du système. L'installation de la machine virtuelle est différente sur chaque plate-forme, mais les rouages ne sont pas. En conséquence, il est possible d'exécuter la même application sur une large gamme d'ordinateurs ou d'appareils sans conversion.
Les principaux objectifs de la langue Java Card sont la compatibilité et la sécurité. Ce langage est conçu pour être compatible avec presque n'importe quel dispositif qui veut l'utiliser. Cela se fait généralement par le biais de machines virtuelles individuellement codés. Une fois que la machine virtuelle pour le matériel est opérationnel, les applications sont relativement faciles à mettre en communication plus.
Le deuxième objectif principal est de créer un programme et plate-forme sécurisée. Comme les systèmes intelligents contiennent souvent des informations sensibles, la langue a un large éventail de méthodes pour la sauvegarde de cette information alors qu'il est en cours d'utilisation. Ces méthodes vont de pare-feu d'applications internes à de multiples formes de cryptage .