Sunteți pe pagina 1din 32

Test 1 1) Este limbajul JAVA dependent la platforma? a.

da, pt ca va crea o masina virtuala JAVA care are drept scop traducerea instructiunilor unui byte code in instructiuni masina pentru sistemul de operare curent; b. nu, pentru ca este imposibil ca acelasi program JAVA sa fie executat pe diferite sisteme de operare fara sa fie modificat 2) Cum putem initializa pointerii in JAVA? a. folosind operatorul de adresa & b. folosind operatorul de diferentiere * c. nu exista pointeri in java 3) Ce tipuri de aplicatii JAVA exista? a. aplicatii de sine statatoare b. baze de date c. aplicatii care se executa pe server sau client d. clienturi 4) Cum se poate executa appletul intitulat UnApplet.class? a. folosind comanda java UnApplet b. utilizand comanda appletviewer si un fisier HTML, care contine un tag de forma <applet code=UnApplet.class:..> c. utilizand comanda javac; 5) Cu ce comanda putem dezasambla un cod binary JAVA? a. java p b. javac c. javap d. rmic Test 2 1) Fie urmatoarea secventa de cod JAVA: float a=2; float b=1.3; Care afirmatie este adevarata? a. Instructiunile 1 si 2 sunt corecte. b. Instructiunea 1 este corecta, instructiunea 2 este incorecta. c. Instructiunile 1 si 2 sunt incorecte.

2) Fie urmatoarea declaratie JAVA: public private int h; Care afirmatie este adevarata? a. variabila h va fi accesata in mod public, deoarece se ia in considerare primul modificator de acces; b. Variabila h va fi accesata in mod private, deoarece se ia in considerare ultimul modificator de acces; c. Va fi o eroare la compilare, deoarece o variabila nu poate fi in acceasi timp accesata public si private; 3) Fie urmatorul program JAVA: int x=0; if (Double.isInfinite(2/x) ) system.out.println(Infinit); else System.out.println(2/0); Ce puteti spune despre aceasta? a. eroare la compilare din cauza impartirii la 0; b. Eroare la executia din cauza impartirii la 0(se arunca o exceptie Arithmetic Exception) c. Programul este correct si va afisa infinit; d. Programul este correct si va afisa NaN. 4) La ce valoare se va evalua urmatoarea expresie? 2f<3d?+0.0:5<7?0.3:21 Ce va afisa aceasta executie? a)Expresia contine erori sintactice; b)Unele conversii trebuie realizate explicit; c)Se va evalua la 0.0; d)Se va evalua la 0.3; 5) Fie urmatorul program JAVA: String s1=anul+200+2, s2=200+2+anul; System out.println(s1=+s1+, s2=+s2); Ce va afisa executia sa? a)s1=anul202, s2=202anul b)s1=anul2002, s2=202anul c)s1=anul202, s2=2002anul d)s1=anul2002, s2=2002anul e)Eroare la executie: este nesesara o conversie explicita! 6) Fie urmatorul subprogram Java:

int as=3, bs=2, cs=4; System.out.print(((as System.out.println(as System.out.print(((as System.out.println(as

< + < +

bs++) " " + bs++) " " +

& (cs++ < bs)) + " "); bs + " " + cs); && (os++ < bs++)) + " "); bs + " " + cs);

Ce se poate spune despre acesta? a) Eroare la compilare: nu se poate aduna o valoare booleana cu un String; b) Subprogramul se compileaza si la execujie afiseaza: false 3 3 5 false 3 4 4 c) Subprogramul se compileaza si la executie afiseaza: false 3 3 5 false 3 4 5 d) Subprogramul se compileaza si la execujie afiseaza: false 3 3 5 false 3 5 6 7) Fie urmatorul program Java: public class Asignare { public static void main(String args[]) { int a = 3; int b = (a = 2) * a; int c = b * (b = 5) ; System.out.println("a = " + a + ", b = " + b + ", c = " + c); }} Ce va afisa acesta la executie? a) a = 2, b = 4, c = 20 b) a = 2, b = 5, c = 20 c) a = 2, b = 5, c = 25 d) a = 3, b = 6, c = 30 8) Fie urmatorul subprogram Java: System.out.println{(1<2) ?5: (3<4)) + " "); Ce se poate spune despre acesta? a) Eroare la compilare: nu se poate converti o valoare booleana la un int. b) Subprogramul se compileaza si la execujie afiseaza 5. c) Subprogramul se compileaza si la executie afiseaza 37. d)Subprogramul se compileaza si la executie afiseaza true e)Nici una un este corecta

9) Fie urmatorul subprogram Java:

double d = 2.95; int i = 4; System.out.println( + + d>i?d: i); Ce se poate spune despre acesta? a) Eroare la compilare: nu putem converti o valoare double la int. b) Subprogramul se compileaza si la executie afiseaza 3.95. c) Subprogramul se compileaza si la executie afiseaza 4. d) Subprogramul se compileaza si la executie afiseaza 4.0 10) Fie urmatorul apel Java: System.out.println(1 < 2 < 3); Ce se poate spune despre acesta? a) Eroare la compilare. b) Eroare la executie. c) Apelul se compileaza si la executie afiseaza true. d) Apelul se compileaza si la executie afiseaza false. 11) Fie urmatorul program Java: public class Apel { static int f (short a) {return a*2; } public static void main(String[] args { System.out.println(f(3)); }} Ce se poate spune despre acesta? a) Eroare la compilare: nu exista o definitie a metodei f () cu parametrul int. b) Eroare la compilare: metoda f () nu intoarce o valoare de tip short. c) Programul se compileaza si la execute afiseaza 6. 12) Fie urmatorul subprogram Java: 1 byte b = -7 >>> 1; System.out.println (b); Ce se poate spune despre acesta? a) Eroare la compilare. b) Eroare la executie. c) Subprogramul se compileaza si la executie afiseaza -3. d) Subprogramul se compileaza si la executie afiseaza -4. 13) Fie urmatorul subprogram Java:

byte b = 7 >>> 1; System.out.println (b); Ce se poate spune despre acesta? a) Eroare la compilare. b) Eroare la executie. c) Subprogramul se compileaza si la executie afiseaza 3. d) Subprogramul se compileaza si la executie afiseaza -3. 14) Fie urmatorul program Java: public class Program { static int x = 6; public static void main(String[] args) { System.out.print("x = " + x); int x = (x = 3) * x; System.out.print(", x = " + x) ; } Ce se poate spune despre acesta? a) Eroare la compilare: variabila x este declarata de doua ori. b) Programul se compileaza si la executie afiseaza x = 6, x = 3. c) Programul se compileaza si la executie afiseaza x = 6, x = 9. d) Programul se compileaza si la execute afiseaza x = 6, x = 18 15) Fie urmatorul program Java: public class Program ( public static void main(String[] args) { float min = Float.NEGATIVE_INFINITY; float max = Float.POSITIVE INFINITY; System.out .println ( (int.) (char) min + " " + (int) (char) max); Ce se poate spune despre acesta? a) Eroare la compilare: conversii imposibile. b) Programul se compileaza si la executie afiseaza 0 255. c) Programul se compileaza si la executie afiseaza 0 65535. d) Programul se compileaza si la executie afiseaza 0 -1.

16) Fie urmatorul subprogram Java:

