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

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

+74

  • Кто проходил: Андрей1
  • Дата прохождения: 01.02.2019
Что произойдет при запуске программы?
class TestClass { 
  int i = getInt(); 
  int k = 20; 
  public int getInt() {  return k+1;  } 
  public static void main(String[] args) { 
     TestClass t = new TestClass(); 
     System.out.println(t.i + "  " + t.k); 
  } 
} 
Ваши ответы
Будет выведено на печать 1 20
Объяснение:

Инициализация полей при создании объекта осуществляется в порядке их объявления.
В данном примере первым будет инициализироваться поле i. В это время поле k ещё не инициализировано (содержит нулевое значение), и выражение k+1 даст единицу.
После этого k получит значение 20.

Дан код. Каким будет результат выполнения программы?
public class Main { 
 
   public static void main(String... args) { 
       System.out.println("" + new Main().summ(3, 3)); 
   } 
 
   public int summ(int a, int b) { 
       try { 
           return a + b; 
       } finally { 
           if (a == b) 
               return 0;             
       } 
   } 
} 
Ваши ответы
0
Что будет напечатано следующим кодом?
public class Test { 
   static Boolean bo1 = new Boolean("true"); 
   static Boolean bo2 = new Boolean(false); 
 
   public static void main(String[] args) { 
       Boolean bo3 = new Boolean(bo1); 
       Boolean bo4 = new Boolean("bo2"); 
       System.out.println(bo1.equals(bo3)); 
       System.out.println(bo2.equals(bo4)); 
   } 
} 
Ваши ответы
true
true
Объяснение:

Конструктор Boolean(String) создаёт объект со значением true, если в него передана строка "true" (в любом регистре). В противном случае будет создан объект со значением false.
Поэтому объекты будут иметь следующие значения:
bo1 – true
bo2 – false
bo3 – true
bo4 – false
При сравнении объектов с одинаковым значением (bo1 и bo3, bo2 и bo4) метод equals() возвращает значение true.

Выберите модификаторы, применимые к полям класса:
Ваши ответы
static
Объяснение:

К полям класса применимы модификаторы public, protected, private, static, final, transient, volatile.

Какой код нужно вставить на место строки 1, чтобы корректно получить строковое представление переменной l?
public class Test {  
   static public  void main(String args[]) { 
       long l = 0; 
       String s = new String(); 
       // 1 
   } 
} 
Ваши ответы
s = "" + l;
Что произойдет после компиляции и выполнения данного кода?
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 запоминает порядок вставки элементов. По мере вставки вхождений в таблицу они присоединяются к двунаправленному связному списку.
Итератор будет перечислять значения в том порядке, в каком они были вставлены.

Какие 2 префикса являются JavaBean стандартом именования имён методов?
Ваши ответы
get
set
Как нужно изменить место с меткой //1, чтобы код компилировался?
public class Test { 
   public static void main(String s[]) { 
       int i = getX(); 
   } 
   private int getX() { //1 
       return 10; 
   } 
} 
Ваши ответы
public static int getX() {
Какой результат выполнения данной программы ?
public class Test { 
   private void method1() { 
       MyClass obj = new MyClass(); 
       obj.x = 1; 
       method2(obj); 
       System.out.println("obj.x="+obj.x); 
   } 
 
   private void method2(MyClass param) { 
       param.x = 2; 
       param = new MyClass(); 
       param.x = 3; 
   } 
 
   class MyClass { 
       int x; 
   } 
 
   public static void main(String[] args) { 
       new Test().method1(); 
   } 
}
Ваши ответы
Напечатает "obj.x=1" без кавычек
Из какой структуры данных "сборщик мусора" удалит все элементы у которых исчезла последняя ссылка на их ключ в этой структуре?
Ваши ответы
IdentityHashMap
Каким будет результат выполнения следующей программы?
import java.util.*; 
public class TestFormatter {         
   public static void main(String... args){ 
       Integer I1 = 0; 
       Integer I2 = -1; 
       Integer I3 = 1; 
       Formatter f = new Formatter(); 
       f.format("%1$b ", I1.toString()) 
        .format("%1$b ", I2.toString()) 
        .format("%1$b ", I3.toString()); 
       System.out.println(f.toString());         
   } 
} 
Ваши ответы
0 -1 1
Объяснение:

Последовательность %b используется для вывода логического значения. Соответствующий аргумент обрабатывается следующим образом: - если передаётся булево значение, то результатом будет его строковое представление ("true" или "false"); - если передаётся null, то результатом будет "false"; - во всех остальных случаях (как и в данном примере) результатом будет "true".

Определена следующая переменная строкового типа.
String s = "abc"; 
 
Какие из перечисленных ниже операций допустимы?
Ваши ответы
s = 2 * s; 
Объяснение:

Строковое преобразование (String conversion) в языке Java осуществляется неявно и только в одном случае: при конкатенации (склеивании) строки и не-строки. Например, допустимой будет такая конструкция: s = "" + (46 >> 2); // пустая строка + число В этом случае число будет неявно преобразовано в строку.

Какой результат выполнения программы:
import java.io.ByteArrayOutputStream; 
import java.io.ObjectOutputStream; 
import java.io.Serializable; 
 
public class NewClass { 
   public static void main(String[] args) throws Exception { 
       ByteArrayOutputStream bOut = new ByteArrayOutputStream(); 
       ObjectOutputStream oOut = new ObjectOutputStream(bOut); 
       Whole object = new Whole(); 
       oOut.writeObject(object); 
   } 
} 
 
class Whole implements Serializable { 
   public void writeObject(ObjectOutputStream out) { 
       System.out.println("Whole.writeObject()"); 
   } 
} 
Ваши ответы
Ошибка времени выполнения
Какой результат выполнения данного кода:
System.out.println( 0.1d ); 
Ваши ответы
0.1000000000000000
Объяснение:

Большинство дробных чисел не могут быть точно представлены с помощью типа double. Например, 0.1 в двоичном виде представляется в виде бесконечной двоичной дроби, а так как в памяти компьютера хранится только ограниченное количество разрядов, то бесконечный "хвост" отбрасывается и полученное значение чуть-чуть отличается от 0.1. Такой способ представления дробных чисел учитывается при выводе на экран, и отображается "правильное" значение. Если воспользоваться другим способом представления дробных чисел, можно получить другой результат. Например, команда System.out.println(new BigDecimal(0.1)); выведет реальное представление числа в памяти: 0.1000000000000000055511151231257827021181583404541015625