Scrigroup - Documente si articole

Username / Parola inexistente      

Home Documente Upload Resurse Alte limbi doc  
AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


Tipuri de date

java



+ Font mai mare | - Font mai mic



Tipuri de date

In limbajul Java exista doua categorii de tipuri de date : tipuri primitive si tipul referinta (cu adresa).

Tipurile primitive sunt :



aritmetice :

intregi : byte (1 octet), short (2 octeti), int (4 octeti), long (8 octeti) sunt intregi cu semn,

reale : float (4 octeti), double (8 octeti),

caracter : char (2 octeti) asimilat cu intreg fara semn cu valori intre 'tu000' si 'tufff',

logic : boolean (1 octet) : true si false.

Limbajul Java poseda pentru fiecare tip primitiv si cate o clasa ale carei instante reprezinta obiecte similare cu valorile din tipul primitiv respectiv. Aceste clase sunt : Byte, Short, Integer, Long, Float, Double, Character, Boolean.

Observatie : In limbajul Java caracterele sunt codificate pe 16 biti in codul Unicode. Setul Unicode este un superset al setului ASCII, fiecare caracter (octet) ASCII fiind completat, in acest caz, cu un octet semnificativ cu valoarea 0 (neinterpretat de masini care vad doar ASCII). Aceasta codificare se rasfrange, evident, si asupra sirurilor de caractere. Pentru sirurile de caractere (care sunt privite ca tablouri de caractere reprezentate in Unicode) exista clasa String in care sunt descrise toate operatiile posibile cu siruri de caractere.

Intre toate tipurile aritmetice se pot face conversii cu extensia zonei de memorie folosita pentru reprezentare sau micsorarea acesteia (caz in care pot apre truncheri ale valorilor), dupa caz. Tipul char poate fi convertit la unul dintre tipurile intregi sau reale. Limbajul admite si conversii de tip casting intre tipuri compatibile. Prin casting se intelege atribuirea valorii unei expresii de un anumit tip catre o variabila de alt tip. Sintaxa este

tip_data identificator=(tip_data)expresie;

Iata cateva exemple.

int i,j, a=10;

float x=5.77,y=90.3;

..

(double)(i+j) are tipul double,

(int)(x-y) are tipul int.

a=(int)y Þ a=90 ; x=a Þ x=10.0

Modul de executie al operatiilor aritmetice este cel obisnuit. Se impune o observatie asupra operatorului de impartire. Rezultatul unei impartiri este intreg sau real dupa tipul operanzilor.

int j;

float x;



j=1/2 Þ j=0; j=6/3 Þ j=2; j=9/4 Þ j=2; x=9./2 Þ x=4.5

Impartirea cu zero, in cazul operanzilor de tip intreg, provoaca o exceptie de tip ArithmeticException. In cazul tipurilor reale impartirea cu zero nu provoaca o exceptie deoarece pentru aceste tipuri de date exista constantele : POSITIVE_INFINITY, NEGATIVE_INFINITY, NaN (Not a Number) pe care le pot lua valorile expresiilor in astfel de cazuri.

La evaluarea expresiilor cu operatori aritmetici binari se utilizeaza promovarea la tipul imediat superior in cazul operanzilor de tipuri numerice diferite. Astfel,

daca unul din operanzi este de tip double atunci celalalt este convertit la tipul double,

altfel daca unul din operanzi este de tip float celalalt este convertit la tipul float,

altfel daca unul dintre operanzi este de tip long celalalt este convertit la tipul long,

altfel ambii operanzi sunt convertiti la tipul int.

Tipurile de date referinta sunt obiectele (instantele claselor) si tablourile. In Java, tipul referinta este singura modalitate de accesare a obiectelor. In cazul acestor tipuri, compilatorul pune adresa unui obiect sau tablou intr-o variabila. Astfel este posibil ca doua variabile diferite sa refere acelasi obiect. Spre deosebire de tipurile referinta, tipurile primitive sunt manevrate prin valoare. Pentru variabilele de tip referinta alocarea spatiului de memorie se face dinamic prin ordinul new. Dupa ce variabilele referinta nu mai sunt utilizate spatiul alocat lor este eliberat prin mecanismul "garbage collection".

Button a,b,c=new Button();

int i,j;

a=new Button();

b=a;

c.setLabel("Start");

a.setLabel("Gata");

String s1=a.getLabel(),s2=b.getLabel();

String s3=c.getLabel();

i=7; j=i; i=3;

String-urile s1 si s2 au valoarea "Gata" pe cand s3 are valoarea "Start". Variabilele i si j au valorile i=3, j=7.





Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 1418
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved