Результаты прохождения теста Java основы пользователем ilya201177

Результат прохождения теста "Java основы" - Пройден

+86

  • Кто проходил: ilya201177
  • Дата прохождения: 05.12.2018
Что произойдет при компиляции и запуске данного кода?
public class Performer { 
   public static void main(String[] args) { 
       if (args instanceof Object) { // 1  
           System.out.println("yes"); 
       } else { 
           System.out.println("no"); 
       } 
   } 
} 
Ваши ответы
напечатает "yes" без кавычек
Объяснение:

Напечатает yes, так как массив это тоже обьект

Что выведет на консоль следующий код:
public class Exam  { 
   public static void main(String[] arg) { 
       Object obj = null; 
       String str = new String("str"); 
       str = (String) obj; 
       obj = new String("obj"); 
       System.out.print(obj + ", " + str);   
   } 
} 
Ваши ответы
obj, null
Какой результат выполнения этой программы ?
import java.util.ArrayList; 
public class Test { 
   public static void main(String[] args) { 
       ArrayList<Integer> array = new ArrayList<Integer>(2); 
       array.add(5); 
       array.add(6); 
       array.add(1, 7); 
       System.out.print(array.indexOf(6)); 
 
       array.remove(1); 
       System.out.println(array.indexOf(6)); 
   } 
}
Ваши ответы
21
Объяснение:

ArrayList array = new ArrayList(2);
в данном случае двойка означает размер конейнера, т.е. всего зарезервировано место под два элемента. В действительности, размер контейнера равен нулю, т.к. в нём пока нет элементов. Это к справке.
Далее:
array.add(5);
array.add(6);
как мы знаем, ArrayList это списочный последовательный контейнер и элементы в нём хранятся в порядке добавления. Т.е.
нулевой элемент - пятёрка
первый элемент - шестерка.
такая форма добавления:
array.add(1, 7);
означает, цифру семь нужно вставить в первый элемент, т.к. этот контейнер последовательный и порядок добавления в него слева направо, то при добавлении элемента, цифра шесть сместиться вправо и станет вторым элементом в контейнере
0 1 2 - элементы в контейнере.
5 7 6 - числа
Далее, array.indexOf(6)
печатаем индекс числа шесть, он равен двойке.
Затем, array.remove(1);
удаляется первый элемент, т.е. семёрка и, шестёрка становится на своё

Что будет выведено на консоль, если скомпилировать и запустить следующий код:
public class Main { 
   public static void main(String s[]) { 
       System.out.println(4|3); 
   } 
} 
Ваши ответы
7
Объяснение:

4 or 3 = 100 or 011 = 111 = 7

Что произойдёт если скомпилировать следующий код?
public class MyFirst { 
   public static void main(String[] args){   
       int i, j; 
       i = 10; 
       j = 20; 
       while(++i < --j); 
       System.out.println(i); 
   } 
} 
Ваши ответы
Вывод на экран 15
Объяснение:

В языке Java синтаксически допустимы пустые операторы.

Из какой структуры данных "сборщик мусора" удалит все элементы у которых исчезла последняя ссылка на их ключ в этой структуре?
Ваши ответы
Каким будет результат выполнения следующего кода?
String s1 = "str"; 
String s2 = "str"; 
System.out.println("Result: " + s1 == s2); 
Ваши ответы
false
Объяснение:

Операции сравнения имеют более низкий приоритет, чем операция конкатенации.

Каким будет результат выполнения данного кода?
public class Main { 
   public static void main(String[] args) { 
       int i = 0; 
       int j = 1; 
       System.out.println(i += (j < i) ? (2) : (3)); //1 
   } 
} 
Ваши ответы
3
Объяснение:

В данном примере используется условное выражение (условие) ? (значение1) : (значение2) . В этом выражении перед знаком вопроса ставится условие, а после него через : идут 2
возвращаемых значения. Первое будет возвращено в случае если условие вернёт значение true, в противном случае будет возвращено 2-ое значение.

Что произойдет после компиляции и выполнения данного кода?
public class MyClass{ 
   static int i; 
   public static void main(String[] args){ 
       System.out.println(i); 
   } 
} 
Ваши ответы
0
Объяснение:

