Java este un limbaj puternic tipizat,adica fiecare
variabila si expresie are un tip cunoscut in mom compilarii.Tipurile de date limiteaza valorile pe care o variabila le poate memora sau pe care le poate produce o expresie,limiteaza operatiile suportate de aceste valori. Exista 3 categ de tipuri de date:primitive,referinta si null.Tipurile primitive sunt tipurile numerice si boolean.Tipurile numerice sunt tipurile integrale(byte,short,long,int) si tipurile in virgula flotanta(float si double).Tipurile de referinta sunt tipurile clasa,interfata si tablou.Un ob in java este o instanta creata dinamic a unui tip de clasa sau a unui tablou creat dinamic.Valorile unui tip de referinta sunt referinte la obiecte.Toate obiectele inclusiv tablourile suporta metode ale clasei Object.Literalii String sunt reprez de obiecte string. Tipul null este special,acesta neavand un nume.Este deci imposibil sa declaram o variabila de tip null sau sa o convertim la o expresie de tip null.Referinta null este o valoare posibila ptr o expres de tip null si poate fi convertia la orice tip de referinta. Valorile primitive nu impart starea cu alte valori primitive,deci o variabila de tip primitiv va tine o valoare primitiva de acel tip.Valoarea unei varibiale de tip primitiv poate fi schimbata doar prin operatii de atribuire a acelei variabile. Orice valoare a oricarui tip integral poate fi convertita la sau catre un tip numeric.In schimb nu exista conversii intre tipurile integrale si tipul boolean.