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

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

+52

  • Кто проходил: Андрей1
  • Дата прохождения: 05.02.2019
Может ли метод main быть объявлен как final?
Ваши ответы
Да
Какие интерфейсы расширяют интерфейс Collection.
Ваши ответы
Set
Какой результат будет у данного кода?
class Alien { 
 String invade(short ships) { return "a few"; } 
 String invade(short... ships) { return "many"; } 
} 
public class Defender { 
 public static void main(String [] args) { 
   System.out.println(new Alien().invade(7)); 
 } 
} 
Ваши ответы
Ошибка компиляции
Объяснение:

Константа 7 по умолчанию имеет тип int. При вызове функции неявное сужающее преобразование int → short не выполняется, поэтому происходит ошибка компиляции.

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

4 or 3 = 100 or 011 = 111 = 7

Является ли допустимым отсутствие декларации package в исходном коде?
Ваши ответы
Да
Объяснение:

Package statement is optional.
For small programs it's common to omit it, in which case Java creates what it calls a default package.

Как можно уничтожить объект в Java?
Ваши ответы
этого нельзя сделать вручную
Объяснение:

Этого нельзя сделать вручную. Только Garbage Collector может уничтожить объект. Если всем ссылкам на объект присвоить null, то сам объект станет доступным для сборщика мусора

Что произойдет в результате компиляции и выполнения программы:
public class Main {     
   public static void main(String[] args) { 
       String strA = "text"; 
       String strB = "text"; 
       strA += "1"; 
       strB += "1"; 
       System.out.println(strA != strB); 
       strA = "text1"; 
       strB = "text1"; 
       System.out.println(strA != strB); 
   } 
}
Ваши ответы
true
false
Объяснение:

Во-первых, нужно помнить, что строковые литералы в Java - это, фактически, объекты (String). При этом, если в программе несколько раз встречается один и тот же строковый литерал, то ему будет соответствовать один и тот же объект. Поэтому во втором случае strA == strB (и, соответственно, выводится false).
Во-вторых, нужно помнить, что строки (String) в Java - это неизменяемые объекты. Поэтому, когда к объекту strA "приклеивается" другая строка (strA += "1"), на самом деле создаётся новый объект, содержащий "text1". И когда приклеиваем к объекту strB - создаётся ещё один (другой!) объект, также содержащий "text1". Следовательно, strA != strB, и в первом случае выводится true.
Фактически, команда strA += "1" разворачивается в strA = new StringBuilder().append(strA).append("1").toString();
И если это выполнится два раза, то получится два разных объекта, пусть и с одинаковым содержимым.

Выберите единственный верный из приведенных результат компиляции и выполнения кода.
public class Strings { 
   public static void main(String[] args) { 
       String s1 = new String("Bicycle"); 
       String s2 = new String("bicycle"); 
       System.out.println(s1.equals(s2) == s2.equals(s1)); 
   } 
} 
Ваши ответы
Программа выведет "true" без кавычек
Что будет напечатано в результате выполнения данного кода?
public class Cycle { 
   public static void main(String...args) { 
       int i = 1; 
       do while(i < 1) 
           System.out.println("i = " + ++i); 
       while (i > 1); 
   } 
} 
Ваши ответы
Ошибка компиляции
Объяснение:

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

Что будет результатом компиляции и выполнения данного кода?
public class Test extends A { 
   public int i = 1; 
   public static void main(String... args) { 
       System.out.print(new Test().i); 
       System.out.print(new A().i); 
       System.out.print( ((A)new Test()).i ); 
   } 
} 
 
class A { 
   public int i = 2; 
} 
Ваши ответы
121
Объяснение:

Поля не перезаписываются

Что произойдет при попытке откомпилировать/запустить следующий код:
abstract class Animal { 
   static { 
       System.out.println("Inside Animal"); 
   } 
} 
 
class Cat extends Animal { 
   static { 
       System.out.println("Inside Cat"); 
   } 
} 
 
class Dog extends Animal { 
   static { 
       System.out.println("Inside Dog"); 
   } 
} 
 
public class Main { 
    public static void main(String[] args){ 
         Animal cat = new Cat(); 
         Animal dog = new Dog(); 
    } 
}
Скомпилируется ли следующий код:
public abstract class One { 
   public abstract int doJob(); 
} 
class Two extends One { } 
Какие из следующих утверждений верны?
Что произойдет в результате компиляции и выполнения кода:
01: interface TheInterface { 
02:    void print(); 
03: } 
04:  
05: class TheClass implements TheInterface { 
06:    public void print() { 
07:       System.out.println("TheClass"); 
08:    } 
09: } 
10:  
11: public class ClassConversion { 
12:    public static void main(String[] args) { 
13:       TheClass c = new TheClass(); 
14:       TheInterface i = c; 
15:       i.print(); 
16:    } 
17: } 
Что выведется на консоль?
public class Test {     
   { 
       System.out.println("1"); 
   } 
 
   Test () { 
       System.out.println("2"); 
   } 
 
   static { 
       System.out.println("3"); 
   } 
 
   { 
       System.out.println("4"); 
   } 
 
   public static void main(String[] args) { 
       new Test(); 
   } 
}