Все численные поля класса инициализируются нулем по умолчанию.

Что произойдет в результате компиляции и выполнения программы:
class HashTest { 
   private static Set<String> set = new LinkedHashSet<String>(); 
   public static void main(String[] args) { 
       set.add("one"); 
       set.add("two"); 
       set.add("three"); 
       set.add("/u000a"); 
       set.add("/u000d"); 
       set.add("/u000c"); 
       set.add("1"); 
       set.add("2"); 
       set.add("3");         
       for (String string : set) { 
           System.out.print(string + " "); 
       } 
   }  
} 
Ваши ответы
one two three /u000a /u000d /u000c 1 2 3
Объяснение:

LinkedHashSet запоминает порядок вставки элементов. По мере вставки вхождений в таблицу они присоединяются к двунаправленному связному списку.
Итератор будет перечислять значения в том порядке, в каком они были вставлены.

Какие из перечисленных методов объявлены корректно?
Ваши ответы
void doAnyth(int i, Object...args) {}
void modifyTotal(Object ... args) {}
void doSmth(Object ...args) {}
Объяснение:

Формальный параметр, описывающий переменное количество аргументов метода, разрешается использовать только один раз, и он должен стоять на последнем месте.

Какой будет результат выполнения кода:
class A {  
   private int counter = 0;  
   public static int getInstanceCount() { 
       return counter; 
   }  
   public A() { 
       counter++; 
   } 
} 
public class B { 
   public static void main(String ar[]) { 
       A a1 = new A(); 
       A a2 = new A(); 
       A a3 = new A(); 
       System.out.println(A.getInstanceCount()); //1 
   } 
}    
Ваши ответы
Ошибка компиляции класса А
Объяснение:

Нельзя использовать в статическом методе нестатические поля класса.

Что будет выведено на экран?
public class TestMethods{ 
   public static void main(String[] args){ 
       TestMethods test = new TestMethods(); 
       Thread anotherThread = new Thread("Thread#2"){ 
           public void run(){ 
               staticMethod(); 
           } 
       }; 
       anotherThread.start(); 
       test.instanceMethod(); 
   } 
 
   public static synchronized void staticMethod(){ 
       System.out.println("Running static method"); 
       try{ 
           Thread.sleep(1000); 
       } catch (InterruptedException e){ 
           System.out.println(Thread.currentThread().getName() + " interrupted!"); 
       } 
       System.out.println("Exiting static method"); 
   } 
 
   public synchronized void instanceMethod(){ 
       System.out.println("Running instance method"); 
       try{ 
           Thread.sleep(1000); 
       } catch (InterruptedException e){ 
           System.out.println(Thread.currentThread().getName() + " interrupted!"); 
       } 
       System.out.println("Exiting instance method"); 
   } 
} 
Ваши ответы
Невозможно предсказать.
Объяснение:

Вызов синхронизированных статических методов и не статических будет происходить параллельно, т.к. объекты синхронизации для них разные (для не статического - это объект test, а для статического - Test.class)

Что произойдет в результате компиляции и выполнения следующего кода?
import java.util.*; 
public class Main { 
   public static void main(String[] args) { 
       try { 
           ArrayList<Integer> ar = new ArrayList<Integer>(); 
           List temp = ar; //1 
           temp.add(new java.util.Date()); //2 
           temp.add(new Float(1.66)); 
           Iterator it = ar.iterator(); 
           while (it.hasNext()) 
               System.out.println(it.next()); 
           System.out.println(ar.get(0)); 
       } catch (Exception e) { 
           System.out.println(e.getClass()); 
       } 
   } 
} 
Ваши ответы
Успешное выполнение программы
Что будет результатом компиляции и выполнения следующего кода?
public class Base { 
 
   public Object print() { 
       return "Object from base method"; 
   } 
 
   public static void main(String[] args) { 
       Base test = new Child(); 
       System.out.println(test.print()); 
   } 
 
} 
 
class Child extends Base { 
 
   public String print() { 
       return "String from child method"; 
   } 
} 
Ваши ответы
Object from base method
Объяснение:

Переопределенный метод производного класса может вернуть тип, производный от типа, возвращаемого методом базового класса.