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

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

+42

  • Кто проходил: glazko1
  • Дата прохождения: 12.03.2019
Что напечатает следующий код:
public class Test { 
   int i = 1; 
 
   void add(int i) { 
       i += i; 
       System.out.println(i); 
   } 
 
   public static void main(String args[]) { 
       Test t = new Test(); 
       t.add(5); 
   } 
} 
Ваши ответы
10
Объяснение:

Внутри метода add мы работаем только с параметром метода i, так как для обращения к переменной класса i (особенно в данном случае совпадения имен) необходимо употребить ключевое слово this.

Какой будет результат компиляции и выполнения следующего кода?
public class Test { 
   public static void main(String[] args) { 
       for (final int i : new int[] { 1, 2, 3 }) { 
           System.out.println(i + 1); 
       } 
   } 
} 
Ваши ответы
2
3
4
Объяснение:

Этот цикл for разворачивается компилятором в примерно такую конструкцию:

Каким будет результат выполнения программы?
class A { 
   static byte m1() { 
     final char c1 = '\u0001'; 
     return c1;                                  // 1 
   } 
   static byte m2(final char c2) { return c2; }  // 2 
   public static void main(String[] args) { 
       char c3 = '\u0003';  
       System.out.print("" + m1() + m2(c3));         // 3 
   } 
} 
Ваши ответы
Ошибка компиляции в строке 2
Объяснение:

Ошибка компиляции в строке 2 возникает из-за невозможности выполнить неявное преобразования типа выражения в return (char) к типу, указанному в заголовке метода (byte).
Ошибки можно избежать, если выполнить явное преобразование типа: "return (byte) c2;"
В похожей ситуации в строке 1 ошибка компиляции не возникает, потому что c1 - это константа и, фактически, компилятор имеет дело с выражением "return 1" - а это значение попадает в диапазон byte.

Допишите класс, реализующий интерфейс АА, который будет возвращать сумму возвращаемых значений методами а() двух приведенных классов.
interface AA { 
   int a(); 
} 
 
class A implements AA { 
   public int a() { 
       return 1; 
   } 
} 
 
class B implements AA { 
   public int a() { 
       return 1; 
   } 
} 
Ваши ответы
class D implements AA { 
   public int a() { 
       return new A().a() + new B().a(); 
   } 
} 
Что напечатает следующий фрагмент кода:
try { 
   int i = 5; 
} catch (Exception e) { 
   System.out.print("catch"); 
} finally { 
   System.out.print("finally"); 
} 
Ваши ответы
finally
Объяснение:

Блок finally выполняется в любом случае не зависимо от того, какой код находится в блоке try

Скомпилируется ли следующий участок кода?
public class GenericTest { 
   public static void main(String[] args) {         
       List<double> myList = new ArrayList<double>();  
   } 
} 
Ваши ответы
Нет
Объяснение:

Классы-генерики не могут быть параметризированы примитивными типами.
Поэтому стандартные коллекции в Java позволяют хранить только объекты.
См. docs.oracle.com/javase/..../collection.html

Какие 2 префикса являются JavaBean стандартом именования имён методов?
Ваши ответы
get
set
Каким будет результат компиляции и выполнения данного кода:
public class ByteTest { 
   public static void main(String[] s) { 
       byte b = 8; 
        m(b); 
        m(7); 
   } 
 
   static void m(byte b) { 
       System.out.print("byte"); 
   } 
} 
Ваши ответы
Программа выведет "bytebyte" без кавычек.
Объяснение:

Если в команде присваивания используется константное выражение со значением типа int, попадающим в диапазон byte, то компилятор автоматически сужает его тип. Поэтому команда byte b = 8; компилируется без ошибок. В других ситуациях, например, в вызове метода, такого не происходит. Поэтому на команде m(7); генерируется ошибка компиляции.

Что будет результатом запуска такого кода?
package tutorial.base; 
 
public class TypesTutorial { 
   public static void main(String... args) { 
       A alpha = new B(0); 
   } 
} 
 
class A { 
   A(int x){            // - 1 - 
       a(x);            // - 2 - 
   } 
 
   void a(int x) { 
       System.out.println("A-a: " + x); 
   } 
} 
 
class B extends A { 
   B(int x) {           // - 3 - 
       a(x);            // - 4 - 
   } 
 
   void a(int x) { 
       System.out.println("B-a: " + x); 
   } 
} 
Ваши ответы
А-a: 0
B-a: 0
Объяснение:

В классе A отсутствует конструктор по-умолчанию, поэтому конструктор класса B (потомок) первым делом должен явно вызвать один из обьявленных конструкторов класса-родителя.

Каким будет результат компиляции и запуска данного кода?
public class Main {  
 public static void main(String args[]) { 
    ClassA a = new ClassA(); 
    a.methodA(); 
 }  
} 
 
class ClassA { 
   public void methodA(){ 
       ClassB classB = new ClassB(); 
       System.out.println(classB.getValue()); 
   } 
} 
 
class ClassB { 
   public ClassC classC; 
   public String getValue() { 
       return classC.getValue(); 
   } 
} 
 
class ClassC { 
   public String value; 
   public String getValue() { 
       value = "ClassC"; 
       return value; 
   } 
} 
Ваши ответы
Код запустится и на экране отобразится слово "ClassC" без кавычек
Объяснение:

Возникнет NullPointerException, так как поле classC не инициализировано

Какой результат выдаст этот код:
int []a = {5,5}; 
int b = 1; 
a[b] = b = 0; 
System.out.println(Arrays.toString(a)); 
Что будет выведено на консоль?
public class Z { 
   public void print( Object o ) { 
       System.out.println( "Object" ); 
   } 
 
   public void print( String str ) { 
       System.out.println( "String" ); 
   } 
 
   public void print( Integer i ) { 
       System.out.println( "Integer" ); 
   } 
 
   public static void main(String[] args) { 
       Z z = new Z(); 
       z.print( null ); 
   } 
} 
Что будет выведено на консоль в результате компиляции и выполнения следующего класса: (предполагается, что все необходимые import'ы имеются)
public class A { 
   public static void main(String[] args) { 
       List<Integer> list = new ArrayList<Integer>(); 
       list.add(1); 
       list.add(0); 
       Integer[] array = null; 
       list.toArray(array); 
       System.out.println(list.get(1)); 
   } 
} 
Какой результат выполнения следующего кода:
public class MainClass { 
   public static void main(String args[]) { 
       int k = 2; 
       System.out.println( k << 3 >> k == k >> 1 << k); 
   } 
} 
Назовите дизассемблер Java, который входит в стандартную поставку JDK.