Sunteți pe pagina 1din 35

Java made by Sherban _ Saptamana 1 1 Ce este Java?

-Java este un limbaj de programare; -un mediu de executie; -o platforma pentru dezvoltarea de aplicatii; -o tehnologie software . 2 Ce calitati are limbajul de programare Java? -fiind in prezent unul din limbajele cele mai larg folosite;limbajul este simplu, orientat pe obiecte, robust, sigur, portabil, interpretat, neutru fata de arhitectura, concurent, dinamic si distribuit; 3 Ce contine mediul de executie Java? -contine masina virtuala Java si un nucleu al bibliotecilor de clase Java; 4 Ce contine platforma Java? -compilatorul Java (Java Compiler); masina virtuala Java (Java Virtual Machine); bibliotecile de clase Java (Java Class Libraries); vizualizatorul de appleturi Java (Java AppletViewer); depanatorul Java (Java Debbuger) si alte instrumente de dezvoltare; documentatia. 5 Ce este programarea orientata pe obiecte? -Programarea orientata pe obiecte (POO) este o forma de programare, in care programatorii definesc clase de obiecte, iar programul contine un ansamblu de clase si obiecte, care comunica intre ele prin mesaje. 6 Ce este clasa? -Clasa este o extensie a conceptului de tip de date si contine o structura de date, impreuna cu metodele (functiile) care se aplica acestor date. 7 Ce este obiectul si ce legatura exista intre clasa si obiect? -Obiectul este o instantiere (o instanta) a clasei. In acelasi program se pot folosi mai multe obiecte apartinand aceleeasi clase, sau unor clase diferite. 8 Prin ce se determina starea obiectului? - Starea obiectului depinde de datele pe care acesta le contine 9 Prin ce se defineste comportamentul obiectului? -comportamentul este dat de metodele clasei respective. 10 Ce deosebire exista intre variabilele statice si cele nestatice? -Variabilele statice (ale clasei) apartin clasei, adica au aceeasi valoare pentru toate obiectele clasei respective. -Variabilele de instanta (nestatice) apartin obiectului (instantei), deci au valori diferite de la un obiect la altul 11 Ce deosebire exista intre metodele statice si cele nestatice? -Metodele statice (ale clasei) pot folosi numai variabilele statice ale clasei respective, in timp ce metodele nestatice pot folosi atat variabilele statice, cat si pe cele ale instantei.
1

12 Ce deosebire exista intre datele sau metodele publice si cele private? -Cele publice sunt accesibile din orice alta clasa, in timp ce cele private sunt accesibile numai din clasa careia ii apartin. 13 Care sunt principalele tipuri de produse software care pot fi scrise in limbajul Java? -Limbajul Java este folosit cel mai frecvent pentru a scrie urmatoarele trei tipuri de programe: aplicatie ;applet;servlet. 14 Ce deosebire exista intre applet si aplicatie? -aplicatie--este un produs software care se instaleaza pe un anumit calculator si functioneaza direct sub controlul sistemului de operare, avand acces la toate resursele calculatorului respectiv; -applet (miniaplicatie) - este un program care se transmite prin reteaua de calculatoare si este executat in cadrul unui navigator (browser) de Web, fara a avea acces la fisierele sau sistemul de intrare/iesire al calculatorului pe care se executa 15 Ce deosebire exista intre applet si servlet? -applet (miniaplicatie) - este un program care se transmite prin reteaua de calculatoare si este executat in cadrul unui navigator (browser) de Web, fara a avea acces la fisierele sau sistemul de intrare/iesire al calculatorului pe care se executa -servlet - un program care se executa pe un server de retea. 16 Care este metoda care trebuie sa existe in mod obligatoriu in orice aplicatie? -metoda principala, cu care incepe executia aplicatiei;aceasta metoda se numeste main . 17 Ce este un fisier sursa Java si cum se stabileste numele lui? -Programul sursa pentru aceasta clasa va fi editat sub forma unui fisier separat, care are acelasi nume cu clasa si are extensia Java. 18 Ce fel de editor se foloseste pentru crearea fisierului sursa? -Pentru crearea fisierului se va folosi un editor simplu, care genereaza numai text neformatat, de exemplu "Notepad" 19 Prin ce comanda se cere compilarea unui fisier sursa Java? -javac <fisier_sursa> 20 Ce se obtine in cazul in care compilarea a decurs corect? -Pe ecran apare din nou promptul sistemului de operare, fara a se afisa un mesaj de eroare 21 Ce se obtine daca compilarea nu a reusit? -un mesaj de eroare, care indica fie ca exista erori in program, care a fost sesizate de compilator, fie ca exista erori in linia de comanda prin care ati cerut compilarea 22 Prin ce comanda se cere executarea unei aplicatii? -java <nume_aplicatie> *** Saptamana 2 1 Ce este un comentariu? -Comentariile sunt texte care pot fi introduse in programul sursa, dar nu sunt luate in consideratie de compilator si deci nu au efect in timpul executarii programului
2

2 Ce fel de comentarii pot sa apara in fisierele sursa Java? -a/ comentarii care se pot extinde pe una sau mai multe linii si au forma /* <comentariu> */ b/ comentarii de sfarsit de linie, care incep cu simbolul // si continua pana la sfarsitul liniei respective, deci au forma // <comentariu> c/ comentarii care sunt destinate reproducerii in documentatia clasei si au forma /** <comentariu> *// deci se deosebesc formal de cele de la punctul a numai prin faptul ca incep cu simbolul /**. 3 Cum se reprezinta un sir in program? -Sirul se reprezinta in program printr-o succesiune de caractere cuprinsa intre ghilimele 4 Ce este concatenarea si care este operatorul prin care se realizeaza? -reprezentata prin operatorul +;Expresia sir1+sir2, in care operatorul + este plasat intre doua siruri, are ca rezultat un nou sir, care contine cele doua siruri-operanzi puse unul dupa altul 5 Prin ce metode se afiseaza un sir de caractere pe ecran? -System.out.println(<sir>) -System.out.print(<sir>) 6 Ce sunt identificatorii si cum se alcatuiesc ei in Java? -Numele date programelor sau componentelor acestora (clase, variabile, metode etc.) se numesc identificatori. Identificatorii se aleg de catre programator, respectand anumite reguli. 7 Ce sunt cuvintele cheie? -In orice limbaj de programare, exista un set de cuvinte, numite cuvinte cheie, care sunt considerate simboluri sintactice si nu pot fi folosite in program ca identificatori. 8 Ce este un literal? -Literalii sunt reprezentarile in fisierele sursa ale valorilor constante 9 Ce separatori se folosesc in limbajul Java? -{ } ( ) [ ] ; , . 10 Ce sunt operatorii? -Operatorii sunt simboluri ale unor operatii 11 Ce este efectul lateral al operatorului? -modifica valorile operanzilor 12 Toti operatorii au efect lateral? -nu 13 Ce sunt variabilele? -variabila este un simbol dat unei valori, care apartine unei multimi de valori ce constituie domeniul de definitie al variabilei respective 14 Ce este numele variabilei? -Numele variabilei este un identificator 15 Ce se intelege prin declararea variabilei?
3

-se intelege precizarea, pentru compilator, a tipului si numelui acesteia 16 Ce este o variabila finala? -se numesc variabile finale acele "variabile", ale caror valori nu pot fi modificate prin program 17 Ce este un tip de date? -Tipul de date este unul din conceptele fundamentale ale programarii calculatoarelor. Tipul de date este o multime de valori, asociata cu o multime de operatii care se pot face asupra valorilor respective. 18 Ce tipuri de date primitive exista in limbajul Java? -tipul boolean; -tipurile numerice : tipuri intregi: byte, short, int, long si char; tipuri reale: float si double; tipul char 19 Care este multimea de valori a tipului boolean? -{true, false} 20 Care este operatorul de negatie si ce efect are? -! (semnul exclamarii) ;!a ->>daca a are valoarea true, atunci !a are valoarea false si invers 21 Ce sunt operatorii logici & si &&? -Operatorii & si && realizeaza operatia logica SI. Expresiile a&b si a&&b ,in care a si b sunt operanzi de tip boolean, are valoarea true (adevarat) daca si numai daca atat a cat si b au valoarea true. In celelalte cazuri expresia are valoarea false. 22 Ce sunt operatorii logici | si ||? -Operatorii | si || realizeaza operatia logica SAU. Expresiile a|b si a||b , in care a si b sunt operanzi de tip boolean, are valoarea false daca si numai daca ambii operanzi au valoarea false. In celelalte cazuri expresia are valoarea true. 23 Care sunt tipurile de date numerice? -tipuri intregi: byte, short, int, long si char; -tipuri reale: float si double; -tipul char 24 Ce este operatia de atribuire? -Prin operatia de atribuire se da (se atribuie) unei variabile o noua valoare, care o inlocuieste pe cea deja existenta 25 Cum actioneaza operatorii == si !=? -operatorii relationali == si !=. Acestia sunt operatori binari fara efect lateral. La aplicarea unui astfel de operator, rezultatul operatiei este valoarea booleana true (adevarat) sau false (fals). 26 Ce efect are operatorul logic ^? - Operatorul ^ realizeaza operatia logica SAU-EXCLUSIV. Expresia a^b , in care a si b sunt operanzi de tip boolean, are valoarea true daca si numai daca cei doi operanzi au valori diferite (unul este adevarat, iar celalalt fals). Daca cei doi operanzi au valori identice, valoarea expresiei este false
4

27 Ce contine o declaratie de tip? -Declararatiile de tip sunt instructiuni prin care se specifica tipul, numele si, daca este necesar, valoarea initiala a datelor folosite in program tip variabila1, variabila2, ..., variabilaN; 28 Ce este conversia de tip? -datele pot fi convertite dintr-un tip in altul. Dupa caz, conversia se poate face implicit, sau poate fi ceruta explicit prin program 29 Ce este castul si care este forma lui sintactica? -. In schimb, la conversia de la o lungime mai mare la una mai mica, se retin numai octetii situati in partea dreapta a numarului, eliminandu-se octetii din stanga care depasesc noua lungime. Prin aceasta este posibil sa se modifice valoarea numarului si chiar semnul lui. 30 Care sunt operatorii de incrementare si decrementare? -Operatorii de incrementare ++ si decrementare -31 Ce operatori de comparatie se folosesc in cazul datelor de tipuri intregi? -< mai mic decat <= mai mic decat sau egal cu > mai mare dacat >= mai mare decat sau egal cu == este egal cu != este diferit de 32 Cum se reprezinta intern datele de tipuri intregi? -Reprezentarea interna a datelor de tip byte, short, int si long se face sub forma de numere intregi cu semn, in sistemul de numeratie binar 33 Cum se scriu literalii in sistemul octal? -In sistemul octal, literalii intregi sunt numere cu sau fara semn, scrise in sistemul de numeratie octal (cu baza opt) si care incep cu cifra 0. Amintim ca cifrele sistemului octal sunt 0, 1, 2, 3, 4, 5, 6, 7. 34 Cum se scriu literalii in sistemul hexazecimal? -In sistemul hexazecimal, literalii intregi sunt numere cu sau fara semn, scrise in sistemul de numeratie hexazecimal (cu baza 16) si care incep cu prefixul 0x. Amintim ca cifrele sistemului hexazecimal sunt: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F. 35 Pot avea semn literalii octali si cei hexazecimali? -da 36 Ce sunt datele in virgula mobila si ce corespondent au ele in matematica? -datele care apartin acestor tipuri sunt numere reale 37 Ce tipuri de date in virgula mobila exista in Java? -float double 38 Ce sunt literalii in virgula mobila? -sunt reprezentarile valorilor reale in programele Java 39 Ce valori speciale pot avea literalii in virgula mobila?
5