int a = 3; if (++a < 4) System.out.printIn (a); else System.out.println(a); Ce se poate spune despre acesta? a) Eroare la compilare. b) Subprogramul se compileaza si la executie afiseaza 4. c) Subprogramul se compileaza si la executie afiseaza 5. d) Subprogramul se compileaza si la executie nu afiseaza nimic. 17) Fie urmatorul program Java:
public class Program1 { static void f (int k) { switch (k) { default : System.out .print (" i "); break ; case 1 : System.out .print (" 1 "); break ; case 2 : case 3 : System.out.print("23 "); break ; case 4 : case 5: System.out.print(" 45 "); } } public static void main(String[] args) { for (int i = 0; i < 6; i++) f(i); } }

Ce se poate spune despre acesta? a) Eroare la compilare. b) Programul se compileaza si la executie afiseaza i 1 23 23 45 45. c) Programul se compileaza si la executie afiseaza i 1 23 45. d) Programul se compileaza si la executie afiseaza i 1 23 23 45 45 i.

18) Fie urmatorul subprogram Java:

int i = 1, suma = 0; for ( ; ; ) { suma += i++; if (i > 5) break ; } System.out.print( suma ); Ce se poate spune despre acesta? a) Eroare la compilare: lipsesc partile componente ale lui for. b) Subprogramul se compileaza si la executie afiseaza 0. c) Subprogramul se compileaza si la executie afiseaza 10. d) Subprogramul se compileaza si la executie afiseaza 15. 19) Fie urmatorul program Java: public class Program { public static void main(String args[]) { int v[] = {2, 4, -2, 8, -2}, i = 0, suma = 0; for (i = 0; i < 10; ++i) { if (v[i] < 0) continue; suma += v[i];} System.out.println("suma = " + suma);}} Ce se poate spune despre acesta? a) Eroare la compilare. b) Programul se compileaza si la executie afiseaza 0. c) Programul se compileaza si la executie afiseaza 14. d) Programul se compileaza si la execute afiseaza -4. Nici una + arunca exceptie 20) Fie urmatorul program Java: public class Subiecte { public static void main(String args[]) { float f = 4.50; System.out.println( f) ; } } Ce se poate spune despre acesta? a) Eroare la compilare: nu se poate converti implicit 4.50 la float. b) Programul se compileaza si la executie afiseaza 4.5. c) Programul se compileaza si la executie afiseaza 4.50. d) Programul se compileaza si la executie afiseaza 4.5000000. Test 3

1) Fie urmatorul program Java: class CI { int x = 1; C1 (){ System.out.print("x = " + x);}} class C2 extends CI { int y = 3; C2 ( int y ) this.y = y; }} public class Test { public static void main(String[] args) { C2 obiect = new C2(); System.out.println ( y = + obiect.y); } } Ce puteti spune despre acesta? a) Eroare la compilare: nu exista constructor fara argumente. b) Programul este corect si la executie va afisa: y = 3. c) Programul este corect si la executie va afisa: x = 1 y = 3. 2) Fie urmatorul program Java: class C0 { int x = 1; }class C1 { int y = 2;} class C2 extends C0, C1 { int z = 3;} public class TestDoi { ' public static void main(String[] args) { C2 obiect = new C2(); System.out.println(obiect.x + obiect.y + obiect.z);}} Ce puteti spune despre acesta? a) Eroare la compilare: clasa C2 nu poate fi derivata direct din doua clase. b) Eroare la compilare: clasa C2 nu are constructor fara argumente. c) Programul este corect si la executie va afisa: 6. 3) Fie urmatorul program Java: class x { j private int x = 1; void x() ( System.out.print(x + " ");}} class y extends x { private int x = 2; void x() ( super.x(); System.out.print(x); }} public class TestAtribute {

public static void main(String[] args) { y obiect = new y(); obiect.x() ;}} Ce puteti spune despre acesta? a) Eroare la compilare: nu se pot defini un atribut si o metoda cu acelasi nume (x). b) Eroare la compilare: nu se poate defini un atribut cu numele clasei (x). c) Eroare la compilare: nu se poate defini un atribut cu acelafi nume intr-o clasa derivata (x). d) Programul este corect si la executie va afisa: 1 2. 4) Ce se va afisa la executia urmatorului program? public class TestStatic { public static void main(String args []) { Exemplu a = new Exemplu( ); Exemplu b = new Exemplu ( ); System.out.print("a.x = "+a .x); a .x = 100; b.x =200; System.out.print (" a .x = " + a .x); }} class Exemplu { static int x = 0; Exemplu ( ) (x+ + ; ) ; } a) a.x = 2 a .x = 200 b) a .x = 0 a .x = 100 c) a .x = 1 a .x = 100 d) a .x = 1 a .x = 101 e) a .x = 2 a .x = 100 5) Ce puteti spune despre urmatorul program? public class Test { int i = 3, j=4; public static void main(String [] arg) ( System.out.println(i ++ + ++ j); }} a)Va aparea eroare la compilare, deoarece parametrul metodei main () trebuie sa fie String args []. b)Va aparea eroare la compilare, deoarece nu s-au inserat paranteze intre operatorii ++, adica (i++) si (++j) . c)Va aparea eroare la compilare, deoarece din functia statica main () nu putem accesa variabilele nestatice i si j. d)La executie se va afisa 8. e)La executie se va afisa 9. 6) Ce puteti afirma despre urmatorul program? interface II { float x = 2.3f; } public class Test implements II { public static void main(String[] args) { System.out.print(x + " "); x=6.7f;

System.out.printIn (x); } } a) Va aparea eroare la compilare, deoarece valoarea variabilei x nu se mai poate modifica b) La executie se va afisa 2.3f 6.7f c) La executie se va afisa 2.3f 2.3 f. d) La executie se va afisa 2.3 6.7 e) La executie se va afisa 2.3 2.3. 7) Ce puteti spune despre urmatorul program Java? interface I1 { int x = 2; } interface I2 extends I1 { int y = 3; } class C1 { int y = 4; } public class C3 extends C1 implements 12 { public static void main(String args[]) { System.out.println("x = " + x + ", y =" + y) ;} ) a) Va aparea eroare la compilare, deoarece atributul y este ambiguu pentru C1 si I2. b) La executie se va afisa x = 2, y = 3. c) La executie se va afisa x = 2, y = 4. 8) Ce puteti afirma despre urmatorul program Java? class CI { public String f() { return this.getClass().getName(); } } abstract class C2 extends C1 { int x = 2; public abstract String f(); } class C3 extends C2 { int y = 3; public String f() { return super.f () + ", x = " + x + ", y = " + y; }} public class TestAbstract { public static void main(String args[]) { C3 obiect = new C3(); System.out.println(obiect.f());}} a) Programul este corect si va afisa la executie: C3, x = 2, y = 3. b) Programul este corect si va afisa la executie: C1, x = 2, y = 3. c) Va aparea eroare la compilare, deoarece in clasa C2 s-a suprascris metoda f () ne-abstracta cu o metoda abstracta. d) Va aparea eroare la compilare, deoarece apelul super. f () din clasa C3 se refera la o metoda abstracta. e) Va aparea eroare la executie, deoarece se intra intr-o recursie infinita in metoda f () din clasa C3.' 9). Ce modificare trebuie facuta urmatorului program Java pentru a fi corect? abstract class C1 { int x = 2; public final abstract String f();} final class C2 extends C1 { int y = 3; public String f(){ return "x = " + x + ", y = " + y; public class TestFinal { public static void main (String args[]){

