Antarmuka pemrograman aplikasi Java Card™ adalah platform yang dirancang untuk membuat aplikasi untuk kartu pintar dan perangkat kartu pintar. Selain pemrograman yang berhubungan dengan kartu pintar, Java Card™ sangat cocok untuk pembuatan aplikasi pada berbagai perangkat dengan ukuran kecil dan memori rendah, seperti beberapa jenis ponsel. Aplikasi kecil ini berjalan sangat mirip dengan program Java® yang lebih besar; mesin virtual membuat lingkungan dasar, dan kemudian kode Java® berjalan di dalamnya. Satu-satunya perbedaan nyata antara Java® standar dan sistem Java Card™ adalah ukuran dan beberapa fitur yang belum diterapkan.
Java Card™ awalnya hadir di pasaran pada tahun 1996. Saat ini, satu-satunya penggunaan teknologi tersebut adalah pada sistem berbasis kartu pintar. Seiring berjalannya waktu, jumlah platform komputasi kecil meningkat. Sekarang sistem ini digunakan pada berbagai perangkat yang beroperasi dengan batasan platform yang mirip dengan sistem kartu pintar.
Bahasa ini cocok untuk lingkungan yang memiliki memori dan kekuatan pemrosesan yang sangat terbatas. Mayoritas sistem kartu pintar menggunakan lingkungan tetap; di luar peralatan khusus, sangat sulit untuk mengaktifkan atau menonaktifkan program. Lingkungan ini seringkali sangat terbatas dalam hal sumber daya yang tersedia, membuat bahasa ini sangat cocok.
Lokasi sekunder yang paling umum untuk Java Card™ adalah pada ponsel. Sebagian besar ponsel cerdas modern sebenarnya memiliki memori dan daya yang cukup untuk memanfaatkan platform Java® yang lebih canggih, sehingga sistem kartu sering kali terbatas pada ponsel cerdas atau dumbfon lama. Sejumlah kecil perangkat lain menggunakan teknologi Java Card™, sebagian besar yang menggunakan kartu tambahan atau kartu memori untuk pemrograman tambahan.
Sebagian besar sistem Java® bekerja dengan cara yang sama, terlepas dari platform yang dimaksudkan atau ukuran keseluruhannya. Mesin virtual menciptakan lingkungan yang ditiru pada perangkat target. Program Java® berjalan dalam lingkungan tersebut dengan sedikit memperhatikan perangkat keras sistem yang sebenarnya. Instalasi mesin virtual berbeda pada setiap platform, tetapi cara kerjanya tidak. Akibatnya, dimungkinkan untuk menjalankan aplikasi yang sama di berbagai komputer atau perangkat tanpa konversi.
Tujuan utama bahasa Java Card™ adalah kompatibilitas dan keamanan. Bahasa ini dirancang agar kompatibel dengan hampir semua perangkat yang ingin menggunakannya. Ini umumnya dilakukan melalui mesin virtual yang dikodekan secara individual. Setelah mesin virtual untuk perangkat keras beroperasi, aplikasi relatif mudah untuk dipindahkan.
Fokus utama kedua adalah menciptakan program dan platform yang aman. Karena sistem pintar sering kali berisi informasi sensitif, bahasa tersebut memiliki berbagai metode untuk melindungi informasi tersebut saat sedang digunakan. Metode ini berkisar dari firewall aplikasi dalam hingga berbagai bentuk enkripsi.