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

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

+86

  • Кто проходил: Mikhail
  • Дата прохождения: 03.04.2019
Какие интерфейсы расширяют интерфейс Collection.
Ваши ответы
Set
Queue
Что будет выведено на экран в результате работы данного кода?
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(). Поэтому при обращении к этим методам будут вызываться их переопределённые варианты. Условно последовательность действий можно описать так:

Что будет выведено на консоль, а что будет записано в файл test.out ?
package question; 
 
import java.io.BufferedOutputStream; 
import java.io.FileOutputStream; 
import java.io.IOException; 
import java.io.PrintStream; 
 
public class TestOutput { 
   public static void main(String[] args) throws IOException { 
       PrintStream out = new PrintStream( 
                  new BufferedOutputStream(new FileOutputStream("test.out"))); 
       PrintStream console = System.out; 
       System.setOut(console); 
 
       System.out.println("FIRST OUTPUT"); 
 
       System.setOut(out); 
 
       System.out.println("SECOND OUTPUT"); 
 
       out.close(); 
 
       System.out.println("THIRD OUTPUT"); 
   } 
} 
Ваши ответы
В консоль:
FIRST OUTPUT
В файл:
SECOND OUTPUT
Объяснение:

Перенаправление стандартного вывода. С FIRST OUTPUT перенаправление происходит на консоль, поэтому выведется результат в консоль, SECOND OUTPUT происходит перенаправление в файл test.out, поэтому вывод пойдёт в файл. А THIRD OUTPUT не выведется ни в консоль, ни в файл, потому что поток out закрыт на предыдущей строке.

Какие из перечисленных идентификаторов являются корректными?
Ваши ответы
_cb
abc
if_
Какая максимальная длина имени переменной допустима в Java в соответствии со спецификацией?
Ваши ответы
не ограничена
Что выведет следующий код?
public class Main { 
   public static void main(String[] args) { 
       recur(99); 
   } 
   public static void recur(int a) { 
       if (a <= 100) { 
           System.out.println("a=" + a); 
           recur(++a); 
           System.out.println("a=" + a); 
       } 
   } 
} 
 
Ваши ответы
a=99
a=100
a=101
a=100
Объяснение:

Сначала выдаст значение а = 99,а после префиксного инкремента
выполнится снова метод recur с параметром 100, который выведет а=100, следующий recur будет вызван с параметром 101, но условие выполняться не будет, так как передаваемый параметр больше 100, и будет выведено на экран значение параметра а=101, закончится выполнение этого метода, и программа возвратится к предыдущему выполнению этого метода, и выдаст значение а=100, таким, каким бы выдало его, если бы метод recur и вовсе не вызывался сам в себе, а просто переменная а увеличилась бы на 1.

Какой результат выполнения программы, если 49 - код единицы в ASCII ?
public class A { 
   public static void main(String[] args) { 
 
       byte[] a={ 49,50,51,52,53,54,55 }; 
 
       String b=new String(a);      // 1  
       System.out.println(b); 
 
       String c=new String(a,2,4);  // 2 
       System.out.println(c); 
   } 
 
} 
Ваши ответы
1234567
3456
Объяснение:

В классе String имеется конструктор, который инициализирует строку 8-разрядным byte-массивом:
public String(byte bytes[], int offset, int length)

Каким будет результат выполнения данного кода?
public class Main { 
   public static void main(String[] args) { 
       int i = 0; 
       int j = 1; 
       System.out.println(i += (j < i) ? (2) : (3)); //1 
   } 
} 
Ваши ответы
3
Объяснение:

В данном примере используется условное выражение (условие) ? (значение1) : (значение2) . В этом выражении перед знаком вопроса ставится условие, а после него через : идут 2
возвращаемых значения. Первое будет возвращено в случае если условие вернёт значение true, в противном случае будет возвращено 2-ое значение.

Дан двумерный массив(матрица)
int[][] arr = {{1,2,3}, {0,0,0}, {3,2,1}}; 
 
Какие из следующих вариантов ответа позволят пройтись по всем элементам массива и вывести их на экран при помощи for-each?
Ваши ответы
for (int i[] : arr) { 
   for (int j : i) 
       System.out.print(j + " "); 
   System.out.println(); 
} 
Объяснение:

Т.к. многомерный массив - это массив ссылок на другие массивы только размерностью length-1, то i[] позволит пробежать по всем строкам матрицы, в каждой из которых j позволит пробежать по всем элементам этой строки матрицы.

Что выведется в консоль в результате компиляции и выполнения следующего кода:
public class A { 
   { 
       System.out.println("one"); 
   } 
 
   public static void main(String[] args) { 
       System.out.println("two"); 
   } 
 
   static { 
       System.out.println("three"); 
   } 
} 
Ваши ответы
three
two
Объяснение:

Статические блоки инициализации выполняются перед первым обращением к классу, т.е. перед вызовом метода main(). Поэтому сначала будет выведена строка "three", а затем "two".
Обычные блоки инициализации выполняются при создании экземпляра заданного класса, но в данном примере этого нет. Поэтому строка "one" выведена не будет.

Имеется два класса, объявленные в файле. Что будет выведено на экран после запуска? Test.java:
class Singleton { 
   private static Singleton s = new Singleton(); 
   protected Singleton() { 
       System.out.println("S"); 
   } 
   public static Singleton getInstance() { 
       return s; 
   } 
} 
 
public class Test { 
   public void method() { 
       Singleton.getInstance(); 
   } 
   public static void main(String [] str) { 
       new Test(); 
   } 
} 
Ваши ответы
Ничего не будет выведено.
Какой результат выполнения программы:
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()"); 
   } 
} 
Ваши ответы
Программа выполнится без ошибок и ничего не появится
В переменной типа char могут храниться значения из следующего диапазона
Ваши ответы
От 0 до \uFFFF
В каких строчках будет ошибка компиляции?
public class Test { 
   public static void main(String[] args) { 
       char c = (char) 1; // 1 
       boolean boo = (boolean) 1; // 2 
       byte b = (byte) true;    // 3 
   } 
} 
Ваши ответы
в строке с комментарием //3
Какой результат выполнения данного кода:
System.out.println(0.0/0.0 + 10); 
Ваши ответы
Infinity
Объяснение:

Результатом деления 0.0 на 0.0 будет NaN – Not a Number, неопределенное значение. Любые арифметические операции с NaN так же дают NaN.