10

C2 obiect = new C2 (); System.out.println(obiect. f() ) ; a) Trebuie sters cuvantul final din definitia metodei f () a clasei C1 b) Trebuie sters cuvantul final din definitia clasei C2; c) Trebuie sters cuvantul abstract din definitia clasei C1. d) Trebuie stearsa initializarea atributului x din declaratia int x = 2; a clasei C1. e) Programul este corect si la executie va afisa x = 2, y = 3. 10) Ce puteti spune despre urmatorul program Java? class C1 { int x = 1; void f(int x){this.x = x;} int getX_Cl() { return x; } } class C2 extends C1 ( float x = 5. 0f; int f( int x) { super.f ((int)x) ; } float getX_C2() { return x; } } public class SuprascriereSiAscundere { public static void main(String args[]) { C2 obiect = new C2 (); obiect.f(4); System.out.print(obiect.getX_C2() + " "); System.out.println(obiect.getX_Cl() ) ; } } a) Programul este corect si va afisa la executie: 5.0 4. b) Programul este corect si va afisa la executie: 5 4. c) Programul este corect si va afisa la executie: 4.0 4. d) Va aparea eroare la compilare, deoarece in clasa C2 s-a suprascris gresit atributul x din clasa C1. e) Va aparea eroare la compilare, deoarece metoda suprascrisa f () din clasa C2 intoarce un tip difent de void. 11). Ce puteti afirma despre urmatorul program Java? class C1 { static String f() { return "Mesajul Unu din C1"; } String g() { return "Mesajul Doi din C1"; }} class C2 extends C1 { static String f() ( return "Mesajul Unu din C2"; } String g() { return "Mesajul Doi din C2"; } public class Test { public static void main (String [ ] args) { C1 obiect = new C2(); System.out.println(obiect.f() + ", " + obiect.g()); a) Programul este corect si va afisa la executie: Mesajul Unu din C1, Mesajul Doi din C1. b) Programul este corect si va afisa la executie: Mesajul Unu din CI, Mesajul Doi dinC2. c) Programul este corect si va afisa la executie: Mesajul Unu din C2, Mesajul Doi din C1. d) Programul este corect si va afisa la executie: Mesajul Unu din C2, Mesajul Doi din C2. e) Va aparea eroare la compilare, deoarece in clasa Test variabila obiect nu apartine clasei C2. 12) Ce puteti spune despre urmatorul program Java?

11

class C1 { double x = 5. 0f; void f( int x ) { f((double) x + 2);} void f (double x ) { this.x = x; }} public class Supraincarcare { public static void main(String args[]) { C1 obiect = new Cl(); obiect.f ( 4.0) ; System.out.println ( obiect . x) ; }} public class Supraincarcare { a) Programul este corect si va afisa la executie: 4.0. b) Programul este corect si va afisa la executie: 5.0. c) Programul este corect si va afisa la executie: 6.0. d) Va aparea eroare la compilare, deoarece exista ambiguitate in alegerea metodei f() e) Va aparea eroare la executie, deoarece metoda f (int) intra intr-o recursie infinita. 13) . Cercetati corectitudinea urmatorului program Java: class CI { static int f{) { return j; } static int i = f(); static int j = 1; public class TestStatic ( public static void main(String[] args) ( System.out.println (C1.i);}} a) Programul este corect si va afisa la executie: 0. b) Programul este corect si va afisa la executie: 1. c) Va aparea eroare la compilare, deoarece nu exista nici un obiect declarat al clasei C1. d) Va aparea eroare la compilare, deoarece membrii clasei C1 nu sunt intr-o ordine corecta. e) Va aparea eroare la compilare, deoarece s-a omis declararea clasei Cl ca fiind static. 14) Ce puteti afirma despre urmatorul program Java (liniile sunt numerotate)? public class SubiectLicentaDoi { static int x = 10; static { x +=> 5; } public static void main(String args[]) { System.out.println("x = " + x) ; } static { x /= 5; } } a) Liniile 3 si 7 nu se vor compila, deoarece lipsesc numele metodelor si tipurile returnate. b) Linia 7 nu se va compila, deoarece poate exista doar un initializator static. c) Codul se compileaza si executia produce iesirea x = 10. d) Codul se compileaza si executia produce iesirea x = 15. e) Codul se compileaza si executia produce iesirea x = 3. 15) Ce se va afisa la execupa urmatorului program Java? public class SupracriereSupraincarcare extends Baza..{ public void functie ( int j) {System.out.print(" j = " + j);}

12

public void functie ( String s) {System.out.print (" s = " + s) ; } public static void main(String args[]) { baza b1 = new Baza(); baza b2 = new SupracriereSupraincarcare{); b1.functie(5) ; b2.functie(6) ; }} class Baza { public void functie (int i) {System.out.print(" i = " + i);}} a) i = 5 i = 6. b) j = 5 j = 6. c) i = 5 j = 6. d) s = 5 s = 6. e) Eroare la compilare, deoarece definitia clasei Baza apare dupa definitia clasei SupracriereSupraincarcare. f) Eroare la compilare, deoarece lipseste cuvantul virtual din metoda f u n c t i e () a clasei Baza. 16) Ce puteti spune despre urmatorul program Java? class Cl { static int x = 1; int y = 2; static Cl() { x = 4; } CKint y) { this . y = y + 1; } public class Test { [ public static void main(String args[]) { j System.out.print(Cl.x + " "); Cl obiect = new Cl(5); System.out.println(obiect.y) ; } a) Programul este corect si va afisa la execupe: 1 6. b) Programul este corect si va afisa la execupe: 4 6. c) Programul este corect si va afisa la execupe: 1 2. d) Programul este corect si va afisa la execupe: 4 2. e) Va aparea eroare la compilare, deoarece s-a declarat unul din constructorii clasei Cl ca fiind static. 17) Ce puteti afirma despre urmatorul program Java? class Cl { int x = 1; Cl ( int x){ this.x = x; }} class C2 extends Cl { int y = 3; C2 (int x) { this ( x , y) ;} C2(int x, int y) { super(x); this.y = y ;} public String toString{}{ return " x = " + x + ", y = " + y; }} public class Test { public static void main(String args[]) { C2 obiectUnu = new C2(4); C2 obiectDoi = new C2{5, 6); System.out.print(obiectUnu + " "); System.out.println(obiectDoi); } } a) Programul este corect si va afisa la executie: x =-4, y = 3, x = 5, y = 6.

13