-literalii de tip float se termina cu litera f sau F, in timp ce literalii de tip double nu au un astfel de sufix. 40 Ce operatii aritmetice se poa efectua asupra numerelor in virgula mobila? -atribuire, de conversie de tip, operatii aritmetice si de comparatie, atribuirea compusa 41 Ce se intampla daca, la o impartire in virgula mobila, impartitorul are valoarea zero? -impartirea la zero a nu mai este considerata o exceptie, ci este o operatie permisa. Rezultatul impartirii la zero depinde de valoarea deimpartitului si de semnele celor doi operanzi 42 Ce fel de date contine tipul char? -tip char sunt caractere, adica simboluri tipografice elementare: litere, cifre, semne de punctuatie, simboluri matematice 43 Cum se reprezinta literalii de tip char? -, reprezentarea interna a caracterelor se face pe 2 octeti (16 biti), in sistemul Unicode 44 Ce este o secventa escape? dati exemple. -'\b' deplasare la stanga cu o pozitie (backspace);'\n'trecere la linie noua (line feed, NL) 45 Ce operatii se pot face supra datelor de tip char? -tipul char este considerat tip de date intregi. In consecinta, toate operatiile care se aplica tipurilor intregi -de atribuire, de conversie de tip, operatii aritmetice, de comparatie, operatii de deplasare binara, operatii logice pe biti si operatii de atribuire compusa 46 Care sunt operatorii de atribuire compusa si ce efect au? -+=, -=, *=, /=, %=, &=, |=, ^=, <<=, >>=, >>=. ***Saptamana 3 1 Ce este o expresie? -expresia este o combinatie permisa ("legala", corecta) de simboluri, care reprezinta o valoare 2 Cum se stabileste tipul unei expresii? -Tipul expresiei este acelasi cu tipul valorii ei 3 Fie a si b variabile de tip byte, c de tip int, u de tip float si v de tip double. Care sunt tipurile urmatoarelor expresii: a+b, a*c, a*c+u, u-2*v. -Expresii cu date primitive 4 Ce este precedenta operatorilor? -precedenta, adica un nivel de prioritate in aplicarea operatorului respectiv 5 In ce ordine se aplica operatorii cu acelasi nivel de precedenta? -se aplica de la stanga la dreapta 6 In ce ordine se evalueaza operanzii unui operator binar? -operandul din partea stanga se evalueaza inaintea celui din partea dreapta 7 Ce forma sintactica are expresia conditionala si care este semnificatia acestei expresii? -operand1 ? operand2 : operand3 8 Ce este o instructiune? -procesul de calcul este controlat de instructiuni (enunturi). Fiecare instructiune indica una sau mai multe actiuni pe care trebuie sa le execute calculatorul
6

9 Ce deosebire este intre instructiunile simple si cele structurate? -Instructiunile simple nu contin in interiorul lor alte instructiuni 10 Ce este instructiunea vida si cum se scrie? -este instr. care nu are nici un efect asupra instructiunii ; " ; " 11 Ce este o instructiune-expresie? -instructiunile-expresie sunt formate dintr-o expresie de atribuire, de incrementare/decrementare sau de invocare de metoda, urmata de caracterul ';' 12 Ce deosebiri exista intre o expresie si o instructiune-expresie? -expresiile sunt de de tip boolean, int, long, float, double ,instructiunile-expresie sunt formate dintr-o expresie de atribuire, de incrementare/decrementare sau de invocare de metoda, urmata de caracterul ';' 13 In ce consta teorema de structura din metoda programarii structurate? -orice program poate fi intocmit folosind numai trei structuri de control fundamentale: structura secventiala, structura alternativa si structura repetitiva 14 Care sunt categoriile de instructiuni de control admise de metoda programarii structurate? -blocul - prin care se realizeaza structura secventiala; -instructiunile if si if .. else - prin care se realizeaza structura alternativa; -instructiunea switch - prin care se realizeaza structura de comutare; -instructiunile while, do .. while si for - prin care se realizeaza structurile de selecti 15 Ce fel de structura de control este un bloc si care este forma lui sintactica? -Blocul este o secventa de instructiuni cuprinsa intre acolade. Forma sintactica a blocului este, deci, urmatoarea: { secventa_de_instructiuni } 16 Ce sunt variabilele locale si care este domeniul lor de vizibilitate? -Variabilele declarate intr-un bloc sunt variabile locale ale plocului respectiv. Domeniul de vizibilitate al unei variabile locale incepe in locul din program in care aceasta a fost declarata si se incheie la sfarsitul blocului care contine declaratia respectiva 17 Prin ce instructiuni se realizeaza structura de control alternativa si care este forma lor sintactica? -if si if ... else - if(expresie_booleana) instructiune -if(expresie_booleana) instructiune_1 else instructiune_2 18 Ce sunt exceptiile? -In mediul de lucru Java, la aparitia unei exceptii se genereaza un obiect special, pe care il vom numi exceptie, care contine informatia despre exceptia respectiva 19 Ce deosebire este intre exceptii si erori?
7

-Deosebirea dintre exceptii si erori este ca exceptiile sunt considerate ca pot fi tratate prin program, in timp ce erorile sunt considerate mai curand nerecuperabile 20 Care este forma sintactica a instructiunii de tratare a exceptiilor si cum trebuie ea interpretata? -try { secventa } catch (ClasaExceptie1 variabila1) { secventa1 } catch (ClasaExceptie2 variabila2) { secventa2 } ............... catch (ClasaExceptieN variabilaN) { secventaN } [finally { secventa_finalizatoare }] ***Saptamana 4 1 Ce deosebire este intre tipul referinta si tipurile primitive? -Tipurile primitive sunt predefinite in limbaj, in sensul ca numele, multimea de date, multimea de operatii si reprezentarea datelor in memoria interna a masinii virtuale Java pentru fiecare tip sunt definite in insasi specificatia limbajului Java si nu mai pot fi modificate de programatori 2 Unde sunt plasate in memorie obiectele? -In memoria masinii virtuale Java, obiectele sunt plasate intr-o zona de memorie speciala, numita memorie dinamica 3 Care sunt operatiile permise asupra variabilelor-referinta? -Operatiile permise asupra datelor de tip referinta sunt cele date de operatorii de atribuire (=), egalitate (==) si inegalitate (!=) care au aceleasi semnificatii si mod de utilizare ca pentru toate celelalte tipuri de date. 4 Cum se declara variabilele referinta? -String s1, s2, s3; arata ca s1, s2 si s3 sunt variabile referinta catre obiecte din clasa String, adica din clasa sirurilor de caractere 5 Ce este un camp? -Datele unei clase se numesc campuri, sau variabile membre 6 Ce deosebire este intre campurile statice si cele nestatice? -Cand clasa este instantiata, in memoria masinii virtuale Java se construieste un obiect (o instanta a clasei respective). Obiectul contine numai campuri nestatice. Campurile statice se pastreaza in memorie intr-un singur loc, care este rezervat clasei respective.
8

7 Ce este o metoda? -Metoda este o functie, care intoarce o valoare si poate avea, de asemenea, efect lateral 8 Ce deosebire este intre metodele statice si nestatice? -Metodele statice pot invoca numai campurile statice ale clasei respective, in timp ce metodele nestatice pot invoca atat campurile statice, cat si cele nestatice (ale unei instante a clasei respective). 9 Cum este invocata o metoda statica? -nume_clasa.nume_metoda(parametri_efectivi) 10 Cum este invocata o metoda a instantei? -referinta_la_obiect.nume_metoda(parametri_efectivi) 11 Ce este un constructor? -Constructorul este o procedura speciala, prin care se construiesc obiecte dintr-o anumita clasa 12 Cum este invocat un constructor? - new nume_constructor(parametri_efectivi) 13 Ce este mostenirea? -Mostenirea este una din proprietatile fundamentale ale claselor in programarea orientata pe obiecte. Ea consta in faptul ca dintr-o clasa se pot deriva alte clase. Clasa de baza se mai numeste si superclasa, iar clasele derivate se numesc si subclase. 14 Ce este o superclasa? -Clasa de baza se mai numeste si superclasa, iar clasele derivate se numesc si subclase. 15 Ce legatura este intre o clasa si clasele derivate din aceasta? - in programarea orientata pe obiecte este permisa mostenirea multipla, adica o clasa poate avea mai multe superclase. In limbajul Java este permisa numai mostenirea simpla, deci fiecare clasa poate avea numai o singura superclasa. 16 Ce este polimorfismul? -Polimorfismul este o alta proprietate fundamentala a claselor. In limbajul Java este posibil ca o metoda a superclasei sa fie redefinita in clasa derivata. Aceasta inseamna ca ea va avea in clasa derivata acelasi nume si aceeasi lista de parametri ca in superclasa, dar va avea un comportament diferit. 17 Ce fel de mostenire este permisa in Java? -In limbajul Java este permisa numai mostenirea simpla 18 Care este radacina ierarhiei de clase in Java? - Singura exceptie o constituie clasa Object, care este radacina ierarhiei de clase Java si nu are superclasa. 19 Ce este un pachet? - Pachetul este o colectie de clase reutilizabile destinate unui anumit domeniu de utilizare, care sunt puse la dispozitia programatorului sub forma compilata (bytecode) 20 Ce este Java API?
9

