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

Извор: SI Wiki
Пређи на навигацију Пређи на претрагу
  • За питања са више одговора, тачни одговори су подебљани и уоквирени.
  • За питања за које се одговори уносе, тачни одговори су подвучени и сакривени: овако.
  • Притисните на следеће дугме како бисте их сакрили или открили:

Колоквијум - самотестирање

На сваком питању је било или могуће изабрати једно или више решења или унети одговор у поље.

1. задатак

Које тврдње за језик Јава су тачне?

  1. Интерпретирање бајткода је по правилу ефикасније од извршења програма на машинском језику.
  2. ЈИТ (Јуст Ин Тиме) преводилац преводи изворни код програма у бајткод.
  3. Имплементација виртуелне машине зависи од конкретне платформе, али интерфејс према бајткоду остаје исти.
  4. Изворни код програма се интерпретира од стране виртуелне машине.
  5. Изворни код програма се назива бајткод.

2. задатак

Шта исписује следећи програм?

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. задатак

Дат је следећи програм:

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

Одабрати тачан одговор

  1. Код је синтаксно неисправан.
  2. Програм исписује вредности 0 0.
  3. Програм исписује вредности 0 1.
  4. Програм исписује вредности 1 0.
  5. Програм исписује вредности 1 1.

4. задатак

За пакете на језику Јава важи:

  1. Постоје типови који могу припадати већем броју пакета.
  2. Свака класа мора бити део неког пакета.
  3. Увожењем пакета не увозе се и сви потпакети тог пакета.
  4. Све класе које се налазе у истој датотеци су део истог пакета.
  5. Пакет java.lang се аутоматски увози.
  6. У датотеци може постојати више наредби: package назив_пакета;

5. задатак

Које тврдње су тачне за нестатичке иницијализационе блокове?

  1. Извршавају се након извршавања конструктора своје класе.
  2. Могу бацати изузетке.
  3. Може их бити више у једној класи.
  4. Извршавају се након пуњења класе у меморију, а пре стварања првог објекта дате класе.
  5. Извршавају се након извршавања конструктора наткласе.

6. задатак

Шта исписује следећи програм на програмском језику Јава? Уписати 0 уколико се програм не преводи, односно 1 уколико постоји грешка у време извршавања програма.

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

Одговор: аб

7. задатак

Модификатор абстрацт је могуће ставити испред дефиниције:

  1. метода
  2. класе
  3. интерфејса
  4. набрајања
  5. поља класе

8. задатак

Шта важи за тхроw на програмском језику Јава?

  1. Може се користити у статичким иницијализационим блоковима.
  2. Представља оператор језика Јава.
  3. Параметар му је референца на објекат класе која мора бити изведена из класе Еxцептион.
  4. Може се користити без параметра.
  5. Представља кључну реч језика Јава.

9. задатак

Уколико су дефинисани следећи интерфејси:

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

које од наведених наредби су исправне?

  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. задатак

Која тврђења су тачна на програмском језику Јава?

  1. Ако је пре уласка у wait() позван метод notifyAll() за исти објекат, нит која позива wait() неће бити блокирана.
  2. По уласку у wait(), нит се блокира (суспендује) и ослобађа се брава објекта.
  3. Методи wait(), notify() и notifyAll() морају да се позивају из синхронизованих делова кода.
  4. Метод notify() буди само једну нит и то увек ону која је најдуже чекала.
  5. wait() је метод класе Thread.