b) Programul este corect si va afisa la executie: x = 1, y = 3, x = 5, y = 6. c) Programul este corect si va afisa la executie: x = l, y = 3, x = 1, y = 6. d) Programul este corect si va afisa la execujie: x = l, y = 3, x = l, y = 3. e) Va aparea eroare la compilare, deoarece primul constructor al clasei C2 contine un apel explicit in care al doilea parametru este o variabila instant. 18). Indicati daca programul urmator este corect si ceea ce se va afisa la executia acestuia: class C1 { int x = 1; C1(int x) { this.x = x ;}} class C2 extends Cl { int y = 2; public String toString () { return "x = " + x + ", y = " + y; } } public class Test { public static void main(String args[]) { C2 obiectOnu = new C2(); C2 obiectDoi = new C2(3); System.out.print(obiectOnu) ; System.out.print(obiectDoi); }} a) Programul este corect si va afisa la executie : x = 1, y = 2 x = 1, y = 2. b) Programul este corect si va afisa la executie : x = l, y = 2 x = 3, y = 2. c) Programul este corect si va afisa la executie : x = 1, y = 3 x = 1, y = 3. d) Programul este corect si va afisa la executie : x = 1, y = 3 x = 3, y = 2. e) Va aparea eroare la compilare, deoarece clasa Cl nu are constructor fara parametri. 19) Stabiliti daca programul urmator este corect sau nu: interface I1 { int j = 3; int [] i = {j + 1, j + 2); } interface I2 { int j = 5 ; int []i={j+2,j+4};} public class Test implements I1, I2 { public static void main (String[] args) { System.out.print( I1.j + " "); System.out.print(I2.i[1] + " "); } System.out.print(I1.i[0]);}}

a) Programul este corect si va afisa la executie: 3 9 4. b) Va aparea eroare la compilare, deoarece interfetele I1 si I2 contin declaratiile acelorasi atribute. c) Va aparea eroare la compilare, deoarece in interfetele I1 si I2 atributul i contine referinta la atributul j. d) Va aparea eroare la compilare, deoarece interfetele I1 si I2 contin declaratiile unui atribut de tip tablou. e) Va aparea eroare la compilare, deoarece atributele interfetelor I1 si I2 nu se pot accesa dintr-o metoda statica. 20) Ce puteti spune despre corectitudinea urmatorului program Java? interface I0 { int x; } interface I1 extends I0 { int [] y ={ x + l, x+2};} interface I2 extends I0 { int [] y = {x + 3, x + 4 );} interface I3 extends I1, I2 { int z = I1.y[0], t = I2.y[l]} public class TestAtribute implements I3{ public static void main(String[] args){ I0.x = 3; System.out.print (x + " "); System.out.print(z + " "); System.out .print ( t ) ;}}

14

a) Programul este corect si va afisa la executie: 3 4 7. b) Va aparea eroare la compilare, deoarece interfetele I1 si I2 contin declaratile acelorasi atribute. c) Va aparea eroare la compilare, deoarece in interfata I0 atributul x nu este initializat. d) Va aparea eroare la compilare, deoarece interfata I3 acceseaza un atribut ambiguu. e) Va aparea eroare la compilare, deoarece atributele interfetelor I0 si I3 nu se pot accesa dintr-o metoda statica 21) Ce puteti afirma despre urmatorul program Java? class ExceptiaNoastraUnu extends Exception { ExceptiaNoastraUnu() ( super(); } } class ExceptiaNoastraDoi extends Exception { ExceptiaNoastraDoi() { super(); } } interface I1 { int f (int x) throws ExceptiaNoastraUnu, ExceptiaNoastraDoi; interface I2 extends I1 { int f(int x) throws ExceptiaNoastraDoi; } class C1 implements I1 { public int f(int x) throws ExceptiaNoastraUnu, ExceptiaNoastraDoi { if (x < 0) throw new ExceptiaNoastraUnu() ; return x; } public int f (int x) throws ExceptiaNoastraDoi { if (x < 0) throw new ExceptiaNoastraDoi!); return x; } } public class TestSuprascriereMetode { public static void main(String[] args) { CI obiect = new CIO; try { System.out.print(obiect.f (2) + " "); System.out.print (obiect.f (-2)); } catch (ExceptiaNoastraUnu e) { System.out.print("A aparut o exceptie: " + e); } catch (ExceptiaNoastraDoi e) { System.out.print("A aparut o exceptie: " + e); }}} a) Programul este corect si va afisa la executie: 2 A aparut o exceptie: ExceptiaNoastraUnu. b) Programul este corect si va afisa la executie: 2 A aparut o exceptie: ExceptiaNoastraDoi. c) Va aparea eroare la compilare, deoarece metoda f () din interfata I2 intra in contradictie cu metoda f () din I1. d) Va aparea eroare la compilare, deoarece interfetele I1 si I2 nu contin atributul x. e) Va aparea eroare la compilare, deoarece in clasa C1 nu se poate implementa metoda f () din interfata I1. 22) Selectati varianta corecta referitoare la corectitudinea programului Java de mai jos: interface I1 { int f( int x); } interface I2 extends I1 { float f (float x); double f (double x); class C1 implements I2 { public int f (int x) { return x; }} public float f (float x) { return x; } public double f (double x) ( return x; ) }

15

public class TestSupraincarcareMetode { public static void main(String[] args) { C1 obiect = new C1 (); System.out.print (obiect.f(2) + " "); System.out.print(obiect.f (4.5) + " "); Systerm.out.print(obiect.f (2 . 5f) ) ;}} a) Programul este corect si va afisa la executie: 2 4.5 2.5. b) Programul este corect si va afisa la executie: 2 4 . 5 2 . 5f. c) Va aparea eroare la compilare, deoarece metodele f () din interfata I2 intra in contradictie cu metoda f () din I1. d) Va aparea eroare la compilare, deoarece metodele f () din interfata I2 intra in contradictie intre ele. e) Va aparea eroare la compilare, deoarece metodele f () din interfetele I1 si I2 nu sunt declarate public. 23) Cercetati corectitudinea urmatorului program: public class Test { public static void main(String args[]) { C1 obiect = new Cl(); obiect .f (4, 3) 0}} ; class C1 { public void f (int xx, final int yy) ( int a = xx + yy; final int b = xx - yy; class C2 { , . public void g() { System.out.print("a = " + a); System.out.print(", b = " + b); } } C2 obiectDoi = new C2(); obiectDoi .g () ; } }} a) Programul este corect si va afisa la executie: a = 7, b = 1. b) Programul este corect si va afisa la executie: a = 4, b = 3. c) Va aparea eroare la compilare, deoarece din metoda g () nu putem accesa variabila locala a din metoda f (). d) Va aparea eroare la compilare, deoarece clasa C2 nu poate fi definita in metoda f () din clasa C1. e) Va aparea eroare la compilare, deoarece nu se creeaza in clasa Test un obiect de tip C1.C2. 24) Verificati corectitudinea urmatorului program Java: public class Exemplu { int vl[] = (0), v2[] = (1); public static void main (String args[]) { int vl[] = (2), v2[] = {3}; System.out.print(vl[0] + " " + v2[0] + " "); f (vl, v2); System.out.println (vl [0] + " " + v2 [0]); } public static void f (int vl[], int v2[]) { int w[ ] = {4}; vl = w; v2[0] = w[0]; System.out.print(vl [0] + " " + v2[0] + " "); a) Programul este corect si va afisa la executie: 0 1 4 4 0 1. b) Programul este corect si va afisa la executie: 2 3 4 4 0 1. c) Programul este corect si va afisa la executie: 2 3 4 4 2 4. d) Programul este corect si va afisa la executie: 2 3 4 4 4 4. e) Va aparea eroare la compilare, deoarece atributele vl si v2 sunt redefinite ca variabile locale in metoda main {} 25) Ce puteti spune despre urmatorul program Java (liniile sunt numerotate)? class CI { int x = 1; }

16