-este descrierea unui set standard de pachete necesare programarii in Java. 21 Ce contine pachetul java.lang? -java.lang - contine clasele de baza necesare programarii in limbajul Java 22 La ce serveste declaratia import si ce forma are? -Pentru a putea utiliza intr-un fisier-sursa Java un anumit pachet (subpachet) de clase, la inceputul fisierului respectiv trebuie pusa declaratia import nume_pachet.*; in care nume_pachet este numele calificat al pachetului respectiv. 23 Cum este importat pachetul java.lang? -import nume_pachet.NumeClasa; 24 Fie a si b doua obiecte. Ce deosebire este intre a.equals(b) si a==b? - metoda equals() intoarce valoarea true numai daca cele doua obiecte comparate sunt cu adevarat identice, adica au aceeasi adresa in memorie, ceeace se poate scrie si sub forma expresiei a==b 25 Ce rol are metoda toString()? -intoarce reprezentarea sub forma de sir de caractere (de obiect din clasa String) a obiectului caruia i se aplica. 26 Ce este o exceptie? -o situatie anormala in procesul de calcul 27 Ce este clasa Exception? -este radacina ierarhiei claselor de exceptii 28 Care este clasa sirurilor de caractere? -Clasa String 29 Ce este concatenarea sirurilor si prin ce operator se realizeaza? -"+"; Prin concatenarea a doua siruri se obtine un nou sir, rezultat din punerea celor doua unul in continuarea celuilalt. De exemplu, expresia "ABC"+"defg" are ca valoare sirul "ABCdefg". 30 Cum se compara doua siruri? -Compararea sirurilor se face in ordine lexicografica (in ordinea in care ar fi plasate intr-un dictionar) 31 Ce este ordinea lexicografica? 32 Cum se determina lungimea unui sir? -int length() Intoarce lungimea acestui sir (numarul de caractere continute) 33 La ce foloseste metoda trim()? -Intoarce un nou sir, obtinut din acest sir prin eliminarea spatiilor de la inceput si de la sfarsit. 34 Ce fel de obiecte apartin clasei StringBuffer? -Obiectele clasei StringBuffer implementeaza siruri care pot fi modificate atat ca lungime, cat si sub aspectul caracterelor pe care le contin. 35 Ce deosebire este intre lungimea si capacitatea unui StringBuffer? - Lungimea este numarul de caractere continut
10

efectiv, iar capacitatea este dimensiunea la un moment dat a tabloului de caractere continut in obiectul respectiv. 36 Care sunt principalele metode ale clasei StringBuffer? -public int length() - intoarce lungimea curenta a sirului (numarul de caractere existente efectiv in buffer); public int capacity() - intoarce capacitatea curenta a buffer-ului; public StringBuffer append(char c) - adauga la buffer caracterul c; public StringBuffer insert(int offset, char c) - insereaza in buffer caracterul c pe pozitia offset; public String toString() - intoarce un sir care are acelasi continut cu cel din acest StringBuffer. 37 Ce este o clasa acoperitoare de tip? - pentru fiecare din tipurile de date primitive exista o clasa acoperitoare de tip 38 Poate fi instantiata clasa Number? -da 39 Care sunt subclasele clasei Number? - public abstract byte byteValue() - intoarce numarul convertit la tipul primitiv byte, ceeace poate avea ca efect rotunjirea sau trunchierea; public abstract short shortValue() - intoarce numarul convertit la tipul primitiv short, ceeace poate avea ca efect rotunjirea sau trunchierea; public abstract int intValue() - intoarce numarul convertit in tipul primitiv int, ceeace poate avea ca efect rotunjirea; public abstract long longValue() - intoarce numarul convertit la tipul primitiv long, ceeace poate avea ca efect rotunjirea; public abstract float floatValue() - intoarce numarul convertit la tipul primitiv float; public abstract double doubleValue() - intoarce numarul convertit la tipul primitiv double. 40 Cum se poate determina cea mai mare valoare pe care poate sa o aiba un numar de tip int? -public static final int MAX_VALUE - contine valoarea maxima pentru tipul de date int, adica valoarea 2147483647; 41 Cum se poate converti un numar intreg din forma externa in cea interna? - public Integer(String s) - converteste sirul s, primit ca argument, intr-un numar de tip int si construieste obiectul Integer care contine acest numar; daca sirul s nu reprezinta forma externa a unui numar intreg, se obtine exceptia NumberFormatException. Remarcam deci ca se face analiza sintactica a sirului s pentru a se verifica daca acesta este cu adevarat un numar intreg. 42 Ce campuri statice contine clasa Double? Copyright 2000 O.M.B. -public static final double MAX_VALUE - cea mai mare valoare pozitiva de tip double; public static final double MIN_VALUE - cea mai mica valoare pozitiva de tip double; public static final double NaN - valoarea NaN (Not a Number) pentru tipul double; public static final double POSITIVE_INFINITY - valoarea Infinity pentru tipul double; public static final double NEGATIVE_INFINITY - valoarea -Infinity pentru tipul double;
11

public static final Class TYPE - un obiect din clasa Class cu informatii despre tipul primitiv double. 43 Cum se poate converti un numar in virgula mobila din forma externa in cea interna? -Double(String s) - construieste o instanta a clasei Double care contine valoarea primitiva de tip double a carei forma externa este sirul s primit ca argument; daca acest sir nu este corect sintactic, se obtine exceptia NumberFormatException. 44 In ce cod sunt reprezentate caracterele in Java? - in limbajul Java, caracterele sunt reprezentate pe 16 biti, in sistemul Unicode. 45 Ce este clasa Character? -Fiecare obiect al clasei Character "acopera" o valoare primitiva de tip char. 46 Ce este clasa Math? -contine un numar mare de functii matematice (functii trigonometrice, logaritmice, exponentiale etc) si doua constante matematice: numarul e si numarul pi. 47 Cum se poate calcula sinusul trigonometric al unui numar? - public static double sin(double a) - sinusul trigonometric sin a. ;Functiile matematice se prezinta in aceasta clasa sub forma de metode statice. 48 Cum se poate calcula radacina patrata a unui numar? -public static double sqrt(double a) 49 Cum se poate calcula logaritmul natural al unui numar? -public static double log(double a) 50 Scrieti in limbajul Java expresia prin care se calculeaza radacina patrata din 2u2+eu. -Math.sqrt(2*u*2+exp(double u)) 51 Ce campuri statice contine clasa System? -Clasa System contine campuri si metode utile pentru realizarea legaturii dintre aplicatie si sistemul de executie Java (cel care implementeaza masina virtuala Java) 52 Ce efect are metoda exit() din clasa System? -provoaca incheierea executarii programului 53 Ce este un tablou? -structura de date de acelasi tip, numite componente ale tabloului, care sunt specificate prin indici 54 Cum se declara in Java un tablou unidimensional? - a/ intr-o declaratie de variabile se pune simbolul [] (o pereche de paranteze drepte) dupa numele variabilei referinta la tablou. Ca exemplu, sa consideram declaratiile urmatoare: int a, b, c[], d, e[]; String s1, ts1[], s2; - b/ Parantezele se pun dupa numele tipului de date sau al clasei, in care caz, toate variabilele din declaratia respectiva sunt considerate drept referinte la tablouri. De exemplu, in declaratiile int[] i, j;
12

long [] k, m; float []u, v; String[] ww; 55 Ce semnificatie are declaratia int a, b[], c;? ce sunt a, b si c? -a si c sunt variabile simple de tip double, deci ele pot primi valori simple de acest tip -b variabila referinta la tablouri de tip int (tablouri la care toate componentele sunt de tip int) 56 Ce semnificatie are declaratia int[] a, b, c;? ce sunt a, b si c? - toate variabilele din declaratia respectiva sunt considerate drept referinte la tablouri, a b c sunt referinte la tablouri cu componente de tipuri corespunzatoare fiecarei declaratii 57 Cum se initializeaza in Java un tablou unidimensional? - a/ indicand valorile componentelor tabloului, separate prin virgule si cuprinse intre acolade, ca in exemplele urmatoare: int a=27, b=-15, c[]={-3,72,-21},d=-5,e[]={231,-98}; String s1="un sir", ts1[]={"sirul 0", "sirul 1", "sirul 2"}, s2="alt sir"; float[] u={-1.24076f, 0.03254f, 27.16f}, v={2.7698E-12f, -3.876e7f}; - b/ folosind operatorul new, urmat de numele tipului sau al clasei, insotit de dimensiunea tabloului (numarul de elemente din tablou) scrisa intre paranteze drepte, ca in exemplele urmatoare: double aa[]=new double[3]; String str[]=new String[2]; 58 Prin ce instructiune se creaza in Java un tablou cu 7 componente de tip double? -double aa[]=new double[7];// aa variabila 59 Cum se poate determina numarul de elemente dintr-un tablou unidimensional? -args.length 60 Cum sunt preluati parametrii din linia de comanda? -daca numarul de parametri este nul, se afiseaza mesajul "Nu ati introdus parametri in linia de comanda". In caz contrar, se afiseaza toti parametrii. Sa consideram ca lansarea acestui program s-a facut prin urmatoarea linie de comanda: java Parametri abcd EFG-HIjk 1376 7.3086 -15 61 Cum pot fi determinate valorile numerice ale parametrilor din linia de comanda? - unicul separator intre parametri este spatiul liber, iar numerele sunt preluate tot sub forma de siruri de caractere *** Saptamana 5 1.Care este cea mai simpla forma a unei declaratii de clasa? - class NumeClasa { declaratii_de_membri } 2.Ce sunt membrii unei clase? -CAMPURI,CONSTRUCTORI,METODE.
13

3.Ce este numele clasei din punct de vedere sintactic? -Numele clasei este un identificator. 4.Cu ce incepe numele unei clase? -Se obisnuieste ca numele clasei sa inceapa cu litera majuscula. Daca numele este compus din mai multe cuvinte,fiecare din acestea incepe cu majuscula. 5.Ce contine corpul clasei? -Corpul clasei cuprinde declaratii de membri ai clasei respective. Acestea pot fi: - declaratii de campuri; - declaratii de constructori; - declaratii de metode. 6.Ce asemanare este intre campuri si variabilele locale? -Declararea unor astfel de campuri se face asemanator cu cea a campurilor de instanta 7.Ce deosebire este intre campuri si variabille locale? -Campurile instantei se declara la fel ca variabilele locale ale metodelor, numai ca declaratia respectiva nu apare in blocul unei metode, ci in corpul clasei. 8.Ce sunt campurile statice si prin ce se deosebesc de cele nestatice? -Declararea unor astfel de campuri se face asemanator cu cea a campurilor de instanta, dar declaratia are in fata, in acest caz, modificatorul static. EX: static double u=3.65, v=2.87*u-3.1, x; 9.Pot exista clase care nu contin metode? -DA. 10.Care este cea mai simpla forma a unei declaratii de metoda? - tip_valoare_intoarsa nume_metoda(declaratii_de_argumente) { corpul_metodei } 11.Ce este numele metodei din punct de vedere sintactic? -nume_metoda=- este un identificator care, in mod uzual, incepe cu litera mica si constituie numele metodei; 12.Ce este corpul metodei si ce contine el? -Dupa aceasta lista de argumente se deschide acolada unui bloc, care contine corpul metodei, adica secventa de instructiuni prin care se calculeaza valoarea functiei respective si/sau - daca este cazul - se efectueaza actiunile care constituie efectele laterale ale acesteia. 13.Cum se declara argumentele metodei? -declaratii_de argumente = este o lista de declaratii de argument separate prin virgula, deci ea poate avea forma: 14.Cum se declara tipul valorii intoarse? -tip_valoare_intoarsa = este tipul valorii primitive sau clasa valorii-referinta intoarsa de aceasta metoda; 15.Ce forma si ce semnificatie are instructiunea return? -Daca functia intoarce o valoare (diferita de void), aceasta se indica prin instructiunea return expresie;
14

