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

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

+85

  • Кто проходил: Mikhail
  • Дата прохождения: 30.01.2019
Что будет напечатано в результате выполнения данного кода?
public class Cycle { 
   public static void main(String...args) { 
       int i = 1; 
       do while(i < 1) 
           System.out.println("i = " + ++i); 
       while (i > 1); 
   } 
} 
Ваши ответы
Программа выполнится, но ничего не выведет на экран
Объяснение:

Пониманию исходного кода мешает отстутствие фигурных скобок.
Расставим их:

Рассмотрим следующий код:
import java.util.*; 
class MyDataStore { 
   public static void main(String [] args) { 
       // Вставьте код 
       structure.put("a", 420); 
       System.out.println(structure.get("a")); 
   } 
} 
 
Какие из приведённых вариантов можно вставить в строчку 4 (независимо друг от друга), чтобы класс успешно компилировался и выполнялся?
Ваши ответы
Map structure = new HashMap();
Что выведет на консоль следующий код:
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
Что будет выведено на экран?
Integer a = 128; 
Integer b = 128; 
Integer c = -128; 
Integer d = -128; 
System.out.println(a == b); 
System.out.println(c == d); 
Ваши ответы
false
true
Объяснение:

Т.к. в Integer pool попадают значения от -128 до 127

Отметьте варианты ответа, в которых пары чисел равны друг-другу (2 правильных ответа):
Ваши ответы
5 и 05
0x5A и 90L
Объяснение:

Цифры, начинающиеся с нуля, в Java являются восьмеричными, а с 0x - шестнадцатеричными.
05 = 5, 010 = 8, 0x5A = 90, а числа 09 в восьмеричной системе существовать не может.

Что будет напечатано на экран следующим кодом:
class Main { 
   public static void main(String[] args) { 
       int i = 0; 
       System.out.println(++i == i++); 
       System.out.println(i++ == i++); 
   } 
} 
Ваши ответы
true
false
Какой результат будет получен при компиляции и выполнении данного кода:
public class Main { 
   public static void main(String [] str) { 
       Boolean b1 = new Boolean("false");                //1 
       if (b1 = true) System.out.println("b1=" + b1);    //2 
 
       boolean b2 = false;         
       if (b2 = true) System.out.println("b2=" + b2);    //3 
 
       int i = 1;         
       if (i = 2) System.out.println("i=" + i);          //4 
   }     
} 
Ваши ответы
Ошибка компиляции в строке 4
В каком порядке должны размещаться следующие операторы?
Ваши ответы
1. Package statement
2. Imports
3. Class or interface definitions
Класс Dog создан в пакете animals, а класс Peter - в пакете humans. Выберите все подходящие варианты описания конструкции import, чтобы класс Peter мог создавать и использовать объекты класса Dog?
Ваши ответы
import animals.Dog;
import animals.*;
Объяснение:

Для этого используется конструкция import package.class, где class может быть как конкретным классом, так и символом *.

Какой будет результат выполнения кода:
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 Main { 
   public static void main(String s[]) { 
       System.out.println(true ? false : true == true ? false : true); 
   } 
} 
Ваши ответы
false
Объяснение:

Аналогично:

Выберите варианты комментариев (в некотором исходном файле Java), которые не приведут к ошибке.
Ваши ответы
/* This is a valid comment in java. */
// This is a valid comment in java
/** This is a valid comment in java. */
Каким будет результат компиляции и выполнения данного кода:
public class Switch { 
   public static void main(String[] args) { 
       int i = 3; 
       switch(i) { 
           default: 
               System.out.println("default"); 
           case 1: 
               System.out.println("1"); 
           case 2: 
               System.out.println("2"); 
       } 
   } 
} 
Ваши ответы
default
1
2
Объяснение:

Ключевы слова case и default могут идти в любом порядке. Если не использовать ключевое слово break, то программа будет идти на следующий по порядку case.

Что будет выведено на экран?
class A { 
   int i = 0; 
   public int increment() { 
       return ++i; 
   } 
} 
 
public class B extends A { 
   int i = 10; 
   public int increment() { 
       return ++i; 
   } 
 
   public static void main(String[] args) { 
       A obj = (A) new B();  
       System.out.println(obj.increment()); 
   } 
} 
Ваши ответы
11
Объяснение:

Метод A.increment() перекрывается в классе B.
Поэтому, вне зависимости от типа переменной obj, будет вызываться метод, соответствующий реальному типу объекта - т.е. B.increment().
Этот метод будет использовать переменную i, объявленную в том же классе B и имеющую начальное значение 10.
Результирующее значение - 11.

Какой будет результат компиляции и выполнения следующей программы?
import java.util.ArrayList; 
import java.util.List; 
 
public class Test { 
   public static void main(String a[]) { 
       List<Integer> list = new ArrayList<Integer>(); 
       list.add(null); 
       for (Integer i : list) { 
           System.out.println(i); 
       } 
   } 
} 
Ваши ответы
Программа не скомпилируется