OO2/Probni testovi 2021

Izvor: SI Wiki
< ОО2
Datum izmene: 17. april 2021. u 17:33; autor: KockaAdmiralac (razgovor | doprinosi) (Rešenja za 9.5, ako je neko imao sve nek ispravi)
Pređi na navigaciju Pređi na pretragu
  • 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. Implementacija 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);
     }
}
  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

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

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