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

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

+85

  • Кто проходил: Андрей1
  • Дата прохождения: 28.11.2018
Что выведет на консоль следующий код:
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
Что будет выведено на экран в результате работы данного кода?
public class Test { 
   public static void main(String[] s) { 
       A a = new B(); 
       a.b(); 
   } 
} 
 
class A { 
   void a() { 
       System.out.println("A-a"); 
   } 
 
   void b() { 
       System.out.println("A-b"); 
       a(); 
   } 
} 
 
class B extends A { 
   void a() { 
       System.out.println("B-a"); 
   } 
 
   void b() { 
       System.out.println("B-b"); 
       super.b(); 
   } 
} 
Ваши ответы
B-b
A-b
B-a
Объяснение:

В примере создаётся объект класса B, в котором переопределены методы a() и b(). Поэтому при обращении к этим методам будут вызываться их переопределённые варианты. Условно последовательность действий можно описать так:

Какие из следующих методов выбрасывают исключение InterruptedException?
Ваши ответы
sleep
Какой будет результат компиляции и выполнения данного кода?
public class Test1 { 
   public static void main(String[] args) { 
       int i = 1; 
       i <<= 1; 
       float f = 1; 
       f = f << 1; 
       System.out.println( i + ", " + f); 
   } 
} 
Ваши ответы
Ошибка компиляции
Объяснение:

operator << cannot be applied to float,int

Является ли пустой файл разрешенным для компиляции файлом исходного кода?
Ваши ответы
Да
Перечислите все методы, которые есть у класса Object.
Ваши ответы
equals
Что будет результатом выполнения программы?
package tutorial.base; 
 
public class TypesTutorial { 
 
   public static void main(String... args) { 
       A alpha = new B(); 
   } 
} 
 
class A { 
   A(){ 
       System.out.print("A"); 
       a(); 
   } 
 
   void a() { 
       System.out.print("a"); 
   } 
} 
 
class B { 
   B() { 
       System.out.print("B"); 
       a(); 
   } 
 
   void a() { 
       System.out.print("b"); 
   } 
} 
Ваши ответы
Ничего из вышеперечисленного
Объяснение:

Ошибка компиляции в методе main, так как классы не связаны отношением наследования.

Какой результат выполнения данного кода:
Integer i = 5000; 
System.out.println(i.hashCode()); 
Ваши ответы
5000
Объяснение:

Классы-оболочки целочисленных типов (Byte, Character, Short, Integer) в качестве хэш-кода возвращают хранящееся в них значение.

Какой результат выполнения данного кода:
System.out.println( 0.3 == 0.1d + 0.1d + 0.1d ); 
Ваши ответы
false
Объяснение:

Правильный ответ на этот вопрос связан со способом представления дробных чисел в памяти компьютера. Напомним, что они хранятся в двоичном коде.
Если попробовать перевести 0.1 в двоичную систему счисления, то получится БЕСКОНЕЧНАЯ двоичная дробь 0,000110011001100110011001100... Поскольку в памяти компьютера число представляется с помощью КОНЕЧНОГО количества двоичных разрядов (например, под значение типа double отводится 64 бита), то бесконечная двоичная дробь просто округляется. То число, которое получается в результате округления, будет чуть-чуть (на одну многомиллионную) отличаться от 0.1. Аналогично, двоичное представление для 0.3 будет чуть-чуть отличаться от 0.3.
Получается, что в примере сравниваются два числа, каждое из которых примерно равны 0.3, но они не равны между собой.
Если взять числа с другим двоичным представлением, будет другой результат. Например, System.out.println( 0.375 == 0.125d + 0.125d + 0.125d ) выводит true.

Какой результат выполнения этой программы ?
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)); 
   } 
}
Ваши ответы
Ошибка времени выполнения: java.lang.ArrayIndexOutOfBoundsException
Объяснение:

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 Test { 
   public static void main(String\u005B\u005D args) { // 2 
       char a = '\u005B'; // 3 
       char c = '\u005D'; // 4 
       System.out.println(a * c); // 5 
   } 
}
Ваши ответы
5
Объяснение:

Последовательности, начинающиеся с \u, можно даже указывать за пределами символьных констант или строк. Приведенный пример корректен, так как последовательности \u005B и \u005D соответствуют символам [ и ].

Можно ли динамически менять размер массива?
Ваши ответы
Да, можно
Объяснение:

Размер массива определяется при его создании и в дальнейшем не может изменяться.

Что будет результатом запуска такого кода?
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); 
   } 
} 
Ваши ответы
Ошибка компиляции в строке 4
Объяснение:

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

Как нужно изменить место с меткой //1, чтобы код компилировался?
public class Test { 
   public static void main(String s[]) { 
       int i = getX(); 
   } 
   private int getX() { //1 
       return 10; 
   } 
} 
Ваши ответы
public int getX() {
Какие из следующих методов определены в классе Object?
Ваши ответы
run()