class C2 extends C1 { int y = 2; } public class TestCompilare { public static void main(String[] args) { C1 obiectUnu = new Cl(); System.out.print(obiectUnu.x + " "); obiectUnu = new C2(); System.out.print(obiectUnu.x + " "); C2 obiectDoi = (C2) obiectUnu; System.out.print(obiectDoi.x + " "); }} a) Programul este corect si va afisa la executie: 1 1 1 . b) Va aparea eroare la compilare la linia 7, deoarece obiectUnu este deja definit la linia 5. c) Va aparea eroare la compilare la linia 9, deoarece obiectUnu este de tip C1 definit la linia 5. d) Vor aparea erori de compilare la liniile 5, 7 si 9, deoarece intr-o metoda statica nu putem crea variabile obiect. e) Va aparea eroare la executie, aruncand exceptia ClassCastException. 26) Stabiliti care ifirmatii sunt adevarate pentru programul Java din cele de mai jos (liniile sunt numerotate): public class TestTablouri { public static void main(String[] args) { int[] a = (2, 6); Object b = a; . System.out.print(b[0] + " "); byte[] c = new byte[2]; c = a; System.out.print (c[l] + " ") ; }} a) Programul este corect si va afisa la executie: 2 6. b) Va aparea eroare la compilare doar la linia 4, deoarece b necesita o conversie explicita. c) Va aparea eroare la compilare doar la linia 5, deoarece b [ 0 ] nu poate fi accesat. d) Vor aparea erori de compilare la linia 5, deoarece b [ 0 ] nu poate fi accesat si la linia 7, deoarece tipurile componentelor tablourilor a si c nu sunt compatibile. e) Va aparea eroare la executie din cauza liniei 5, aruncandu-se exceptia ClassCastException.

27. Indicati daca program Java de mai jos este corect sau stabiliti natura erorilor (liniile sunt numerotate): class C1 { int x = 1; } class C2 extends C1 { int y = 2; }

17

interface I1 { int x = 3; void f(int x); } class C3 extends C1 implements I1 { int x = 4; public void f(int x) { this.x = x; } } public class TestConversii { public static void main(String[] args) { C3 obiectUnu = new C3( ); I1 obiectDoi = obiectUnu; System.out.print(obiectDoi.x); C2 [] obiectTrei = new C2[3]; System.out.print(obiectTrei[0].x + " "); C1 [] obiectPatru = obiectTrei; System.out.print(obiectPatru(1].x + " "); obiectTrei = (C2[]) obiectPatru; }} a) Programul este corect si va afisa la executie: 3 2 1. b) Programul este corect la compilare si va afisa la executie 3, urmat de aruncarea exceptiei NullPointerException la linia 14. c) Programul este corect la compilare si va afisa la executie 3, urmat de aruncarea exceptiei NullPointerException la linia 16. d) Va aparea eroare la compilare doar la linia 15, deoarece tipurile componentelor tablourilor obiectTrei si obiectPatru nu sunt compatibile. e) Va aparea eroare la executie la linia 17, aruncandu-se exceptia ClassCast Exception. 28). Ce puteti spune despre urmatorul program Java? class CI { int x = 1; } interface I1 { int x = 2; void f (int x); } class C2 extends C1 implements I1 { int x = 3; public void f(int x) { this.x = x; } public class Test { public static void main(String[] args) { C1 obiectUnu = new C2(); System.out.print(obiectUnu.x) ; I1 obiectDoi = (C2) obiectUnu; System.out.println(" " + obiectDoi.x);}} a) Programul este corect si va afisa la executie : 1 2. b) Programul este corect si va afisa la executie: 3 2. c) Programul este corect si va afisa la executie: 3 3. d) Va aparea eroare de compilare la crearea lui obiectDoi. e) Va aparea eroare la executie la afisarea lui obiectDoi. x, aruncandu-se exceptia ClassCastException. 29) Verificaji daca programul de mai jos este corect: interface I1 { int x =1; void f(int x); } class C1 implements I1{ int x = 2; public void f (int x) { this.x = x ; }

18

public class Test { public static void main(String[] args) ( C1 obiectUnu = new C1( ); System.out.print (obiectUnu .x) ; I1 obiectDoi = obiectUnu; System.out.println(" " + obiectDoi.x); } } a) Programul este corect si va afisa la executie: 2 1. b) Programul este corect si va afisa la executie: 2 2. c) Va aparea eroare de compilare la crearea lui obiectDoi, fiind necesara o conversie explicita de forma (C2). d) Va aparea eroare de compilare la crearea lui obiectDoi, deoarece atributul x se suprascrie. e) Va aparea eroare la executie la afisarea lui obiectDoi .x, aruncandu-se exceptia ClassCastException. 30) Ce puteti afirma despre urmatorul program Java? class C1 { int x = 1; void f (int x) { System.out .print ( " Unu ");, this .x = x; } } interface I1 { int x = 2; void f ( int x) ; } class C2 extends C1 implements I1 { int x = 3; public void f(int x) { System.out.print("Doi "); this.x = x;}} public class Test { public static void main (String[] args) { C1 obiectUnu = new C2( ); System.out.print(obiectUnu.x + " ") ; obiectUnu.f (4) ; I1 obiectDoi = (C2) obiectUnu; obiectDoi.f(5); System.out.println(obiectDoi.x) ; }} a) Programul este corect si va afisa la executie: 1 Unu Doi 2. b) Programul este corect si va afisa la executie: 1 Unu Doi 3. c) Programul este corect si va afisa la executie: 1 Doi Doi 2. d) Programul este corect si va afisa la executie: 3 Doi Doi 2. e) Programul este corect si va afisa la executie: 3 Doi Doi 3. f) Va aparea eroare de compilare la crearea lui obiectDoi, deoarece atributul x se suprascrie. g) Va aparea eroare la execute la afisarea lui obiectDoi.x, aruncandu-se exceptia ClassCastException 31) Indicati daca programul de mai jos este corect si, in caz afirmativ, ce va aparea pe ecran: class C1 { int x = 1; void f(int x) { System.out.print("1 "); this.x = x;}} class C2 extends C1 ( int x = 2; public void f (int x) ( System.out.print("2 "); this. x = x;;}} class C3 extends C1 { int x = 3; public void f (int x) { System.out.print("3 "); this.x = x ; }} public class Test { public static void main (String[] args) { C1 obiectUnu = new C2( ); C1 obiectDoi = new C3( ); System.out.print(obiectUnu.x + " " + obiectDoi.x + " "); obiectUnu.f (4); obiectDoi.f(5); System.out.print(obiectUnu. x + " " + ((C2) obiectUnu) .x + ); System.out.print(obiectDoi.x + + ((C3)obiectDoi).x);}} a) Programul este corect si va afisa la executie : 1 1 1 1 1 4 1 5. b) Programul este corect si va afisa la executie : 1 1 2 3 1 4 1 5. c) Programul este corect si va afisa la executie : 2323243 5. d) Programul este corect si va afisa la executie: 2 3 2 3 4 4 5 5. e) Vor aparea erori de compilare la crearea instantelor obiectUnu si obiectDoi, deoarece atributul x se suprascrie.

19

