În limbajul Java, tipurile de date se împart în două categorii: tipuriprimitive și tipuri referință.
Tipurile de date primitive sunt predefinite în limbaj. Aceasta înseamnă că numele, mulțimea de valori, mulțimea de operații și tipul rezultatului operațiilor pentu fiecare tip primitiv sunt impuse prin limbaj și, deci, nu trebuie definite și nu pot fi modificate de programator.
Tipurile de date primitive în limbajul Java se clasifică astfel:
Prin reprezentare externă, înțelegem regulile după care se scriu valorile datelor respective în programe, în documente sau pe ecranul calculatorului. Reprezentarea externă a valorii într-un program se numește literal.
Prin reprezentare internă, înțelegem forma sub care datele respective apar în memoria mașinii virtuale Java. O proprietate foarte importantă a reprezentării interne a datelor este că aceasta, fiind destinată mașinii virtuale Java, nu depinde de calculatorul concret pe care se va executa programul.
Vom începe studiul cu tipul de date boolean, apoi vom studia tipurile numerice propriu-zise (intregi și reale), după care vom studia tipul char, ca un tip numeric special.
Exemplu Fie x o variabilă de tip int. Expresia x=-17 se citeste "se atribuie lui x valoarea -17". Efectul operației de atribuire este, în acest caz, că valoarea anterioară a variabilei x se înlocuiește în memorie prin noua valoare. În partea dreaptă a operatorului de atribuire putea fi nu numai un literal, ca în cazul nostru, ci orice altă expresie cu valoare de tip int. |
Operatorul == (se citește "este egal cu") exprimă relația de egalitate. Expresia a==b, unde a și b sunt doi operanzi care pot fi literali, variabile sau expresii, are valoarea logică (booleana) true dacă valoarile celor doi operanzi sunt egale, sau are valoarea logică false, dacă egalitatea nu este satisfacută.
Cei doi operanzi trebuie sa fie comparabili, deci fie ambii de tip
boolean, fie ambii numerici.
Atragem atenția asupra deosebirilor esențiale dintre
operatorul de atribuire = si operatorul de egalitate ==. a/ Operatorul de atribuire = impune ca operandul din partea stangă sa fie o variabilă, în timp ce în cazul operatorului de egalitate == ambii operanzi pot fi expresii. b/ Operatorul de atribuire = are efect lateral, care constă în modificarea valorii variabilei din partea stangă, în timp ce operatorul == nu are efect lateral, deci valorile ambilor operanzi rămân neschimbate; c/ Valoarea expresiei de atribuire a=b este identică cu valoarea atribuita variabilei a și are deci tipul acesteia, în timp ce valoarea expresiei a==b este întotdeauna de tip boolean, indiferent de tipul operanzilor. |
Operatorul != (se citește "este diferit de") exprimă relația de inegalitate a celor doi operanzi. Expresia a!=b, unde a și b sunt doi operanzi care pot fi literali, variabile sau expresii, are valoarea logică (booleană) false dacă valoarile celor doi operanzi sunt diferite, sau are valoarea logică true, dacă operanzii au valori egale.
Remarcăm că specificațiile variabilelor se
separă între ele prin virgule, iar la sfârșitul declarației se pune
simbolul ; (punct și virgulă) care, în limbajul Java, este terminatorul
de instructiune.
Limbajul Java este strict tipizat, deci orice variabilă trebuie să fie declarată înainte de a fi folosită. În plus, compilatorul Java verifică dacă, în momentul primei ei utilizări într-o expresie, variabila are deja o valoare. |
Exemplu Prin instrucțiunea int alpha, beta=-723, gamma=beta+7; se declară că variabilele alpha, beta și gamma sunt de tip int. Variabila alpha nu este inițializată, beta primește valoarea inițială -723, iar gamma primește ca valoare rezultatul calculării expresiei beta+7. Această expresie este calculabilă, întrucât beta are deja o valoare. |