Gjuha e programimit Java është projektuar fillimisht nga Sun Microsystems. U inicializua nga James Gosling, dhe lancuar në vitin 1995, si një komponent kryesor në platformën e Sun Microsystems. Versioni i saj i parë ishte Java 1.0 J2SE.
Versioni i fundit i Java Standart Edition është Java SE 8. Duke u nisur nga ndryshimet e Java dhe nga popullariteti i shpërndarë i saj, janë shtuar shumë konfigurime për shumë tipa të ndryshme platformash, siç janë J2EE për Enterprise Applications, J2ME për Mobile Applications, etj.
Versionet e reja të J2 janë riemëruar si Java SE, Java EE dhe Java ME.
Java garanton parimin : Write once, run anywhere.
Java është :
- E orientuar nga objektet – Në Java çdo gjë është objekt. Java është lehtësisht e zgjerueshme përderisa është e bazuar në modelin e objekteve.
- E pavarur nga platforma – Ndryshe nga gjuhë të tjera programimi, duke përfshirë edhe C apo C++, kur kompilohet në Java, nuk kompilohet në një makinë specifike, por në një kod bitesh të pavarur nga platforma. Ky kompilator për në kod bitesh interpretohet nga Java Virtual Machine (JVM).
- E thjeshtë – Java është projektuar për të qenë e thjeshtë për tu mësuar. Nëse kuptoni konceptet bazë të programimit Object-Oriented, do e keni të thjeshtë të përvetësoni Java.
- E sigurt – Java përmban cilësi që mundësojnë programimin pa ndërhyrje të viruseve. Teknikat e autentifikimit janë të bazuara në enkriptimin me çelësa publik.
- Neutrale nga arkitektura – Kompilatori i Java gjeneron një skedar në një format neutral nga arkitektura, i cili e bën kodin e kompilueshëm dhe të ekzekutueshëm në shumë procesorë, mjafton të jetë e instaluar Java runtime system.
- Portabël – Duke qenë neutrale nga arkitektura, nuk ka asnjë varësi në implementim, gjë që e bën Java portable.
- Robust – Java përpiqet të eliminojë situatat e gabimit duke u fokusuar në kontrollimi gjatë kohës së kompilimit dhe kontrolle gjatë ekzekutimit.
- Multithread – Një cilësi i Java është mundësia për multithread, pra kryerja e disa detyrave njëherësh, në mënyrë simultane. Kjo cilësi në projektim i lejon programuesit të ndërtojnë aplikacione iterative multitask.
- E interpretueshme – Kodet e biteve në Java përkthehen në instruksione të makinës dhe nuk ruhen askund tjetër ndërkohë. Procesi i zhvillimit të kodit është i shpejtë dhe analitik, sepse link-imi kryhet si një proces inkrementues.
- Me performancë të lartë – Me përdorimin e kompilatorëve Just-In-Time, Java arrin në një performancë të lartë.
- E shpërndarë – Java është projektuar për mjedise të shpërndara në internet.
- Dinamike – Java konsiderohet si dinamike, më shumë se C ose C++, përderisa është projektuar për t’iu përshtatur mjediseve ku po ekzekutohet kodi. Programi në Java mund të mbajë sasi të gjëra informacioni run-time, i cili shërben për të verifikuar dhe për të aksesuar objektet gjatë kohës së ekzekutimit.