f) Va aparea eroare la executie la afisarea lui obiectUnu. x, aruncandu-se exceptia ClassCastException 32) Ce puteti afirma despre programul Java de mai jos? class C1 { int x =1; C1 ( int x) { this.x = x; } } class C2 extends C1 { int x = 3, y = 4; C2 ( int x, int y) { super ( x ); this.y = y; } } public class Test { public static void main ( String args[ ]) { C1[] tablouUnu = new C2[3]; for ( int i = 0; i < tablouUnu.length; i++); tablouUnu[i] = new C2(i * 2, i * 3); C2[ ] tablouDoi = (C2 [ ]) tablouUnu; for (int i = 0; i < tablouUnu. length; i++) System.out.print(tablouDoi[i] . x + " " + tablouDoi[i].y + ) }} a) Programul este corect si va afisa la executie: 1 0 1 3 1 6 b) Programul este corect si va afisa la executie: 1 4 1 4 1 4 c) Programul este corect si va afisa la executie: 3 0 3 3 3 6 d) Programul este corect si va afisa la executie: 3 4 3 4 3 4 e) Vor aparea erori de compilare la crearea instantelor tablouUnu si tablouDoi, deoarece atributul x se suprascrie. f) Va aparea eroare la executie la afisarea lui tablouUnu.x, aruncandu-se exceptia ClassCastException. 33) Verificati corectitudinea programului urmator si specificati ce se va afisa: class C1 ( int x = 1; C1 (int x) ( this.x = x;) } class C2 extends C1 { int x = 2, y = 3; C2 ( int x) { super (x); } C2 (int x, int y) { super (x); this.y = y; }} public class ApelExplicitConstructor { public static void main (String args [ ]) { C1 obiectUnu = new C1 (4); C2 obiectDoi = new C2(5); C2 obiectTrei = new C2 (6, 7); System.out.print (obiectUnu.x + " "); System.out.print(obiectDoi.x + + obiectDoi.y + ); System.out.print(obiectTrei.x + + obiectTrei.y);}} a) Programul este corect si va afisa la executie : 4 1 2 1 7. b) Programul este corect si va afisa la executie : 4 1 3 6 7. c) Programul este corect si va afisa la executie : 4 2 3 2 7. d) Programul este corect si va afisa la executie : 4 5 3 6 7. e) Vor aparea erori de compilare la crearea instantelor obiectDoi si obiectTrei, deoarece atributul x se suprascrie. f) Va aparea eroare la execute la afisarea lui ObiectDoi. x , aruncandu-se exceptia ClassCastException. Test 4 Intrebarea 4.7,1. Un obiect de tip String permite parcurgerea caracter cu caracter a literalului stocat? a) b) c) d) Exista o metoda care se ocupa cu lucrul acesta. Se poate realiza cu ajutorul mai mulor metode din clasa String. Se poate realiza doar prin intermediul clasei stringBuffer. Aceasta operatie poate fi efcctuata si cu ajutorul unui obiect de tip String Tokenizer.

20

Intrebarea 4.7.2. Ce se poate spune despre urmatoarea scventa de cod? String s = "String"; s.toString ().toString.toString(); a) Se obtine eroare la compilare, deoarece nu s-a utilizat operatorul new pentru obiectul s b) Apare o eroare la compilare, intrucat obiectul s va contine numele unui cuvant rezervat c) Se va genera o eroare la executie, pentru ca metoda toString () returneaza o valoare care nu este preluata. d) Codul este corect din punct de vedere sintactic. e) Se apeleaza metode toString () pentru acelasi obiect. Intrebarea 4.7.3. Care dintre metodele clasei String de mai jos returneaza un obiect de tip String? a) replace() b) split() c) intern() d) toLowerCase() Intrebarea 4,7.4. Ce va afisa la consola urmatorul apel? System.out.println(10 + 9 + new StringBuffer("opt") + 7 + 6 + "5") a)109opt765 b)19opt135 c)19opt18 d)19opt765 e) Se obtne o eroare la compilare sau la executie. Intrebarea 4.7.5. Pentru a gestiona numele unor persoane, care structura este mai eficienta pentru cautare? a) o colectie de tip vector; b) o tabela hash; c) o lists dublu inlantuita d) un arbore binar; e) o multime

Test 5 5.6.1. Care dintre afirmatiile de mai jos sunt adevarate?

21

a) b) c) d) e)

caracterle UTF se reprezinta pe 8 bit; caracterele UTF se reprezinta pe 16 biti; caracterele UTF se reprezinta pe 24 biti; caracterele Unicode se reprezinta pe 16 biti; caracterele Bytecode se reprezinta pe 16 biti.

5.6.2. Care din afirmatiile de mai jos sunt adevarate? a) Cand se creeaza o instanta a lui File si nu se foloseste semantica de denumire a fisierelor de pe masina locala, atunci constructorul va arunca o exceptie IOException b) cand se creeaza o instanta a lui File si fisierul respectiv nu exista pe sistemul de fisiere local, atunci se creeaza un astfel de fisier; c) cand o instanta a lui File este eliberata de garbage collector, atunci fisierul corespunzzator de pe sistemul local esie sters d) Nici una dintre afirmatiile de mai sus nu este adevarata 5.6.3. Pentru afirmatiile de mai jos, selectati pe cele adevarate: Clasa File contine o metoda care schimba directorii de lucru curent; Clasa File contine o metoda care listeaza continutul directorului de lucru curent. a) b) c) d) Nu,Nu Da, Nu Nu, Da Da, Da

5.6.4, Cati octeti va scrie codul java de mai jos catre fisierul fisier. txt? try { FileOutputStream f1 = new FileOutputStream ("fisier.txt") DataOutputStream f2 = new DataOutputStream (f1) f2.writeInt(3) f2.writeDouble(0.01) f2.close() f1.close() } a) 2 b) 8 c) 12 d) 16 e) numarul de octeti va depinde de sistemul local respectiv 5.6.5 Ce va afisa subcodul Java de mai jos la linia 8? 1. FileOutputStream f1 = new FileOutputStream("fisier.txt") 2. for(byte b=10; b<50;b++) f1.write(b)

22

3. f1.close(); 4. RandomAccesFile f2 = new RandomAccesFile("fisier.txt","r") 5. f2.seek(10) 6. int i = f2.read(); 7. f2.close() 8. System.out.println("i = " + i) a) i=10 b) i=20 c) i=30 d) se va arunca o exceptie la linia 1 e) se va arunca o exceptie la linia 4 5.6.6 Presupunem ca utilizam codul de mai jos pentru a crea un fisier: FileOutputStream f1 = new FileOutputStream("fisier.txt") DataOutputStream f2 = new DataOutputStream(f1) for(int i=0;i<500;i++) f2.writeInt(i) Pentru a citi date din acest disier, care dintre situatiile de mai jos este corecta? a) Construim un FileInputStream caruia i se trimite ca parametru numele fisierului. Folosind acest obiect, se creeaza un obiect DataInputStream caruia i se apeleaza metoda readInt() b) Construim un FileReader caruia i se trimite ca parametru numele fisierului. Folosind acest obiect, se apeleaza metoda readInt() c) Construim un PipedInputStream caruia i se trimite ca parametru numele fisierului. Folosind acest obiect, se apeleaza metoda readInt() d) Construim un RandomAccesFile caruia i se trimite ca parametru numele fisierului. Folosind acest obiect, se apeleaza metoda readInteger() e) Construim un FileReader caruia i se trimite ca parametru numele fisierului. Folosind acest obiect, se creeaza un obiect DataInputStream caruia i se apeleaza metoda readInt() 5.6.7 Pentru afirmatiile de mai jos, selectati pe cele adevarate: Clasa Readers contine o metoda care citeste si returneaza o valoare de tip float Clasa Writers contine o metoda care scrie o valoare de tip float a) Nu, Nu b) Da, Nu c) Nu, Da d) Da, Da 5.6.8 Fie codul Java de mai jos. Care este rezultatul executiei lui? 1. File f1=new File("numeDirector") 2. File f2=new File(f1, "numeFisier") a) eroare de compilare la linia 2, deoarece avem un apel recursiv nepermis b) programul este corect, dar nu se creeaza nici un director si nici un fisier

23

c) programul este corect si se creeaza in directorul curent un director cu numele numeDirector, iar in acest director se creeaza fisierul cu numele numeFisier d) programul este corect si se creeaza in directorul curent un director cu numele numeDirector, si se creeaza fisierul cu numele numeFisier 5.6.9 Presupunem ca avem un fragment de cod java dintr-o aplicatie care are drept de scriere in directorul de lucru curent si ca in directorul curent nu exista fisierul numit fisier.txt. Care va fi rezultatul compilarii si executiei codului de mai jos? 1. try { 2. RandomAccesFile f1 = new RandomAccesFile( 3. "fisier.txt", "rw" ) 4. BufferedOutputStream f2 = new BufferedOutputStream (f1) 5. f3.writeDouble (Match.PI); 6. f3.close() 7. f2.close() 8. f1.close() 9. } catch (IOException e) {} a) Codul java de mai sus nu se poate compila b) Codul java de mai sus se poate compila, dar arunca o exceptie la linia 3 c) Codul java de mai sus se poate compila si executa, dar nu are nici un efect pe sistemul de fisiere local d) Codul java de mai sus se poate compila si executa, creandu-se fisierul fisier.txt in directorul curent. 5.6.10 Presupunem ca avem o clasa C1 care extinde interfata Serializable Selectati o optiune de mai jos in functie de valoarea de adevar a urmatoarelor afirmatii: 1. Intotdeauna clasa C1 trebuie sa redefineasca metodele readObject() si writeObject() 2. Daca C1 extinde clasa Applet, atunci nu este nevoie sa se redefineasca metodele readObject() si writeObject() 3. Atributele transient din clasa C1 nu vor fi serializate a) 1,2,3 b) 1,2 c) 1,3 d) 2,3 e) 2 5.6.11 Peresupunem ca avem un program Java si ca in directorul de lucru curent exista drepturi de scriere. Care va fi rezultatul compilarii si executiei codului de mai jos? import java.io.*; class C1 { private double a = 3.45;

24

public String toString() (return "a = " + a;) } public class TestGrilaSerializare { public stati void main (String args []) { C1 obiect = new C1(); try { ObjectOutputStream oos = new ObjectOutputStream ( new FileOutputStream ("intrare.dat")); oos.writeObject(obiect); oos.close(); } catch (IOException e) { System.out.println("Eroare la serializare" + e.getMessage()); } try { ObjectInputStream ois = new ObjectInputStream( new FileInputStream("intrare.dat")) C1 obiectCitit = (C1) ois.readObject(); System.out.println(obiectCitit); ois.close(); } catch (IOException e) { System.out.println("Eroare la deserializare" + e.getMessage()) } catch (ClassNotFoundException e) { System.out.println("N-am gasit clasa obiectului in flux" + e.getMessage()); } } } a) Codul Java de mai sus nu se poate compila b) Codul Java de mai sus se poate compila, dar arunca o exceptie la serializare c) Codul Java de mai sus se poate compila, dar arunca o exceptie la deserializare d) Codul Java de mai sus se poate compila, dar arunca doua exceptii (la serializare si la deserializare) e) Codul Java de mai sus se poate compila si executa, afisandu-se textul a = 3.45 Test 6 Intrebarea 6.6.1. Care dintre afirmatiile urmatoare sunt false? a) b) c) d) Un fir de executie nu poate crea un alt fir de executie. O aplicatie poate crea cel mult 10 fire de executie. Doua fire de executie nu pot citi simultan date din acelasi fisier. Firele de executie nu pot avea obiecte comune.

25

e) Pentru fiecare fir de executie trebuie sa definim o clasa. Intrebarea 6.6.2. Cuvantul cheie syncronized se refera la: a) b) c) d) sincronizarea comunicarii intre firele de execupe; speclficarea datelor tare vor fi accesibile tuturor.firelor He execupe; excluderea mucuala; proprietatea de contmuitate,

Intrebarea 6.6.3. Sincronizarea firelor de execute se realizcaza cu ajutorul: a) cuvantului cheie syncronized; b) datelor membre statice; c) metodelor wait (), notify () si notifyAll () ; d) metodelor sleep (), notify () si notifyAll (). Intrebarea 6.6.4. Un fir de execupe poate mtra in swrea de blocare astfel: a) b) c) d) prin apelul metodei sleep(); automat de catre sistemul de operare; prin apelul metodei block (); prin apelul metodei wait ().

Test 7 Intrebarea 7.9.1. Care dintre afirmatile de mai jos referitoare la appleturi sunt adevarate: a) b) c) d) Sunt executate de catre serverul Web. Sunt stocate pe serverul Web. Sunt compilate de navigatorul Web. Sunt executate de navigatorul Web.

Intrebarea 7.9.2. Precizati care dintre afirmatiile urmatoare sunt false: a) b) c) d) Orice navigator Web poate rula appleturi. Appleturile pot fi stocate pe orice server Web. Appleturile pot fi stocate local, pe calculatorul clientului. Cel mult un applet poate fi continut de un document Web.

Intrebarea 7.9.3. Un applet poate fi: a) Executat cu appletviewer fara sa cream o pagina HTML. b) Simultan si aplicatie de sine statatoare. c) Executat cu ajutorul comenzii java.

26

d) Compilat doar la incarcarea acestuia in navigatorul Web. Intrebarea 7.9.4. Care dintre propozitiile urmatoare referitoare la metodele unui applet sunt adevarate? a) Trebuie sa redefinim macar o metoda, altfel obtinem eroare la compilare. b) Sunt apelate automat de navigatorul Web. c) Pot fi apelate direct de catre utilizatori. d) Nu se pot declara noi metode. Intrebarea 7.9.5. Care dintre afirmatiile urmatoare sunt false? a) b) c) d) Doar appleturile din aceeasi pagina Web pot comunica intre ele. Un applet poate fi configurat din cadrul paginii Web. Un document Web poate contine un applet de pe alt server Web. In anumite situatii un applet poate avea acces la sistemul de fisiere local.

Nici una nu este corecta Intrebarea 7.9.6. Un applet poate contine: a) b) c) d) e) imagini stocate in fisiere externe; elemente de redare a sunetelor aflate in fisiere externe; texte de diferite dimensiuni si culori; figuri geometrice bidimensionale; Nu poate contine simultan imagini, desene, text si audio.

Intrebarea 7.9.7. O componeiua gidfica trebuie neaparat sa: a) contina o reprezentare grafica b) aiba atapt un ascultator pentru interceptarea Cicciunilori c) fie vizibila d) fie atasata unei suprafete de desenare Nici una nu este corecta Intrebarea 7.9.8 Care dintre urmatoarele clase nu reprezinta componente grafice? a) Panel b) Canvas c) SoundComponent d) Container e) Applet f) List Intrebarea 7.9.9 Care dintre gestionarii de pozitionare de mai jos pot fi utilizati de appleturi?

27

a) GridBagLayout b) TableLayout c) DefaultLayout d) FlowLayout e) WindowLayout Intrebarea 7.9.10 Care dintre urmatoarele metode trebuie implementate pentru tratarea evenimentului de apasare a unu buton? a) Nu trebuie definita nici o metoda. b) actionPerformed() c) actionListener() d) itemStateChanged() Intrebarea 7.9.11 Care dintre urmatoarele clase definesc ferestre? a) FileDialog b) WindowListener c) Applet d) Frame e) MainWindow Intrebarea 7.9.12 Un manager de securitate poate stabili: a) drepturile de acces pentru fisiere b) restrictii pentru executarea anumitor aplicatii c) care appleturi sa poata accesa sistemul local de fisiere d) doar restrictii, nu si drepturi Intrebarea 7.9.13 Ce metoda trebuie definita pentru a putea desena pe suprafata appletului? a) Nu trebuie definita nici o metoda. b) update() c) paint() d) repaint() Test 8 Intrebarea 8.11.1 Ce reprezinta un sistem de gestiune al bazelor de date(DBMS)? a) O aplicatie care acceseaza baze de date tinute de un server b) Un sistem de reguli si conventii care reglementeaza schimbul de date intre componentii unei arhitecturi client-server. c) Un sistem care permite gestionarea bazelor de date si ofera modalitati ca acestea sa fie accesate de clienti via conexiuni. d) Un gestionar de conexiuni intre un client si un server de baze de date.

28

Intrebarea 8.11.2 Ce reprezinta un driver JDBC? a) O componenta fizica ce trebuie instalata ca un modul al calculatorului, pentru a ne putea conecta la un server de baze de date. b) O componenta soft care intermediaza inte un client java si un DMBS(SGBD). c) O aplicatie server care trimite date clientilor in urma unor interogari SQL. Intrebarea 8.11.3 Ce reglementeaza specificatia JDBC? a) Cum trebuie construiti clientii care folosesc driverele JDBC. b) O serie de interfete standard ce trebui suprascrise de creatorii de drivere JDBC. c) Sintaxa SQL. d) Versiunile dirverelor JDBC e) concordanta dintre JDBC si ODBC. Intrebarea 8.11.4 Fie urmatorul apel: Statement declar = con.createStatement ( ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet. CONCUR_UPDATABLE); Ce proprietati vor avea instantele ResultSet obtinute folosind acest obiect Statement? a) Vor avea cursor deplasabil numain inainte si vor fi senzitive la modificarile din tabelele interogate. b) Vor avea cursor pozitionabil pe orice linie, pemitand modificarea programatica a tabelei interogate. c) Vor fi insezitive la modificarile survenite in tabele, permitand modificarea programatica a tabelelor interogate. Intrebarea 8.11.5 Fie tabela t cu 10 inregistrari si avand coloanele a si b, respectiv urmatoarea secventa de cod: ResultSet rez = instructiune.executeQuery("select * from t"); rez.last(); rez.updateInt|"a",100); rez.updateString(2,"I"); rez.first(); Care dintre afirmatiile de mai jos sunt adevarate dupa executia codului? a) Se va adauga in tabela t o noua inregistrare. b) Se va modifica ultima linie din tabela pentru a actualiza elementul de pe coloana a la 100 si elementul de pe coloana b la "I".

29

c) Tabela va ramane nemodificata Intrebarea 8.11.6 Ce reprezinta un obiect java.sql.Clob obtinut in urma unui apel getClob al clasei ResultSet? a) Un sir de caractere cu o lungime mai mare decat 256 b) O referinta spre un obiect de tip SQL Blob stocat de DBMS c) Un tip de date SQL definit de ultilizator. Nici una nu este corecta Intrebarea 8.11.7 Fie secventa de cod: Class.forName(" com.mysql.jdbc.Driver"); Connection con = DriverManager.getConnection( "jdbc:mysql://localhost/arhiva? user=utilizator&password=parola&useUnicode=true&characterEncoding=UTF-8"); Care dintre afirmatiile urmatoare este adevarata? a) Codul permite obtinerea unei conexiuni la serverul MySQL folosind driverul MMMySQL. b) Codul permite realizarea unei conexiuni la serverul MySQL si cere driverului sa foloseasca standardul Unicode in comunicatie. c) Codul inregistreaza driverul Connector/J si realizeaza o conexiune la serverul MuSQL folosind acest driver. Intrebarea 8.11.8 Ce reprezinta ODBC? a) Implementarea obiectuala a driverelor JDBC. b) Un driver JDBC care permite conectarea la baze de date Acces. c) O sursa de date. d) Un server DBMS. Nici una nu este corecta Intrebarea 8.11.9 Ce determina un apel commit()? a) Terminarea unei tranzactii. b) Inceperea unei noi tranzactii. c) Anularea unei tranzactii. Intrebarea 8.11.10 Care dintre afirmatiile urmatoare reprezinta problema citirii murdare (eng. dirty read)? a) Un client citeste date dintr-o tabela, dar intre timp alt client modifica respectivele date. Recitind, primul client obtine alte informatii.

30

b) Un client scrie o informatie in baze de date fara a salva definitiv datele si un alt client foloseste intre timp informatia. Primul client renunta, iar al doilea modifica valoarea citita si o salveaza. c) Un client aplica metoda commit, in timp ce altul aplica metoda rollback. Test 9 Intrebarea 9.7.1 Care dintre urmatoarele afirmatii sunt false? a) Comunicarea prin datagrame nu asigura primirea corecta (nedeteriorata) a mesajelor. b) Protocolului HTTP este orientat conexiune. c) La un port pot asculta mai multe servere TCP. d) Doar un server TCP si unul UDP pot asculta la acelasi port. Intrebarea 9.7.2 Care dintre afirmatiile urmatoare sunt adevarate: a) O aplicatie server poate asculta la mai multe porturi. b) Un socket paote sa asculte la un singur port. c) O masina din retea poate avea mai multe adrese IP. d) O masina din retea poate avea un singur nume (domeniu) Intrebarea 9.7.3 Apelurile de metode la distanta se realizeaza: a) prin conexiune TCP b) prin datagrame c) prin intermediul protocolului HTTP; d) cu ajutorul firewall-urilor. Intrebarea 9.7.4 Denumirea URL vine de la: a) Universal Resource Location b) Universal Resource Locator c) Uniform Resource Location d) Uniform Resource Locator Intrebarea 9.7.5 Pentru a apela metodele unui obiect la distanta trebuie sa: a) pornim un registru de nume b) cream un socket pentru a stabili o conexiune cu serverul RMI c) realizam o cerere pentru respectivul obiect prin intermediul socketului creat anterior d) obtinem o instanta a obiectului la distanta Intrebarea 9.7.6 Care dintre afirmatiile urmatoare referitoare la trimiterea obiectelor la distanta ca parametri ai metodelor la distanta sunt adevarate? a) Nu se pot trimite

31

b) Se trimite o copie a lor c) Se trimite o referinta la distanta d) Se trimite obiectul stub corespunzator e) Se trimite obiectul skeleton corespunzator Intrebarea 9.7.7 Serializarea obiectelor la distanta se poate realiza a) ca la obiectele locale b) ca la obiectele locale, numai ca la restaurare vor aparea probleme. c) Intr-un mod specific, RMI implementand interfata RMISerializable; d) Nu se pot serializa obiectele la distanta.

32