Java, dalam ilmu komputer merupakan bahasa pemrograman berorientasi objek yang diperkenalkan pada tahun 1995 oleh Sun Microsystems, Inc., yang saat Java diciptakan, dipimpin oleh James Gosling. Nama Java diambil karena beberapa pemrogram terkesan oleh keidahan pulau Jawa di Indonesia serta kenikmatan kopinya. Java memfasilitasi penyebaran baik data maupun program aplikasi kecil, yang dinamakan applet, lewat internet.
Aplikasi-aplikasi Java tidak berinteraksi langsung dengan CPU (Central Processing Unit) atau sistem operasi komputer yang digunakan sehingga ia bersifat mandiri terhadap platform komputer, baik platform perangkat lunak maupun perangkat keras. Ini berarti aplikasi Java secara teori seharusnya dapat berjalan baik di komputer mikro, mini maupun besar (mainframe) yang dijalankan menggunakan berbagai sistem operasi. Java adalah bahasa pemrograman yang mirip dengan C/C++.
Java terutama adalah bahasa pemrograman yang umum digunakan untuk pemrograman Web. Salah satu keunggulan dari Java adalah dapat berjalan di banyak platform perangkat keras dan perangkat lunak sehingga pengembang aplikasi dan pemrogram dapat menuliskan program dengan Java (sekali dan hanya sekali saja) kemudian dengan relatif mudah bisa menjalankannya dimana saja; di platform sistem operasi apapun serta di kebanyakan komputer yang aktif saat ini. Istilah populernya adalah, “Write Once, Run Anywhere” (Nugroho Adi, 2008: 4).
Sun Microsystem telah mendefenisikan tiga buah edisi dari Java 2, yaitu sebagai berikut:
• Java 2 Standard Edition (J2SE), yang digunakan untuk mengembangkan aplikasi-aplikasi desktop dan applet (aplikasi Java yang dapat di dalam browser web).
• Java 2 Enterprise Edition (J2EE), merupakan superset dari J2SE yang memperbolehkan kita mengembangkan aplikasi-aplikasi berskala besar (enterprise), yaitu dengan melakukan pembuatan aplikasi-aplikasi di sisi server dengan menggunakan EJBs (Enterprise JavaBeans), aplikasi web dengan menggunakan Servlet dan JSP (JavaServer Pages) dan teknologi lainnya seperti COBRA (Common Object Request Broker Architecture) dan XML (Extensible Markup Language).
• Java 2 Micro Edition (J2ME), merupakan subset dari J2SE yang digunakan untuk menangani pemrograman di dalam perangkat-perangkat kecil, yang tidak memungkinkan untuk mendukung implementasi J2SE secara penuh.