Sunteți pe pagina 1din 37

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.

1
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!

2
6) Fie urmatorul subprogram Java:
int as=3, bs=2, cs=4;
System.out.print(((as < bs++) & (cs++ < bs)) + " ");
System.out.println(as + " " + bs + " " + cs);
System.out.print(((as < bs++) && (cs++ < bs++)) + " ");
System.out.println(as + " " + 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(eroare la compilare)

3
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.

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.

5
16) Fie urmatorul subprogram Java:

int a = 3;
if (++a < 4)
if (++a < 4)

System.out.println (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.

6
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(eroare la executie)

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?

7
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:

public class C1 {
int x = 1;
C1 (){
System.out.print("x = " + x);}

}
class C2 extends C1 {
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);

8
}
}

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:

public class X {
private int X = 1;
void X() {
System.out.print(X + " ");
}
}
public class Y extends X {
private int X = 2;
void X() { super.X();
System.out.print(X);
}
}
public class Test {
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 Test {


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);
}
}

public class Exemplu {

9
static int x = 0;//variabila static nu se initializeaza cu fiecare creare
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; //final, constanta
}
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;

10
}
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?

public class C1{


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 Test {


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.

11
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[]){
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?

public class C1{


int x = 1;
void f(int x){
this.x = x;
}
int getX_C1() {
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_C1() ) ;

12
}
}

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
diferit de void.

11). Ce puteti afirma despre urmatorul program Java?

public 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 C1, 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?

public class C1{


double x = 5.0f;
void f(int x) {
f((double)x + 2);
}

13
void f (double x ) {

this.x = x;
}
}

public class Supraincarcare {


public static void main(String args[]) {
C1 obiect = new C1();
obiect.f ( 4.0) ;
System.out.println ( obiect.x) ;
}

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:

public class C1{


static int f() {
return j;
}
static int i = f();
static int j = 1;
}

public class Test {


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)?

14
1.public class SubiectLicentaDoi {
2.static int x = 10;
3.static { x += 5; }
4.public static void main(String args[]) {
5.System.out.println("x = " + x) ;
6.}
7.static { x /= 5; }
8.}
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 SuprascriereSupraincarcare extends Baza {


public void functie ( int j) {
System.out.print(" j = " + j);
}
public void functie ( String s) {
System.out.print (" s = " + s) ;
}
public static void main(String args[]) {
Baza b1 = new Baza();
Baza b2 = new SuprascriereSupraincarcare();
b1.functie(5) ;
b2.functie(6) ;
}
}
public 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;

15
int y = 2;
static Cl() {
x = 4;
}
C1 (int y) {
this . y = y + 1;
}
public class Test {
public static void main(String args[]) {
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?

public class C1{


int x = 1;
C1 ( int x){
this.x = x;
}
}

class C2 extends C1 {
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);

16
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.


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 instanta.

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 C1 {
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 C1 nu are constructor fara parametri.

19) Stabiliti daca programul urmator este corect sau nu:

interface I1 {
int j = 3;

17
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 ) ;
}
}

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.

18
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 CI();
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.

19
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; }
}

public class Test {


public static void main(String[] args) {
C1 obiect = new C1 ();
System.out.print (obiect.f(2) + " ");
System.out.print(obiect.f (4.5) + " ");
System.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) {

20
C1 obiect = new C1 ();
obiect.f(4,3);
}
}

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 v1[] = {0}, v2[] = {1};
public static void main (String args[]) {
int v1[] = {2}, v2[] = {3};
System.out.print(v1[0] + " " + v2[0] + " ");
f (v1, v2);
System.out.println (v1[0] + " " + v2[0]);
}
public static void f (int v1[], int v2[]) {
int w[ ] = {4};
v1 = w;
v2[0] = w[0];
System.out.print(v1[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.

21
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)?

1.class CI { int x = 1; }
2.class C2 extends C1 { int y = 2; }
3.public class TestCompilare {
4.public static void main(String[] args) {
5.C1 obiectUnu = new Cl();
6.System.out.print(obiectUnu.x + " ");
7.obiectUnu = new C2();
8.System.out.print(obiectUnu.x + " ");
9.C2 obiectDoi = (C2) obiectUnu;
10.System.out.print(obiectDoi.x + " ");
11.}
12.}

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 afirmatii sunt adevarate pentru programul Java din cele de mai jos (liniile sunt
numerotate):

1.public class TestTablouri {


2.public static void main(String[] args) {
3.int[] a = {2, 6};
4.Object b = a; .
5.System.out.print(b[0] + " ");
6.byte[] c = new byte[2];

7.c = a ;
8.System.out.print (c[l] + " ") ;
9.}
10.}

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 Class¬CastException.

22
27. Indicati daca program Java de mai jos este corect sau stabiliti natura erorilor (liniile sunt
numerotate):

1.class C1 { int x = 1; }
2.class C2 extends C1 { int y = 2; }
3.interface I1 { int x = 3; void f(int x); }
4.class C3 extends C1 implements I1 {
5.int x = 4;
6.public void f(int x) { this.x = x; }
7.}
8.public class TestConversii {
9.public static void main(String[] args) {
10.C3 obiectUnu = new C3( );
11.I1 obiectDoi = obiectUnu;
12.System.out.print(obiectDoi.x);
13.C2 [] obiectTrei = new C2[3];
14.System.out.print(obiectTrei[0].x + " ");
15.C1 [] obiectPatru = obiectTrei;
16.System.out.print(obiectPatru(1].x + " ");
17.obiectTrei = (C2[]) obiectPatru;
18.}
19.}

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 C1 {
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) {

23
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 ;
}
}

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.

24
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;

25
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.
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;

26
}
}
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.

27
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) Exista o metoda care se ocupa cu lucrul acesta.


b) Se poate realiza cu ajutorul mai multor metode din clasa String.
c) Se poate realiza doar prin intermediul clasei stringBuffer.
d) Aceasta operatie poate fi efcctuata si cu ajutorul unui obiect de tip String Tokenizer.

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")

28
a)109opt765
b)19opt135
c)19opt18
d)19opt765
e) Se obtine 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?

a) caracterle UTF se reprezinta pe 8 bit;


b) caracterele UTF se reprezinta pe 16 biti;
c) caracterele UTF se reprezinta pe 24 biti;
d) caracterele Unicode se reprezinta pe 16 biti;
e) 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 este 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) Nu,Nu
b) Da, Nu
c) Nu, Da
d) Da, Da

29
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)
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()

30
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
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

31
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;
public String toString() (return "a = " + a;)
}
public class TestGrilaSerializare {
public static 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) {

32
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) Un fir de executie nu poate crea un alt fir de executie.


b) O aplicatie poate crea cel mult 10 fire de executie.
c) Doua fire de executie nu pot citi simultan date din acelasi fisier.
d) Firele de executie nu pot avea obiecte comune.
e) Pentru fiecare fir de executie trebuie sa definim o clasa.

Intrebarea 6.6.2. Cuvantul cheie syncronized se refera la:

a) sincronizarea comunicarii intre firele de execupe;


b) speclficarea datelor tare vor fi accesibile tuturor.firelor He execupe;
c) excluderea mutuala;
d) 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 executie poate intra in starea de blocare astfel:

a) prin apelul metodei sleep();


b) automat de catre sistemul de operare;
c) prin apelul metodei block ();
d) prin apelul metodei wait ().

33
Test 7

Intrebarea 7.9.1. Care dintre afirmatile de mai jos referitoare la appleturi sunt adevarate:

a) Sunt executate de catre serverul Web.


b) Sunt stocate pe serverul Web.
c) Sunt compilate de navigatorul Web.
d) Sunt executate de navigatorul Web.

Intrebarea 7.9.2. Precizati care dintre afirmatiile urmatoare sunt false:

a) Orice navigator Web poate rula appleturi.


b) Appleturile pot fi stocate pe orice server Web.
c) Appleturile pot fi stocate local, pe calculatorul clientului.
d) 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.
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) Doar appleturile din aceeasi pagina Web pot comunica intre ele.
b) Un applet poate fi configurat din cadrul paginii Web.
c) Un document Web poate contine un applet de pe alt server Web.
d) 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) imagini stocate in fisiere externe;

34
b) elemente de redare a sunetelor aflate in fisiere externe;
c) texte de diferite dimensiuni si culori;
d) figuri geometrice bidimensionale;
e) 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?

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

35
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 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:

36
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
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.

37

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