ОО2/Пробни тестови 2021

Извор: SI Wiki
< ОО2
Датум измене: 17. април 2021. у 15:54; аутор: TopOfKeks (разговор | доприноси) (Probni test 2021)
(разл) ← Старија измена | Тренутна верзија (разл) | Новија измена → (разл)
Пређи на навигацију Пређи на претрагу
  • Za pitanja sa više odgovora, tačni odgovori su podebljani i uokvireni.
  • Za pitanja za koje se odgovori unose, tačni odgovori su podvučeni i sakriveni: ovako.
  • Pritisnite na sledeće dugme kako biste ih sakrili ili otkrili:

Kolokvijum - samotestiranje

Na svakom pitanju je bilo ili moguće izabrati jedno ili više rešenja ili uneti odgovor u polje.

1. zadatak

Koje tvrdnje za jezik Java su tačne?

  1. Interpretiranje bajtkoda je po pravilu efikasnije od izvršenja programa na mašinskom jeziku.
  2. JIT (Just In Time) prevodilac prevodi izvorni kod programa u bajtkod.
  3. lmplementacija virtuelne mašine zavisi od konkretne platforme, ali interfejs prema bajtkodu ostaje isti.
  4. Izvorni kod programa se interpretira od strane virtuelne mašine.
  5. Izvorni kod programa se naziva bajtkod.

2. zadatak

Šta ispisuje sledeći program?

public class A {
     public static void main(String[] args) {
          String str1 = "abc", str2 = "abc", str3 = "ab" + "c", str4 = new String("abc");
          System.out.println(str1==str2);
          System.out.println(str1==str3);
          System.out.println(str1==str4);
     }
}

Izaberite jedan odgovor:

  1. false false false
  2. false false true
  3. true false false
  4. true true false
  5. true true true

3. zadatak

Dat je sledeći program:

public class Primer{
  int polje;
  static void f(Object o){
    if(o instanceof Primer)
      ((Primer)o).polje = 1;
    else if (o instanceof Integer)
      o = 0;
  }
  public static void main(String[] args){
    Primer p = new Primer();
    Integer i = 0;
    f(p);
    f(i);
    System.out.println(p.polje + " " + i);
  }
}

Odabrati tačan odgovor Izaberite jedan odgovor:

  1. Kod je sintaksno neispravan.
  2. Program ispisuje vrednosti 0 0.
  3. Program ispisuje vrednosti 0 1.
  4. Program ispisuje vrednosti 1 0.
  5. Program ispisuje vrednosti 1 1.

4. zadatak

Za pakete na jeziku Java važi:

  1. Postoje tipovi koji mogu pripadati većem broju paketa.
  2. Svaka klasa mora biti deo nekog paketa.
  3. Uvoženjem paketa ne uvoze se i svi potpaketi tog paketa.
  4. Sve klase koje se nalaze u istoj datoteci su deo istog paketa.
  5. Paket java.lang se automatski uvozi.
  6. U datoteci može postojati više naredbi: package naziv_paketa;

5. zadatak

Koje tvrdnje su tačne za nestatičke inicijalizacione blokove?

  1. Izvršavaju se nakon izvršavanja konstruktora svoje klase.
  2. Mogu bacati izuzetke.
  3. Može ih biti više u jednoj klasi.
  4. Izvršavaju se nakon punjenja klase u memoriju, a pre stvaranja prvog objekta date klase.
  5. Izvršavaju se nakon izvršavanja konstruktora natklase.

6. zadatak

Šta ispisuje sledeći program na programskom jeziku Java? Upisati 0 ukoliko se program ne prevodi, odnosno 1 ukoliko postoji greška u vreme izvršavanja programa.

class A {
    private void m() {
        System.out.print("a");
    }
    public A() {
        m();
    }
}

class B extends A {
    public void m() {
        System.out.print("b");
    }
    public B() {
        m();
    }
}

public class Test {  
    public static void main(String args[]) {
        new B();
    }
}

Odgovor:

7. zadatak

Modifikator abstract je moguće staviti ispred definicije:

  1. metoda
  2. klase
  3. interfejsa
  4. nabrajanja
  5. polja klase

8. zadatak

Šta važi za throw na programskom jeziku Java?

  1. Može se koristiti u statičkim inicijalizacionim blokovima.
  2. Predstavlja operator jezika Java.
  3. Parametar mu je referenca na objekat klase koja mora biti izvedena iz klase Exception.
  4. Može se koristiti bez parametra.
  5. Predstavlja ključnu reč jezika Java.

9. zadatak

Ukoliko su definisani sledeći interfejsi:

   interface I1 {int m(int i);}

   interface I2 {int m(int i, int k, int j);}

   interface I3 {double m(int n);}

   interface I4 {double m(double x, double y);}

   interface I5 {int m(int i);}

koje od navedenih naredbi su ispravne?

  1. int i=1,j=2; I5 i5=(i+j)->i*j;
  2. I3 i3=k->{double p=1; for (int i=1; i<=k; p*=i++); return p;};
  3. I2 i2=(x,y,z)->x+y-z;
  4. I4 i4=(a,b)->{a*b};
  5. I1 i1=n->n+5;

10. zadatak

Koja tvrđenja su tačna na programskom jeziku Java?

  1. Ako je pre ulaska u wait() pozvan metod notifyAll() za isti objekat, nit koja poziva wait() neće biti blokirana.
  2. Po ulasku u wait(), nit se blokira (suspenduje) i oslobađa se brava objekta.
  3. Metodi wait(), notify() i notifyAll() moraju da se pozivaju uz sinhronizovanih delova koda.
  4. Metod notify() budi samo jednu nit i to uvek onu koja je najduže čekala.
  5. wait() je metod klase Thread.