16.Ce este o metoda statica? -La declararea metodelor statice, in fata tipului valorii intoarse se pune modificatorul static. Metodele care contin in declaratie acest modificator se numesc statice sau ale clasei, spre deosebire de metodele obisnuite care sunt ale instantei. 17.Ce restrictii trebuie respectate la declararea unei metode statice? - In corpul metodelor statice se pot folosi numai campurile statice ale clasei respective si se pot invoca numai alte metode statice ale acestei clase. 18.Ce este signatura metodei? -Signatura metodei consta din numele acesteia, insotit de lista de argumente. In consecinta, doua metode pot avea acelasi nume, daca difera intre ele prin signatura. Putem da exemple din clasele existente in pachetele deja studiate. 19.Pot exista in aceeasi clasa mai multe metode cu acelasi nume? -In aceeasi clasa pot exista mai multe metode cu acelasi nume cu conditia ca ele sa difere prin numarul si/sau tipul argumentelor. Copyright 2000 O.M.B. 20.Cum se face transferul argumentelor (parametrilor) de la metoda invocatoare la cea invocata? -In limbajul Java, transmiterea parametrilor (argumentelor) metodelor se face prin valoare. Aceasta inseamna ca: - daca argumentul apartine unui tip de date primitiv, se transmite chiar valoarea primitiva a argumentului respectiv; - daca argumentul apartine unui tip-referinta (este instanta a unei clase), se transmite - de fapt - o referinta catre un obiect din clasa respectiva sau dintr-o clasa derivata din aceasta. 21.Cum pot fi generate exceptii in corpul unei metode? -Exceptiile si erorile pot fi generate atat de echipamente (exceptii sau erori hardware), cat si de programe (exceptii software). Exemple de exceptii hardware pot fi intreruperile, eroarea de impartire la zero, unele incidente in subsistemele de intrare/iesire etc. Exceptiile software sunt mult mai diverse, depinzand de specificul programelor care le genereaza 22.Ce forma are instructiunea throw si la ce serveste? -throw new ConstructorExceptie(lista_argumente); -prevada, in anumite puncte ale programului, generarea unor exceptii, 23.La ce serveste clauza throws? -Este insa posibil ca metoda respectiva sa "arunce" mai departe exceptiile generate in interiorul ei. Pentru a indica aceasta proprietate, la declararea metodei, dupa paranteza care contine lista declaratiilor argumentelor formale se pune clauza throws ClasaDeExceptii, in care se indica numele clasei exceptiei care este "aruncata" catre metoda invocatoare 24.Ce deosebire este intre throw si throws? -throw furnizeaza ca argument un mesaj care arata ce eroare s-a produs -clauza throws. In metoda main se capteaza si se afiseaza atat aceste exceptii
15

