Java este un limbaj de programare orientat pe obiecte asemănător limbajului C++.
El a fost dezvoltat de firma Sun, prima semnalare a apariţiei sale datând din 1991. Limbajul a fost dezvoltat în cadrul unui proiect denumit Green, obiectivul acestuia fiind dezvoltarea unui limbaj pentru programarea echipamentelor electrice şi electronice "inteligente" şi comunicarea cu acestea.
Punctul de pornire a fost limbajul C++, dar Java aduce acestuia un volum semnificativ de modificări, mai ales în sensul simplificării, creşterii rigurozităţii şi a portabilităţii. Conducătorul proiectului, GreenJames Gosling, este considerat părintele limbajului Java.
Noului limbaj i s-a dat la început numele Oak (eng. stejar) dar acesta a fost revendicat de o altă firmă şi realizatorii l-au schimbat în Java, aluzie la sursa băuturii favorite a memrilor echipei - cafeaua.
Caracteristicile noului limbaj au intrat însă şi în atenţia şi firmelor preocupate de dezvoltarea Internetului. A realiza aplicaţii având un cod redus, uşor deci de transportat prin reţele şi care pot fi rulate pe diferite tipuri de calculatoare şi de sisteme de operarereprezenta o problemă dificilă. Dar nu şi pentru echipa care a creat Java, care în 1994 a pus la punct o aplicaţie destinată navigării prin Internet (denumită HotJava) care integra suportul necesar executării în pagina de web a unor mici aplicaţii, denumite applet-uri. A mai trebuit un pic de sprijin din partea firmei Netscape, al cărui program
de navigare în Internet era deja larg răspândit şi succesul imediat al limbajului Java a fost asigurat
simplitate, elimina supraîncarcarea operatorilor, mostenirea multipla si toate "facilitatile" ce pot provoca scrierea unui cod confuz.
robustete, elimina sursele frecvente de erori ce apar in programare prin eliminarea pointerilor, administrarea automata a memoriei si eliminarea fisurilor de memorie printr-o procedura de colectare a 'gunoiului' care ruleaza în fundal. Un program Java care a trecut de compilare are proprietatea ca la executia sa nu "crapa sistemul".
complet orientat pe obiecte - elimina complet stilul de programare procedural
usurinta in ceea ce priveste programarea in retea
este neutru din punct de vedere arhitectural
portabililtate, cu alte cuvinte Java este un limbaj independent de platforma de lucru, aceeasi aplicatie ruland, fara nici o modificare, pe sisteme diferite cum ar fi Windows, UNIX sau Macintosh,lucru care aduce economii substantiale firmelor care dezvolta aplicatii pentru Internet.
compilat si interpretat
asigura o performanta ridicata a codului de octeti
permite programarea cu fire de executie (multitheaded)
asigurând mecanisme stricte de securitate a programelor concretizate prin: verificarea dinamica a codului pentru detectarea secventelor periculoase, impunerea unor reguli stricte pentru rularea programelor lansate pe calculatoare aflate la distanta, etc