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

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

+132

  • Кто проходил: MartinK
  • Дата прохождения: 15.05.2019
Что выведет на экран следующий код ?
class TT { 
   private static int count = 0; 
   private final int id = ++count; 
 
   private void methodA () { 
       System.out.println("TT.methodA " + id); 
   } 
 
   public void methodTT(TT t) { 
       t.methodA(); 
   } 
} 
 
 
public class Test { 
   public static void main(String[] args) { 
       TT t1 = new TT(); 
       TT t2 = new TT(); 
       t2.methodTT(t1); 
   }     
} 
Ваши ответы
TT.methodA 1
Объяснение:

При выполнении кода создадутся два объекта класса TT с полями у первого класса id = 1 у второго id = 2. При вызове метода methodTT() объекта t2 в метод передастся ссылка на объект t1. Далее у объекта t1 вызовется метод methodA() который напечатает TT.methodA 1.

Какие из приведенных выражений будут истинными при выполнении кода:
String a = new String("hello"); 
String b = new String(a); 
String c = a; 
char[] d = { 'h', 'e', 'l', 'l', 'o' }; 
Ваши ответы
(a == c)
a.equals(b)
Каким будет результат?
String s1 = "abc"; 
String s2 = new String("abc"); 
String s3 = "abc"; 
System.out.println(s1 == s2); 
System.out.println(s1 == s3); 
System.out.println(s1 == "abc"); 
Ваши ответы
false
true
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)); 
   } 
}
Ваши ответы
21
Объяснение:

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);
удаляется первый элемент, т.е. семёрка и, шестёрка становится на своё

Какие из перечисленных идентификаторов являются корректными?
Ваши ответы
_cb
_1c$ac
abc
if_
$ac
Выберите единственный верный вариант компиляции и выполнения кода.
public class MyThread extends Thread { 
   public static void main(String[] args) { 
       new MyThread().start(); 
   } 
} 
Ваши ответы
Программа не выведет ничего.
Объяснение:

При запуске нового потока выполняется код, размещённый в методе run(). Класс MyThread наследует от класса Thread пустой метод run() - поэтому новый поток ничего не выведет и просто завершит свою работу, а после этого закончит свою работу и всё приложение.

Что напечатает следующий фрагмент кода:
int x = 0; 
int y = 10; 
do { 
   y--; 
   ++x; 
} while (x < 5); 
System.out.print(x + "," + y); 
Ваши ответы
5,5
Какими способом(-ами) может быть выражено число 28?
Ваши ответы
0Х1с
034
0х1с
0Х1С
Как можно уничтожить объект в Java?
Ваши ответы
этого нельзя сделать вручную
Объяснение:

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

Какой результат выполнения программы:
public class Bar { 
   public static void main(String args[]) { 
   label: 
       for (int i = 0; i < 5; ++i) { 
           for (int j = 0; j < 5; ++j) { 
               if (i > 2) break label; 
               System.out.print(j); 
           } 
           System.out.print(" "); 
       } 
   } 
}
Ваши ответы
01234 01234 01234
Объяснение:

Оператор break с меткой позволяет обойти идентифицируемый блок кода. Программа выдаст строку 01234 01234 01234, а затем выйдет из всех циклов и продолжит выполнение.

Какие определения интерфейса MyInterface являются корректными?
Ваши ответы
public interface MyInterface { 
    public int result(int i,int j); 
} 
public interface MyInterface { 
    public int i=0; 
    public int result(int i,int j); 
} 
interface MyInterface { 
    int result(int i,int j); 
} 
Какой результат выполнения следующего кода:
class A { 
   public void m(int k) { 
       System.out.println("class A, method m : " + ++k); 
   } 
} 
 
class B extends A { 
   public int m(int k) { 
       System.out.println("class B, method m : " + k++); 
       return k; 
   } 
} 
 
public class MainClass { 
   public static void main(String args[]) { 
       A a = new B(); 
       a.m(34); 
   } 
} 
Ваши ответы
Ошибка компиляции
Объяснение:

в методах
void m(int k) класса A
и int m(int k) класса B не совпадают типы возвращаемых значений, что и вызывает ошибку компилятора.

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

Аналогично:

Каким будет результат компиляции и выполнения данного кода:
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.

Что произойдет после компиляции и выполнения данного кода?
public class MyClass{ 
   static int i; 
   public static void main(String[] args){ 
       System.out.println(i); 
   } 
} 
Ваши ответы
null
0
1
Error: Variable i may not have been initialized
Объяснение:

Все численные поля класса инициализируются нулем по умолчанию.