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

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

+126

  • Кто проходил: MartinK
  • Дата прохождения: 17.05.2019
Какой результат выполнения этой программы ?
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);
удаляется первый элемент, т.е. семёрка и, шестёрка становится на своё

Какой результат выполнения данной программы ?
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=2" без кавычек
Какие из перечисленных идентификаторов являются корректными?
Ваши ответы
_cb
_1c$ac
abc
if_
$ac
Что напечатает следующий фрагмент кода:
int x = 0; 
int y = 10; 
do { 
   y--; 
   ++x; 
} while (x < 5); 
System.out.print(x + "," + y); 
Ваши ответы
5,5
Что выведет следующий код?
int i = 0; 
i++; 
System.out.print(i); 
i = i++; 
System.out.println(i); 
Ваши ответы
11
Объяснение:

Результат выражения i++ при i=1 будет все равно 1, так как это постфиксный оператор.
После выполнения постфиксного оператора, значение i станет равным 2, но i пере запишется единицей в результате выполнения оператора присваивания i = i++

Что выведет на экран следующий код?
public class Test{ 
   public static void main(String[] args){     
       char c1 = '1'; 
       char c2 = '\u0031'; 
       char c3 = 49; 
       System.out.println(c1 + c2 + c3); 
   } 
} 
Ваши ответы
147
Объяснение:

Важно знать, что значение для переменной типа char можно задать несколькими способами: непосредственно символом, unicode-кодом этого символа, а также целым числом. Так же важно знать, что значения типа char не "склеиваются", а складываются.

Что будет напечатано следующим кодом?
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.

Какие из перечисленных объявлений переменных не допустимы в Java?
Ваши ответы
int goto;
int if;
int else;
Что произойдет в результате выполнения следующего кода?
class A {} 
class B extends A {} 
 
public class Test {  
   static public  void main(String args[]) { 
       B b = new B(); 
       A a = b; 
       if (a.hashCode() == b.hashCode()) 
           System.out.print("Passed"); 
   } 
} 
Ваши ответы
В консоль выведется строка "Passed"
Объяснение:

Ссылки a и b указывают на один и тот же объект, поэтому в консоль выведется строка "Passed". Экземпляру класса A можно присвоить экземпляр класса B в силу полиморфизма.

Выберите единственный верный из приведенных результат компиляции и выполнения кода.
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" без кавычек
Какое ключевое слово используется, чтобы показать, что с методом может работать не более чем один поток одновременно?
Ваши ответы
synchronized
Каким будет результат компиляции и запуска следующей программы?
public class App1 { 
   public static void main(String[] args) { 
       System.out.println(addToString("12345678910",',')); 
   } 
 
   public static StringBuffer addToString(String s, char c) { 
       StringBuffer b = new StringBuffer(s); 
       int p = 0; 
       for (int i = 1; i < b.length(); i++) { 
           if (i%3 == 0) { 
               b.insert(b.length()-i-p, c);  
               p++; 
           } 
       } 
       return b; 
   } 
} 
Ваши ответы
Компиляция пройдет успешно, но во время выполнения возникнет ArrayIndexOutOfBoundsException
Объяснение:

Следует учитывать, что строка динамически изменяется:
при i = 3 символ вставляется в 8-ю позицию; получаем b = "12345678,910", b.length() = 12
при i = 6 символ вставляется в 5-ю позицию; получаем b = "12345,678,910", b.length() = 13
при i = 9 символ вставляется во 2-ю позицию; получаем b = "12,345,678,910", b.length() = 14
при i = 12 цикл продолжает выполняться (ведь 12 < 14), происходит попытка вставить символ в -1-ю позицию - и тут выбрасывается exception

Что будет выведено на экран после выполнения следующего кода?
class Test { 
   public static void main(String[] args){ 
       int x = 1; 
       Integer y = new Integer(x); 
       int [] z = {x}; 
 
       func(x, y, z); 
 
       System.out.print(x); 
       System.out.print(y); 
       System.out.println(z[0]); 
   } 
 
   static void func (int x, Integer y, int[] z) { 
       x++; 
       y++; 
       z[0]++; 
   } 
} 
Ваши ответы
112
Каким будет результат компиляции следующего кода:
public class ThreadTest { 
   public static void main(String[] args) throws InterruptedException { 
       Thread thread = new Thread(new TestThread()); 
       System.out.println("Hello, it's a main thread"); 
       thread.start(); 
       thread.join(); 
       System.out.println("Good bye"); 
   } 
} 
 
class TestThread implements Runnable { 
 
   @Override 
   public void run() { 
       System.out.println("Hello, it's a simple thread"); 
   } 
 
   public void join() { 
       System.out.println("Hello, it's a method join()"); 
   } 
} 
Ваши ответы
Hello, it's a main thread
Hello, it's a simple thread
Hello, it's a method join()
Good bye
Откомпилируется ли следующий код?
public class Person { 
   public final String name; 
   int age; 
} 
Ваши ответы
Да
Объяснение:

Поле с модификатором final должно быть проинициализировано при объявлении либо значение должно быть присвоено в каждом конструкторе. Здесь ни того, ни другого нет, поэтому произойдёт ошибка компиляции.