25.Ce sunt clasele publice? -Clasele publice sunt clase care pot fi utilizate si in alte pachete, decat cel din care fac parte 26.Cum se declara o clasa publica? -Fiecare clasa publica se declara intr-un fisier separat, care are obligatoriu acelasi nume cu cel al clasei extensia java. In declaratia de clasa, in fata numelui clasei se pune modificatorul public. 27 Ce este colectorul de reziduuri? -In masina virtuala Java, exista un colector de reziduuri de memorie (engleza: garbage collector) care elibereaza automat spatiul de memorie ocupat de obiectele catre care nu mai exista nici o referinta. In consecinta, programatorul nu mai este pus in situatia sa prevada explicit in program distrugerea obiectelor si, deci clasele nu mai contin destructori, ca in alte limbaje de POO. *** Saptamana 6 1 Ce este incapsularea? -Incapsularea este una din proprietatile fundamentale ale claselor in programarea orientata pe obiecte. Campurile si metodele dintr-o clasa pot fi incapsulate, astfel incat sa nu fie vizibile din exteriorul clasei sau instantei in care se afla 2 Care sunt modificatorii de acces pentru campuri si metode? -: - private - pentru a specifica campuri sau o metode private; - public - pentru a specifica campuri sau metode publice; - protected - pentru a specifica campuri sau metode protejate (care vor fi prezentate in sectiunea despre mostenire 3 Ce sunt constructorii? -Constructorii, ca si metodele, sunt niste subprograme 4 Ce particularitati prezinta declaratiile de constructori? - numele constructorului este intotdeauna acelasi cu al clasei careia ii apartine; - constructorul nu intoarce o valoare. In consecinta, la declararea constructorului nu se specifica tipul valorii intoarse, ca la metode; - constructorii nu pot fi statici; - invocarea constructorilor se face numai prin operatorul new. 5 Poate avea o clasa mai multi constructori? cum se disting acestia? -Ca si in cazul metodelor, o clasa poate avea mai multi constructori, care sa difere intre ei prin signatura 6 Ce este constructorul implicit? -Daca intr-o clasa nu este declarat explicit nici un constructor, ea are un constructor implicit. 7 Ce este agregarea? -Agregarea este o caracteristica fundamentala a programarii orientate pe obiecte, conform careia un obiect poate contine alte obiecte 8 Ce este mostenirea?
16

-Mostenirea este o trasatura fundamentala a programarii orientate pe obiecte, conform careia: - dintr-o clasa se pot deriva alte clase 9 Ce relatie exista intre o clasa si superclasa ei? -- clasa derivata mosteneste campurile si metodele superclasei; - metodele superclasei de baza pot fi redefinite in subclasa prin alte metode cu aceeasi signatura; - metodele statice ale superclasei pot fi ascunse in subclasa; - campurile superclasei pot fi ascunse in subclasa prin campuri cu acelasi nume dar care pot avea, eventual, alt tip. - campurile unei clase pot fi ascunse chiar si in metodele clasei respective, daca aceste metode au argumente sau variabile locale cu acelasi nume. 10 Cate superclase poate avea o clasa in limbajul Java? -1 singura superclasa ;Exceptie face clasa Object, care este radacina ierarhiei de clase 11 Ce sunt membrii protejati ai clasei? -moduri de acces la membrii claselor (atat la campuri, cat si la metode): public, privat si protejat 12 Ce sunt this si super? -doua referinte predefinite: this - este o referinta la "aceasta" instanta, adica la instanta din clasa in care se face referinta respectiva; super - este o referinta la superclasa 13 Ce particularitati prezinta constructorul unei clase derivate? -Pentru a se da valori initiale campurilor superclasei, in declaratia constructorului poate fi invocat constructorul superclasei prin instructiunea super(lista_parametri_efectivi); unde lista parametrilor efectivi este cea a constructorului superclasei. Aceasta instructiune, daca exista, trebuie sa fie prima instructiune din corpul constructorului clasei derivate. In lipsa ei, va fi invocat constructorul fara parametri al superclasei. 14 Ce se intelege prin redefinirea metodelor? -Redefinirea unei metode se face declarand in subclasa o metoda avand aceeasi semnatura cu una din superclasa. Atunci cand se redefineste o metoda protejata, modificatorul de acces al acesteia poate fi mentinut, sau poate fi transformat in public. 15 Ce fel de metode pot fi redefinite? -nestatice ale unei clase pot fi redefinite in subclasele acesteia -In subclasa pot fi totusi si metodele superclasei care au fost redefinite 16 Ce este o metoda finala? -Metodele finale sunt metode care nu mai pot fi redefinite in clasele derivate 17 Ce se intelege prin ascunderea campurilor? -Campurile declarate intr-o clasa pot fi ascunse prin campuri cu acelasi nume declarate in subclasa, chiar daca acestea au tipuri diferite. Aceasta inseamna ca, in mod normal, in metodele clasei se folosesc campurile declarate in clasa respectiva, si nu cele cu acelasi
17

nume ale superclasei. In subclasa pot fi, totusi, folosite si campurile superclasei, daca sunt calificate cu referinta super 18 In ce situatie o metoda poate fi ascunsa? -Metodele statice nu apartin instantelor, ci clasei. Din aceasta cauza, daca intr-o subclasa se declara o metoda statica cu aceeasi semnatura ca o metoda a superclasei, atunci se spune ca metoda din subclasa o ascunde pe cea din superclasa (nu o redefineste). 19 Este posibila declararea unei clase de exceptii proprii? -da; 20 Ce este o clasa finala? -Daca se doreste ca o clasa sa nu poata avea subclase, la declararea acesteia se foloseste modificatorul final 21 Ce este polimorfismul? -Polimorfismul este o alta proprietate fundamentala a claselor. In limbajul Java este posibil ca o metoda a superclasei sa fie redefinita in clasa derivata. Aceasta inseamna ca ea va avea in clasa derivata acelasi nume si aceeasi lista de parametri ca in superclasa, dar va avea un comportament diferit. 22 In ce situatii se manifesta polimorfismul? -Polimorfismul se manifesta atunci cand unei variabile-referinta pentru superclasa i se atribuie ca valoare o referinta catre o instanta a unei subclase a acesteia, in care una sau mai multe metode ale superclasei au fost redefinite 23 Cum se face conversia unei referinte dintr-o clasa in referinta dintr-o subclasa? -sa convertim explicit (prin cast) referinta la Object in referinta la clasa A sau B, in care exista metoda1(). In acest scop, vom folosi expresiile ((B)ob1).metoda1() sau, respectiv, ((A)ob2).metoda1(). Avand in vedere ca B este subclasa a lui A, iar variabila ob1 indica efectiv un obiect din clasa B, atat in expresia ((B)ob1).metoda1(), cat si in expresia ((A)ob1).metoda1() se va invoca metoda1() din clasa B, adica din clasa careia ii apartine efectiv obiectul indicat de variabila-referinta ob1. 24 Poate fi instantiata clasa care contine metoda main()? -Clasa care contine metoda main este clasa principala a unei aplicatii, deci este prima clasa care se incarca in masina virtuala Java la punerea in executie a aplicatiei respective. In acelasi timp, ea este o clasa ca oricare alta, care poate avea si instante 25 Ce este o clasa abstracta? -Clasele abstracte contin in declaratia lor modificatorul abstract 26 Ce este o metoda abstracta? -adica o metoda pentru care s-a declarat numai antetul, fara sa i se defineasca si corpul 27 Cum se declara o clasa abstracta? -De exemplu, daca A este o clasa abstracta, iar B este o subclasa concreta a clasei A, atunci este corecta declaratia A a1=new B(); 28 Ce este o interfata?
18

-fiecare clasa are "interfata" sa intrinseca, prin care poate fi accesata din exterior. Aceasta "interfata" contine toate datele si metodele publice ale clasei respective. 29 Ce efect are faptul ca o clasa implementeaza o interfata? -Interfata descrie metodele publice si variabilele finale publice pe care trebuie sa le aiba o clasa care implementeaza interfata respectiva. Daca o clasa implementeaza mai multe interfete, ea contine toate metodele publice si variabilele finale publice ale acestora. 30 Ce este o clasa imbricata? -In limbajul Java se permite ca o clasa sa aiba ca membri alte clase. Acestea se numesc clase imbricate sau clase incuibate 31 Ce este o clasa interioara? -Clasa interioara (clasa imbricata nestatica) are cate o instanta in interiorul fiecarei instante a clasei care o contine. In consecinta, accesul la membrii ei se poate face folosind drept calificator referinta la o instanta [public] class NumeClasa { declaratii_de_membri_ai_clasei [modificatori_de_camp] class NumeClasaImbricata { declaratii_de_membri_ai_clasei_imbricate } declaratii_de_membri_ai_clasei } Saptamana 7 1. Ce este interfaa utilizator? Interfaa utilizator, numit i interfaa om-main, este mijlocul de comunicare ntre un sistem informatic i utilizator. 2. Ce este interfaa utilizator grafic? Interfaa utilizator grafic (englez: GUI - graphical user interface) este o interfa ommain care permite operatorului s dea comenzi i s introduc date prin acionarea asupra unor obiecte grafice vizualizate pe ecran: butoane, pictograme, meniuri etc. 3. Ce sunt obiectele grafice? obiecte grafice (butoane, meniuri, bare de defilare etc.) 4. Ce este AWT? AWT (englez: Abstract Windowing Toolkit - setul de dezvoltare de ferestre abstracte) - este un set de clase care permit realizarea de interfee grafice n care se folosesc obiectele grafice specifice platformei pe care se execut programul. Aceasta nseamn c, dac programul se execut - de exemplu - sub Windows, diferitele obiecte grafice (butoane, meniuri, bare de defilare etc.) vor avea aspectul specific sistemului Windows, n timp ce dac se executa sub X-Window vor avea aspectul specific acestui sistem. 5. Ce este JFC/Swing? JFC (englez: Java Foundation Classes - clase de baz Java), este un set de pachete de clase, care extind posibilitile oferite de AWT, pentru realizarea de interfee utilizator de
19

calitate superioar. Dintre acestea, cele mai larg folosite constituie setul cunoscut sub numele de cod Swing (sau JFC/Swing), care ofer posibilitatea de a realiza interfee grafice al cror aspect nu depinde de platforma pe care se execut programul. 6. Ce rol are clasa Component i din ce pachet face parte? Clasa Component este o clas abstract, derivat direct din clasa Object 7. Ce deosebire este ntre componentele atomice i containere? Deosebim componente atomice i containere. Containerele sunt componente grafice care conin alte componente. Containerele aparin unor clase care formeaz o ierarhie, a crei rdcin este clasa Container. Clasa Container este derivat din clasa Component. Aceasta nseamn ca orice container este o el nsui component, deci un container poate s conin alte containere. 8. Care este clasa folosit n JFC/Swing pentru fereastra principal a aplicaiei? Evenimentele generate de fereastr sunt instane ale clasei WindowEvent i sunt ascultate de instane ale unor clase care implementeaz interfaa WindowListener sau extind clasa WindowAdapter. Toate aceste clase i interfee se gsesc n pachetul java.awt.event. 9. Ce conin la partea superioar instanele clasei JFrame? 10. Ce sunt evenimentele n cazul interfeei utilizator grafice? Se numeste eveniment orice modificare care are loc, fie n starea dispozitivelor de intrare, fie n cea a obiectelor grafice de pe ecran: apsarea sau eliberarea unei taste, deplasarea mouse-ului, apsarea sau eliberarea unui buton al mouse-ului, deschiderea sau nchiderea unei ferestre, efectuarea unui clic de mouse pe un obiect de control (buton, caseta de validare, bara de defilare etc.), intrarea cursorului de mouse n cmpul activ al unui obiect grafic sau prsirea acestuia etc. Pot exista, desigur, i alte tipuri de evenimente, dar aici ne intereseaz numai cele legate de interfaa grafic a aplicaiei. 11. Ce este programarea orientat pe evenimente? Interaciunea dintre operator i aplicaie ntr-un sistem bazat pe evenimente decurge astfel: operatorul provoac generarea unui eveniment, acionnd asupra tastaturii, mouseului sau a altui dispozitiv de intrare, iar programul "rspunde" la acest eveniment prin executarea unei anumite aciuni. Acest mod de lucru impune o nou concepie n proiectarea programelor, numit programarea orientat pe evenimente. 12. Care este modelul de evenimente folosit pe platforma Java 2? ncepnd cu JDK 1.1 s-a introdus un nou model de evenimente, bazat pe delegare (englez: Delegation Event Model). Conform acestui model, distingem trei catedorii de obiecte care au relaii cu evenimentele: - obiecte care genereaz evenimente, numite surse de evenimente (engleza: Event Source); - obiecte care capteaz i trateaz evenimentele, numite asculttori de evenimente (englez: Event Listener); - evenimentele propriu-zise (englez: Event), care sunt tot obiecte, generate de surse i captate de asculttori 13. Cum sunt generate evenimentele?
20

Cnd cursorul mouse-ului intr n interiorul unei componente sau iese din aceasta, sau cnd facem click de mouse pe o componenta, evenimentul nu este generat direct de ctre mouse, ci de ctre componenta respectiv a interfeei. n mod similar, cnd apsm sau eliberm o tast, evenimentul nu este generat direct de ctre tast, ci de ctre acea component a interfeei grafice, care este activ n momentul respectiv 14. Cum sunt utilizate evenimentele? 15. Ce deosebire este ntre evenimentele de nivel jos i cele semantice? Evenimentele pot fi de nivel cobort (low level event) sau semantice. Numele claselor de evenimente de nivel cobort indic fie componenta, fie dispozitivul de intrare care le-a generat, de exemplu: ComponentEvent, WindowEvent, MouseEvent, KeyEvent. Numele claselor de evenimente semantice indic mai curnd tipul de eveniment, dect sursa acestuia, de exemplu: ActionEvent, TextEvent. Descrierea claselor de evenimente este dat complet n documentaia Java API. 16. Care este rdcina claselor de evenimente generate de obiectele interfeei grafice? Clasele de evenimente se gsesc n pachetele java.awt.event i javax.swing.event i formeaz o ierarhie de clase, care are ca radacin clasa abstract java.awt.AWTEvent. Aceasta, la rndul ei, extinde clasa java.util.EventObject din pachetul java.util 17. Ce este un gestionar de poziionare? Gestionarul de poziionare este o clas care asigur poziionarea i redimensionarea automat a componentelor situate ntr-un container, att la crearea containerului, ct i la modificarea dimensiunilor acestuia. 18. Care sunt interfeele gestionarilor de poziionare? Orice gestionar de poziionare implementeaz interfaa java.awt.LayoutManager sau subinterfaa acesteia java.awt.LauoutManager2. 19. Care este gestionarul de poziionare implicit pentru contentPane? contentPane i FlowLayout pentru clasa Panel 20. Care este gestionarul de poziionare implicit pentru Panel i JPanel? 21. Cum sunt amplasate componentele n cazul gestionarului BorderLayout? n acest caz, se consider c suprafaa containerului este imparit n cinci zone numite, respectiv, NORTH, SOUTH, WEST, EAST si CENTER 22. Cum sunt amplasate componentele n container n cazul gestionarului FlowLayout? Gestionarul de poziionare java.awt.FlowLayout plaseaz componentele pe suprafaa containerului una dup alta, n ordinea n care acestea sunt adugate, de la stnga la dreapta i de sus n jos. Cnd s-a terminat o linie, se trece la linia urmtoare. Numrul de componente pe o linie depinde de limea componentelor i de limea containerului n care sunt acestea plasate. 23. Cum sunt aliniate componentele n cazul gestionarului FlowLayout? Gestionarul de poziionare java.awt.FlowLayout plaseaz componentele pe suprafaa containerului una dup alta, n ordinea n care acestea sunt adugate, de la stnga la dreapta i de sus n jos. Cnd s-a terminat o linie, se trece la linia urmtoare. Numrul de
21

componente pe o linie depinde de limea componentelor i de limea containerului n care sunt acestea plasate. 24. Cum sunt amplasate componentele n cazul gestionarului GridLayout? Gestionarele de poziionare din clasa java.awt.GridLayout plaseaz componentele n celulele unei grile rectangulare. n consecin, toate componentele de pe aceeai coloan sunt aliniate vertical 25. Cum se stabileste numarul de linii i de coloane pentru gestionarul GridLayout? Dei n constructor se indic att numrul de linii, ct i cel de coloane ale grilei, n realitate numai numrul de linii este respectat, n timp ce numrul de coloane este practic ignorat. La stabilirea amplasrii componentelor n container, dac numarul lor total este mai mic sau egal cu cel de linii, toate componentele vor fi aezate vertical, una sub alta. Dac numrul de componente este mai mare dect numrul de linii, numrul de coloane se stabilete automat, prin mprirea numrului de componente la cel de linii, cu rotunjire n plus. Plasarea efectiv a componentelor n celulele grilei astfel creeate se face apoi de la stnga la dreapta i de sus in jos, la fel ca n cazul gestionarului FlowLayout, dar respectnd alinierea vertical i orizontal impus de gril. 26. Cum sunt plasate componentele ntr-un BoxLayout? Gestionarul de poziionare javax.swing.BoxLayout plaseaz toate componentele containerului pe o singur direcie, care poate fi orizontal sau vertical. Saptamana VIII 1. Ce categorii de componente grafice cunoatei? Componente de control: butoane, butoane radio, casete de validare, liste, liste ascunse, meniuri, rigle ajustabile, cmpuri de text. Componente de afiare needitabile: etichete, indicatoare, etc. Componente de afiare editabile: zone de text, tabele editabile, selectoare de culori, selectoare de fiiere, arbori. Containere: panouri, panouri glisante, etc. 2. Care este rdcina ierarhiei claselor de componente? Majoritatea claselor de componente din JFC/Swing sunt derivate din clasa JComponent, motenind caracteristicile acestei clase. 3. Care sunt caracteristicile componentelor din JFC/Swing? -posibilitatea de a-i ataa componentei o "inscripie volanta" (englez: ToolTip), adic o inscripie explicativ care apare cnd punem cursorul de mouse pe componenta respectiv, fr s apsm butonul. O astfel de inscripie se ataeaz componentei prin metoda public void setToolTipText(String text); - posibilitatea de a-i pune componentei o bordur, folosind metoda public void setBorder(Border border); - posibilitatea de a modifica culoarea de fond i culoarea de primplan ale componentei folosind metodele:
22

public void setBackground(Color color); public void setForeground(Color color);

4. Cum se stabilete aspectul componentelor din JFC/Swing? Aspectul este dat de figura prin care este reprezentat pe ecran componenta respectiv. Fiecare clas de componente ofer un aspect tipic al instanelor sale. n JFC/Swing programatorului i se pun nsa la dispoziie metode i clase prin care poate modifica aspectul componentelor. 5. Prin ce se caracterizeaz starea componentei? Starea componentei este dat, ca la orice obiect, de valorile cmpurilor sale. Starea se poate modifica fie datorit aciunilor utilizatorului, fie datorit invocrii prin program a unor metode ale acesteia. n general, la modificarea strii componenta genereaz un eveniment, iar uneori i schimb i aspectul. 6. Prin ce se caracterizeaza comportamentul componentei? Comportamentul componentei este modul n care aceasta reacioneaz atunci cnd se acioneaz asupra ei de ctre utilizator sau cnd este invocat o metod i const n modificarea strii i a aspectului i n generarea de evenimente. -posibilitatea de a introduce n component un text, o imagine, sau ambele; - posibilitatea de a aduga la fiecare component a unui text explicativ volant (englez: Tool Tip), care conine indicaii care apar cnd se pune cursorul mouse-ului pe componenta respectiv, fr a apsa butonul de mouse. - posibilitatea de a pune n jurul componentei una sau mai multe borduri (englez: Border), cu diferite aspecte: chenar simplu, chenar cu titlu, bordur care d aspect de supranlare, bordur care d aspect de scufundare; - posibilitatea de a alege aspectul general al tuturor componentelor interfeei grafice (englez: Look and Feel). 7. Care sunt componentele de control i ce rol au? Componentele de control sunt dispozitive de intrare virtuale, uor de utilizat, prin intermediul crora utilizatorul poate introduce anumite comenzi. Din aceast categorie fac parte butoanele, riglele ajustabile, listele, listele ascunse, meniurile i cmpurile de text 8. Ce reprezint clasa AbstractButton? Clasa javax.swing.AbstractButton definete caracteristicile comune ale diferitelor tipuri de butoane din JFC/Swing. 9. Ce reprezint clasa JToggleButton? Clasa javax.swing.JToggleButton este derivata din javax.swing.AbstractButton i reprezint butoane cu dou stri stabile. Trecerea de la o stare la alta este impus de utilizator prin click de mouse sau este comandat prin program. 10. Ce este o caset de validare i prin ce clas se realizeaz? Caseta de validare este un obiect de control cu dou stri stabile. La fiecare click de mouse pe suprafata casetei de validare, aceasta trece dintr-o stare n cealalt. 11. Ce este un buton radio i prin ce clas se realizeaz?
23

Butonul radio este un buton cu dou stri stabile, care face parte dintr-un grup de butoane, astfel c la un moment dat numai unul dintre ele poate fi "selectat". n momentul n care este selectat ("apsat") un buton al grupului, se deselecteaz automat cel care era selectat anterior. 12. La ce servete clasa ButtonGroup? n JFC/Swing, butoanele radio sunt realizate ca instane ale clasei javax.swing.JRadioButton, care este derivat din clasa javax.swing.JToggleButton. Gruparea butoanelor se face folosind clasa javax.swing.ButtonGroup. 13. Ce este o list n JFC/Swing i prin ce clas se realizeaz? n JFC/Swing, listele se realizeaz ca instane ale clasei javax.swing.JList. Articolele din list pot fi, n principiu, orice obiecte afiabile. La crearea listei, constructorului i se d ca argument tabloul obiectelor pe care le va conine lista. Ulterior este posibil s se adauge articole la list, sau s se elimine. Daca lista este mai lunga dect spaiul de afiare disponibil, ea poate fi pus pe un panou glisant, din clasa javax.swing.JScrollPane. 14. Ce este o list ascuns i prin ce clas se realizeaz? Lista ascuns este o list din care se vede un singur articol (cel care este selectat), deci ocupa pe ecran spaiu mult mai putin dect una obinuit. n JFC/Swing, pentru realizarea listelor ascunse se folosete clasa javax.swing.JComboBox. 15. Prin ce clas se realizeaz cmpul de text i ce conine el? n JFC/Swing, cmpurile de text se realizeaz ca instane ale clasei javax.swing.JTextField. 16. Care este principala utilizare a cmpului de text? Cmpul de text este principalul instrument al interfeei grafice prin care utilizatorul introduce date de la tastatur. El se prezint sub forma unei ferestre dreptunghiulare editabile, n care se poate introduce o singur linie de text. De obicei, prin intermediul cmpului de text se introduce o singur valoare numeric sau un ir de caractere. 17. Ce evenimente genereaz un cmp de text i cnd le genereaz? Cnd cmpul de text este activ i se apas tasta Enter, este generat un eveniment de aciune din clasa java.awt.ActionEvent. 18. Ce este o rigl ajustabil i prin ce clas se realizeaz? Clasa javax.swing.JSlider ofer o component care are aspectul unei rigle prevzute cu cursor. Prin deplasarea cursorului cu ajutorul mouse-ului se modific valoarea indicat de rigl. 19. Care este dispozitivul electronic pe care l simuleaz o rigl ajustabil? Rolul riglei poate fi asemnat cu cel al unui dispozitiv de ajustare continu, cum este poteniometrul din aparatura electronic. 20. Ce este un meniu? La fel ca listele sau butoanele radio, meniurile permit utilizatorului s aleag una din mai multe opiuni posibile. n JFC/Swing se disting dou categorii de meniuri: - meniuri cu bar, care pornesc dintr-o bar situat la partea superioar a ferestrei
24

aplicaiei; - meniuri derulante (pop-up), care apar n poziia n care se gsete cursorul de mouse. 21. Ce categorii de meniuri exist n JFC/Swing? n JFC/Swing se disting dou categorii de meniuri: - meniuri cu bar, care pornesc dintr-o bar situat la partea superioar a ferestrei aplicaiei; - meniuri derulante (pop-up), care apar n poziia n care se gsete cursorul de mouse. 22. Unde poate fi plasat un meniu cu bara? Este ns posibil ca un articol de meniu s fie el nsui un meniu (din clasa JMenu). Dac utilizatorul alege cu mouse-ul un aricol de meniu, sunt posibile deci dou situaii: - acesta este un articol propriu-zis (un JMenuItem), n care caz opiunea respectiv este selectat; - articolul ales este el nsui un meniu (un JMenu), n care caz noul (sub)meniu se desfoar i cutarea continu. 23. Prin ce clas se realizeaz bara de meniu? Adugarea de meniuri la bara de meniu se face prin metoda clasei JMenuBar public JMenu add(JMenu c) 24. Ce conine bara de meniu? Bara de meniu poate sa conin unul sau mai multe meniuri . 25. Prin ce clas se realizeaz un meniu utilizabil ntr-o bar de meniu? javax.swing.JMenuItem sau javax.swing.JCheckBoxMenuItem 26. Ce conine un meniu? La rndul su, fiecare meniu poate conine unul sau mai multe articole, care sunt instane 27. Prin ce clase se realizeaz articolele de meniu? JMenuItem 28. Ce este un meniu derulant i prin ce clas se realizeaz? Spre deosebire de meniurile cu bar, meniurile derulante sunt tratate ca nite componente obinuite, care pot s fie afiate prin program, atunci cnd este necesar. n JFC/Swing, meniurile derulante se realizeaz ca instane ale clasei javax.swing.JPopupMenu. n rest, meniul pop-up se comport la fel ca un meniu cu bar. 29. Ce sunt componentele de afiare needitabile? Componentele de afiare sunt cele care servesc pentru a afia anumite texte sau imagini i pot fi needitabile sau editabile. 30. Ce componente de afiare needitabile cunoatei? Componentele de afiare needitabile sunt realizate ca instane ale urmtoarelor clase: javax.swing.JLabel - pentru realizarea unor "etichete" n care pot fi afiate texte sau imagini, fr a putea fi editate de utilizator; - javax.swing.JTooltip - pentru afiarea de "inscripii volante", cnd se pune cursorul de mouse deasupra unei alte componente; - javax.swing.JProgressBar - pentru realizarea unor "bare de progres" adic a unor bare de lungime variabil, care arat cum evolueaz realizarea unei anumite activiti (de la 0% la 100%).
25

31. Ce sunt componentele de afiare editabile? Componentele de afiare editabile permit utilizatorului operaii de editare n timpul executrii programului

32. Ce componente de afiare editabile cunoatei? Tot n categoria componentelor editabile intr i clasele javax.swing.JTable (pentru realizarea de tabele editabile), javax.swing.JFileChooser (pentru realizarea de selectoare de fiiere), javax.swing.JTree (pentru realizarea de arbori) i javax.swing.JColorChooser (pentru realizarea de selectoare de culori). 33. Ce sunt instanele clasei JTextArea i cum se comport ele? Instanele clasei javax.swing.JTextArea (arie de text) sunt suprafee de afiare a unor texte editabile cu mai multe linii. Componenta are comportamentul unui editor de text simplu: permite s se introduc text de la tastatur, s se tearg textul n ntregime sau pe poriuni, s se adauge sau s se nsereze text. Prin metode speciale se poate seta componenta astfel, nct s se realizeze automat trecerea de la un rnd la altul. Se ofer metode prin care se poate aduga text prin program, sau se poate obine sub forma de String textul existent. Saptamana 9 1. Ce sunt ferestrele de dialog? Ferestrele de dialog sunt ferestre care se afieaz pe ecran numai temporar, pentru a transmite anumite mesaje sau a permite introducerea unor date. Principalul avantaj al folosirii ferestrelor de dialog este c apar pe ecran numai atunci cnd sunt necesare i nu ncarc fereastra principal a aplicaiei cu elemente care nu sunt necesare n permanen. 2. Ce deosebire exist ntre ferestrele de dialog modale i cele nemodale? Ferestrele de dialog pot fi modale sau nemodale. Cnd este afiat pe ecran o fereastr modal, toate celelalte ferestre existente pe ecran sunt blocate (nu se poate aciona asupra lor), pn cnd se ncheie lucrul cu fereastra de dialog modal respectiv. 3. Ce sunt ferestrele de dialog standard? Clasa JDialog este folosit pentru realizarea unor ferestre de dialog configurate de programator dup dorina sa. n multe situaii, este ns suficient s se foloseasc ferestre de dialog standard, preconfigurate, ceeace uureaz programarea. 4. Cum se creeaza ferestrele de dialog standard? Clasa JOptionPane ofer metode statice pentru a crea patru tipuri de ferestre de dialog: 5. Cum se stabilete culoarea de fond a unei componente? n multe aplicaii, la proiectarea interfeei utilizator grafice este necesar s se impun culorile de fond i de primplan ale diferitelor componente, folosind metodele clasei Component public void setBackground(Color color) - pentru culoarea de fond; public void setForeground(Color color) - pentru culoarea de prim-plan (a textului). 6. Ce este culoarea de prim plan a unei componente i prin ce metod se modific?
26

De exemplu, culoarea albastru este reprezentat prin cmpul static Color.blue, iar culoarea galben prin Color.yellow. n consecin, dac dorim s punem componentei comp culoarea de fond albastru i culoarea de primplan galben, vom folosi instruciunile: comp.setBackground(Color.blue); comp.setForeground(Color.yellow); 7. Ce sunt instanele clasei Color? Pentru a alege culoarea n mod interactiv, n JFC/Swing este prevazut clasa javax.swing.JColorChooser. Instanele acestei clase sunt panouri de selectare a culorii, care pot fi folosite att prin ncorporarea lor ntr-o fereastr obinuit, ct i sub forma unei ferestre de dialog. 8. Care este principalul model de culori folosit n Java? Clasa Color ncapsuleaz informaiile despre culoare. n Java AWT se folosete modelul de culori RGB (englez: red, green, blue) n care fiecare culoare este considerat ca fiind compus din trei culori fundamentale: rou, verde i albastru 9. Prin ce tip de date se exprim culorile n sistemul RGB i care este intervalul n care acestea iau valori? n consecin, culoarea este dat prin trei numere cuprinse n intervalul [0, 255], reprezentnd ponderile celor trei culori fundamentale 10. Care este culoarea pentru care cele trei culori fundamentale RGB au valoarea 0? de la negru [r=0,g=0,b=0] 11. Care este culoarea pentru care toate cele trei culori fundamentale au valoarea 255? alb [r=255,g=255,b=255]. 12. La ce folosete clasa JColorChooser? Folosind un JColorChooser, alegerea culorii se poate face n trei moduri: - folosind un tablou de culori, n care fiecare celul este colorat n alt culoare; - n sistemul RGB, folosind trei rigle de ajustare a culorilor fundamentale; - n sistemul HSB, selectnd culoarea prin alegerea cu mouse-ul a punctului de pe panou care are culoarea potrivita (trei butoane alturate, notate H, S, B, arat care din cele trei componente se menine constant, celelalte dou fiind date de coordonatele punctului ales pe panou). 13. Pe ce fel de componente se poate face desenarea? In principiu, desenarea se poate face pe orice component grafic 14. Care este sistemul de coordonate pentru reprezentri grafice? Sistemul de coordonate folosit pentru grafic are originea n colul din stnga sus al componentei, axa Ox este orientat catre dreapta, iar axa Oy este orientat n jos 15. Care este unitatea de msur folosit pe axele de coordonate pentru reprezentri grafice? Coordonatele se exprim n numere ntregi (int), avnd ca unitate de msur pixelul (punctul de pe ecran). 16. Ce este contextul grafic?
27

Aceasta este clasa de baz a tuturor contextelor grafice, care permit trasarea de desene pe suprafaa componentelor grafice realizate pe diverse dispozitive fizice. Pe fiecare platform, n mediul de execuie Java, trebuie s existe o implementare a contextului grafic, adic o extindere a clasei Graphics, care conine toate cmpurile i metodele acestei clase, dar este specific platformei respective. 17. Prin ce clas abstract este reprezentat contextul grafic n Java API? Java API a fost introdus clasa abstract java.awt.Graphics 18. n ce clas este declarat metoda paint i ce rol are ea? Pentru desenarea pe suprafaa unei componente, n clasa java.awt.Component (rdcina ierarhiei de clase a componentelor) exist metoda public void paint(Graphics g) Aceast metod traseaza efectiv desenul, folosind n acest scop contextul grafic g primit ca argument. Contextul grafic nu este instaniat de ctre programator, ci este transmis acestei metode de ctre maina virtual Java. n schimb, metoda paint trebuie redefinit n program pentru orice component pe care dorim s se traseze un desen. n aceast scop se folosesc n metoda paint metodele de desenare ale clasei Graphics 19. Cum este invocat metoda paint? Metoda paint nu este invocat explicit n program. Ea este invocat implicit (de ctre maina virtual Java) atunci cnd componenta respectiv este afiat pe ecran sau i modific dimensiunile i/sau poziia 20. n ce scop este redefinit metoda paint? Dac, totui, programatorul dorete s solicite explicit desenarea, folosete metoda public void repaint() Aceasta metod care exist, de asemenea, n clasa java.awt.Component, nu trebuie redefinit, singurul ei rol fiind de a apela metoda paint. 21. Ce trebuie s conin corpul metodei paint pentru a se trasa un desen? public void repaint() 22. La ce folosete metoda repaint? atunci cnd componenta respectiv este afiat pe ecran sau i modific dimensiunile i/sau poziia. 23. Se redefineste n program metoda repaint? nu trebuie redefinit, singurul ei rol fiind de a apela metoda paint Saptamana 10 1. Ce este un hipertext? Hipertextul (englez: hypertext) este o colecie de documente, numite i noduri sau pagini, unite ntre ele prin legturi 2. Ce sunt nodurile hipertextului? Paginile (nodurile) hipertextului sunt stocate sub forma de fiiere, situate pe un singur calculator, sau pe mai multe calculatoare legate n reea. 3. Ce este WWW?
28

World-Wide Web (WWW) este un sistem de regsire a informaiei distribuite pe Internet 4. Ce este un browser de Web? Documentele sunt stocate sub form de fiiere pe diferite calculatoare, care acioneaza ca servere de web. Utilizatorul poate naviga pe aceast reea, folosind un program numit browser de web (navigator). 5. Ce este HTTP? Transmiterea prin Internet a paginilor WWW se face folosind un protocol special, numit HTTP (Hypertext Transfer Protocol), iar pentru marcarea paginilor de WWW, cu scopul de a nsera n ele legturile necesare, se folosete un limbaj numit HTML. 6. Ce este HTML? HyperText Markup Language (HTML) este un limbaj de marcare a hipertextelor 7. Ce form au marcajele HTML?

8. Care este marcajul cu care ncepe i se termin un document HTML? Fiecare marcaj (tag) este de forma <tag> ... </tag>, deci ncepe printr-un nume de marcaj (tag) cuprins ntre paranteze unghiulare i se termin prin acelai marcaj, avnd n faa numelui simbolul / (slash). Astfel, fiecare document HTML ncepe cu marcajul <html> i se termin cu </html>. n limbajul HTML nu se face distincie n marcaje ntre literele mari i cele mici, deci tagul <HTML> ... </HTML> este echivalent cu tagul <html> ... </html>. 9. Care este structura unui document HTML? Un document HTML are urmatoarea structur: <HTML> <HEAD> Antetul documentului </HEAD> <BODY> Corpul documentului </BODY> </HTML> 10. n ce zon a documentului HTML se specific titlul acestuia? Modul de punere n pagin nu are importan, deoarece ntreaga informaie despre structur i formatare este coninuta n marcaje (taguri). 11. Cum se specific titlul unui document HTML? <TITLE>Titlul documentului</TITLE> 12. Prin ce se marcheaz, ntr-un document HTML, legturile ctre alte pagini ale hipertextului?
29

Legturile cu alte documente sunt marcate prin ancore, care sunt taguri de forma: <A HREF="referin la document">text de legtur</A> 13. La ce servete marcajul APPLET i ce conine el? Pentru a introduce ntr-un document HTML o referin la un applet, se folosete marcajul (tagul) APPLET, care are forma urmtoare: <APPLET CODE=fiier_class [CODEBASE=localizare] WIDTH=lime HIGHT=nlime[ALIGN=aliniere]> [<PARAM NAME=nume VALUE=valoare>]* [text_de_nlocuire] </APPLET> Dac este necesar, marcajul APPLET poate s conin unul sau mai muli parametri, care se vor transmite appletului la lansarea acestuia. 14. Cum sunt folosite marcajele HTML n componentele JFC/Swing? n mod obinuit, textul introdus n componentele AWT sau JFC/Swing prin metoda void setText(String text) apare pe ecran pe suprafaa componentei respective sub forma unui text scris pe o singura linie, folosind fontul SansSherif, culoarea neagra i o mrime implicit. 15. Ce este un applet? Miniaplicaia (englez: applet) este un mic program cu interfa utilizator grafic. 16. Ce clase se folosesc pentru realizarea applet-urilor? Orice applet este realizat ca o clas, derivat din clasa Applet, existent n pachetul java.applet, sau derivat din clasa JApplet, care extinde clasa Applet i exist n pachetul javax.swing 17. Ce este un context de applet? Miniaplicaia (englez: applet) este un mic program cu interfa utilizator grafic, care nu poate rula n mod independent, ci este nglobat ntr-o alt aplicaie, numit context de applet. 18. Ce contexte de applet cunoatei? Netscape Navigator, Internet Explorer sau HotJava 19. Din ce clas este derivat clasa Applet? dar clasa JApplet? Orice applet este realizat ca o clas, derivat din clasa Applet, existent n pachetul java.applet, sau derivat din clasa JApplet, care extinde clasa Applet i exist n pachetul javax.swing 20. Care sunt principalele metode ale unui applet i de ctre ce program sunt invocate ele? Clasa Applet motenete metodele superclaselor sale Component, Container i Panel, oferind i metode specifice. 21. La ce servete metoda init() n cazul unui applet? Metoda init() este utilizat pentru a crea partea "static" a applet-ului: adugarea de componente la applet, nregistrarea asculttorilor de evenimente etc 22. Cnd sunt invocate metodele start() i stop() ale unui applet? Metodele start() i stop() se folosesc numai pentru lansarea i oprirea proceselor dinamice (de exemplu animaie i/sau sunete) care nu trebuie s continuie cnd appletul nu este vizibil pe ecran 23. n ce scop se folosete metoda destroy() a unui applet?
30

n fine, metoda destroy() se folosete n special pentru a distruge firele de execuie paralele care au fost create de ctre applet, sau a elibera anumite resurse ocupate de acesta. 24. Cum este utilizat un appletviewer? Appletviewer

Saptamana 11 1. Ce este un stream? n limbajul Java, fluxul (englez: stream) este o cale de comunicaie ntre o surs de date i o destinaie 2. Ce deosebire este ntre fluxurile de ieire i cele de intrare? Se disting doua feluri de fluxuri: de ieire i de intrare. Pentru un proces dat, toate fluxurile transmise de acesta ctre exterior se numesc fluxuri de ieire, iar cele primite din exterior se numesc fluxuri de intrare. 3. Care sunt etapele de utilizare a unui flux de iesire? - Deschiderea fluxului - ct timp (exist date de transmis) scriere n flux -nchiderea fluxului 4. Care sunt etapele de utilizare a unui flux de intrare? -Deschiderea fluxului - ct timp (exist date de citit) citire din flux -nchiderea fluxului 5. Ce conine pachetul java.io? Distingem trei tipuri de clase: - clase abstracte (culoare albastr); - clase care efectueaz operaiile de intrare sau de ieire propriu-zise (culoare verde) i modeleaz sursele sau destinaiile fluxurilor (englez: Data Sink Streams); - clase care efectueaz unele operaii de transformare a datelor de pe flux (culoare violet) i reprezinta "fluxuri de prelucrare" (englez: Processing Streams). 6. Ce deosebire este ntre fluxurile de caractere i cele de octei? n Java 2 SDK se consider c fluxurile pot fi de caractere sau de octei. n primul caz, de la surs la destinaie se transmite o succesiune de caractere Unicode (de cte 16 bii), iar n al doilea caz - o succesiune de octei (de 8 bii). n mod corespunztor, pentru fiecare din cele dou categorii de fluxuri exist cte o ierarhie de clase de fluxuri de intrare i o ierarhie de clase de fluxuri de iesire 7. Care sunt rdcinile ierarhiilor de clase pentru fluxuri de caractere? Pentru fluxurile de caractere, rdcinile ierarhiilor de clase sunt clasele abstracte Reader i Writer. 8. Care sunt rdcinile ierarhiilor de clase pentru fluxuri de octei?
31

Pentru fluxurile de octei, rdcinile acestor ierarhii sunt clasele abstracte InputStream i OutputStream 9. Ce sunt fluxurile de prelucrare? clase care efectueaz unele operaii de transformare a datelor de pe flux (culoare violet) i reprezinta "fluxuri de prelucrare" (englez: Processing Streams). 10. Ce este un fiier? n memoria extern a calculatorului, datele se pstreaz sub forma de fiiere. Fiierul (englez: File) este o colecie de nregistrri situat, de regul, pe un suport extern i identificat printr-un nume. Fiecare nregistrare (englez: Record) este o grupare de informaii sau de date care poate fi tratat n mod unitar. 11. Care sunt clasele folosite pentru citirea fiierelor? Clasa java.io.FileInputStream permite citirea datelor din fiiere sub forma de fluxuri de octei 12. Care sunt clasele folosite pentru scrierea fiierelor? Fiecare instan a clasei java.io.FileOutputStream este un flux de octei de ieire conectat la un fiier, n care se sriu octeii primii din flux 13. Cum se deschide un fiier? public FileOutputStream(String name) throws FileNotFoundException - Deschide pentru scriere fiierul cu numele 14. Cum se nchide un fiier? public void close() throws IOException - nchide fiierul 15. Ce clase se folosesc pentru a scrie date ntr-un fiier de octei i pentru a citi date dintr-un astfel de fiier? 16. Ce sunt fiierele cu acces direct? Fiierele cu acces direct, numite i fisiere cu acces aleator (engl.: Random Access File), sunt fiiere la care programatorul poate indica prin program locul (adresa) din fiier de la care ncepe operaia de citire sau de scriere. 17. Crei clase i aparin fiierele cu acces direct? Clasa RandomAccessFile 18. Ce fel de operaii se pot face asupra unui fiier cu acces direct? este posibil s se efectueze att citiri , ct i scrieri 19. Ce este cursorul (pointerul) fiierului cu acces direct? 20. Care sunt modurile n care poate fi deschis un fiier cu acces direct?

21. Ce sunt fluxurile de prelucrare? Fluxurile de prelucrare se conecteaz la alte fluxuri de intrare/ieire pentru a face anumite transformri asupra datelor din fluxul respectiv 22. Ce sunt fluxurile de date?

32

n unele aplicaii se dorete s se transmit ntr-un flux de ieire sau s se recepioneze dintr-un flux de intrare date primitive reprezentate binar (de tip boolean, char, byte, short, int, long, float sau double) i iruri de caractere. 23. Prin ce clase se realizeaz fluxurile de date? n acest scop, pot fi folosite clasele java.io.DataOutputStream i java.io.DataInputStream 24. Ce este un flux de obiecte? Fluxurile de obiecte sunt fluxuri de prelucrare care permit s se transmit obiecte 25. Prin ce clase se realizeaz fluxurile de obiecte? Fluxurile de obiecte se realizeaz prin clasele java.io.ObjectOutputStream i java.io.ObjectInputStream. 26. Ce proprietate trebuie sa aib obiectele pentru a putea fi transmise ntr-un flux de obiecte? Orice obiect care se transmite pe un flux trebuie s aparin unei clase care implementeaz interfaa java.io.Serializable 27. Ce reprezint interfaa Serializable? 28. Cum este folosit interfaa Serializable?

29. Ce condiii trebuie s ndeplineasc o clas pentru a fi serializabil? -la declararea clasei respective, se pune clauza implements Serializable; - clasa trebuie s conin un constructor fr argumente; - toate cmpurile obiectului trebuie s fie serializabile, adic fie s aparina unor tipuri de date, primitive, fie unor clase care implementeaz interfaa Serializable. 30. Ce metode conine interfaa Serializable? Clasele care necesit o manipulare special la serializare sau deserializare trebuie s conina metode cu signaturile urmtoare: private void writeObject(java.io.ObjectOutputStream out) throws IOException private void readObject(java.io.ObjectInputStream in) throws IOException, ClassNotFoundException; Saptamana 12 1. Ce este un proces (n general)? n general, se numete proces o succesiune de transformri sau de operaii care conduce la realizarea unui anumit rezultat. 2. Cum se definete procesul n informatic? n informatic, procesul este un program n execuie. n consecin, fiecrui proces i se asociaz un program, i un ansamblu de resurse necesare executrii acestui program: o anumit zon din memoria intern n care se pstreaz datele programului, acces la procesorul sistemului, acces la anumite dispozitive de intrare/ieire etc.
33

3. Ce se nelege prin multitasking? Majoritatea sistemelor de operare ale calculatoarelor moderne permit executarea n acelai timp a mai multor programe, deci permit concurena proceselor la nivel de program (de aplicaie). De exemplu, n timp ce editm un text, putem tipri alt text la imprimant, putem atepta sosirea de pe reea a unei pagini de Web etc. Studierea acestui mod de funcionare a calculatorului, cunoscut sub numele de multitasking, se face la cursul de "Sisteme de operare". 4. Ce sunt firele de execuie? Firul de execuie (n englez: Thread) este, n esen, un subproces strict secvenial. Meninnd definiia procesului ca un program n curs de execuie, putem considera acum c procesul este format din mai multe fire de execuie care se deruleaz n paralel, concurnd la utilizarea resurselor alocate procesului respectiv. 5. Ce se nelege prin multithreading? n limbajul Java, exist posibilitatea de a se crea programe care conin mai multe fire de execuie. Aceasta nseamn c, la executarea lor, se vor crea mai multe subprocese care se vor desfura simultan, folosind acelai procesor i aceeai zon de memorie. Acest mod de funcionare se numete n englez multithreading. 6. n ce moduri se poate programa o clas de fire de execuie? Chiar i n cazul programelor Java n care nu sunt prevzute explicit mai multe fire de execuie, n timpul executrii lor coexist cel puin dou astfel de fire: cel al aplicaiei propriuzise i cel al colectorului de reziduuri (garbage collector). Colectorul de reziduuri este un fir de execuie cu nivel de prioritate cobort, care funcioneaz atunci cnd apar ntreruperi n desfurarea aplicaiei propriu-zise (de exemplu, cnd se ateapt efectuarea unor operaii de intrare/ieire). n consecin, maina virtual Java are intrinsec o funcionare de tip multithreading. 7. Ce este clasa Thread? Clasa java.lang.Thread realizeaz un fir de execuie. Acesta poate fi un fir de execuie obinuit, sau un demon. 8. Care sunt principalele metode ale clasei Thread? Cele mai frecvent utilizate metode ale clasei Thread sunt run(), start() i sleep(). 9. La ce servete metoda run() a clasei Thread? public void run() - conine programul care trebuie executat de firul respectiv; Aa cum este ea n clasa Thread, metoda nu face nimic (are corpul vid). Aceast metod trebuie redefinit fie prin crearea unei subclase a clasei Thread, fie prin crearea unei obiect cu interfaa Runnable, care s fie nglobat n acest Thread (folosind constructorul Thread(Runnable target)); 10. n ce mod este invocat metoda run() a clasei Thread? La programarea unui fir de execuie, principala atenie se acord metodei run(), deoarece ea conine programul propriu-zis, care trebuie executat de acest fir. Totui, metoda run()nu este invocat explicit. Ea este invocat de maina virtual Java, atunci cnd firul respectiv este pus n mod efectiv n execuie.
34

11. Ce este interfaa Runnable i la ce folosete? Pentru redefinirea metodei Run este necesar sa creem o subclas a clasei Thread sau sa creem o clas cu interfaa Runnable, i s dm o instan a acestei clase ca argument constructorului clasei Thread. Necesitatea implementrii interfeei Runnable apare atunci cnd dorim s creem o clasa de fire de execuie care nu extinde clasa Thread. Motivul ar putea fi, de exemplu, cel c clasa nou creat, B, trebuie sa extind o alta clas, A, care nu este descendent a clasei Thread Se tie c n Java nu exist motenire multipl, deci clasa B nu poate avea ca superclase att clasa A, ct i clasa Thread. n acest caz, vom crea o clas B care extinde clasa A i implementeaza interfaa Runnable, care conine metoda run(). 12. n ce stare se gsete firul de execuie imediat dup ce el a fost creat? Dup ce firul de execuie a fost creat (de exemplu prin expresia new Thread()), el exist n memorie, dar nca nu poate fi executat. Se gsete, deci, n starea "nou creat" (engleza: born). Pentru a-l face gata de execuie, pentru firul respectiv este invocat metoda start(). 13. n ce clas exist metodele wait(), notify() i notifyAll() i la ce folosesc ele? n aplicaiile limbajului Java, pentru sincronizarea firelor se folosete frecvent modelul productor/consumator. Considerm c un fir de execuie "produce" anumite date, pe care le "consum" alt fir. Pentru efectuarea acestor operaii folosim un monitor, care conine att datele transmise, ct i o variabil boolean, numit variabila de condiie a monitorului, care indic dac sunt disponibile date noi, puse de producator i neutilizate de consumator. Att punerea de date noi, ct i preluarea acestora se fac numai folosind metode sincronizate ale monitorului. n corpul acestor metode sincronizate, se pot folosi metodele wait(), notify() i notifyAll() ale clasei Object. 14. Ce metode conine interfaa Runnable? Interfaa java.lang.Runnable trebuie implementat de orice clas care nu este descendent a clasei java.lang.Thread, dar ale crei instane trebuie tratate ca nite fire de execuie. Singura metod a acestei interfee este public void run() care are acelai rol cu cea din clasa Thread. 15. Cum se creeaza un fir de execuie folosind un obiect cu interfaa Runnable? Necesitatea implementrii interfeei Runnable apare atunci cnd dorim s creem o clasa de fire de execuie care nu extinde clasa Thread

35

S-ar putea să vă placă și