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

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

+90

Каким будет результат выполнения данного кода
public class Commentator { 
   public static void main( String[] args ) { 
   /*System.out.println( "Line1" ); 
     System.out.println( "Line2" );*/ 
 
   //System.out.println( "Line3" ); 
   System.out.println( "Line4" );// 
 
   System.out.println( "/*Line5*/" ); 
   System.out.println( "//Line6//" ); 
   } 
} 
Ваши ответы
Line4
/*Line5*/
//Line6//
Объяснение:

Однострочный комментарий // не является спец-символом внутри текстового литерала.

В соответствии с контрактом, метод hashCode() должен возвращать одинаковые целочисленные значения для двух объектов, которые равны в соответствии с методом equals().
Ваши ответы
Да
Объяснение:

Да, если два объекта равны (метод equals() для них возвращает значение true), то метод hashCode() для каждого из них должен возвращать одинаковое целочисленное значение.
P.S. В соответствии с контрактом - "equal objects must have equal hash codes"

Каким будет результат компиляции и выполнения данного кода:
public class ByteTest { 
   public static void main(String[] s) { 
       byte b = 8; 
        m(b); 
        m(7); 
   } 
 
   static void m(byte b) { 
       System.out.print("byte"); 
   } 
} 
Ваши ответы
Произойдет ошибка компиляции.
Объяснение:

Если в команде присваивания используется константное выражение со значением типа int, попадающим в диапазон byte, то компилятор автоматически сужает его тип. Поэтому команда byte b = 8; компилируется без ошибок.
В других ситуациях, например, в вызове метода, такого не происходит. Поэтому на команде m(7); генерируется ошибка компиляции.

Что нужно вставить вместо ... чтобы прочитать строку "Reading successful." из файла C:\file.txt и вывести её на экран (укажите все подходящие варианты)?
public class Main { 
   public static void main(String[] args) { 
       File file = new File("C:\\file.txt"); 
       try { 
           ... 
           int i; 
           while((i = input.read()) != -1){ 
               System.out.print((char)i); 
           } 
       } 
       catch (Exception ex) { 
           System.out.println("Exception"); 
       } 
   } 
} 
Ваши ответы
BufferedReader input = new BufferedReader(new FileReader(file));
Что напечатает следующий фрагмент кода:
try { 
   int i = 5; 
} catch (Exception e) { 
   System.out.print("catch"); 
} finally { 
   System.out.print("finally"); 
} 
Ваши ответы
finally
Объяснение:

Блок finally выполняется в любом случае не зависимо от того, какой код находится в блоке try

Дан следующий код:
interface I_A { public void out1(); } 
interface I_B { public void out2(); } 
 
class Impl implements I_A, I_B {     //1 
   public void out2() { 
       System.out.print("2"); 
   } 
   public void out1() { 
       System.out.print("1"); 
   } 
} 
 
public class Test { 
   public static void main(String[] args) { 
       Impl impl = new Impl(); 
       I_A a; 
       a = impl; 
       a.out1(); 
       ((I_B) a).out2();              //2 
   } 
} 
Каков результат выполнения этой программы ?
Ваши ответы
Напечатает "12" без кавычек
Объяснение:

В Java возможна реализация нескольких интерфейсов.
Данное приведение типов возможно, так как класс impl реализует оба интерфейса.

Что будет результатом запуска такого кода?
package tutorial.base; 
 
public class TypesTutorial { 
   public static void main(String... args) { 
       A alpha = new B(0); 
   } 
} 
 
class A { 
   A(int x){            // - 1 - 
       a(x);            // - 2 - 
   } 
 
   void a(int x) { 
       System.out.println("A-a: " + x); 
   } 
} 
 
class B extends A { 
   B(int x) {           // - 3 - 
       a(x);            // - 4 - 
   } 
 
   void a(int x) { 
       System.out.println("B-a: " + x); 
   } 
} 
Ваши ответы
Ошибка компиляции в строке 3
Объяснение:

В классе A отсутствует конструктор по-умолчанию, поэтому конструктор класса B (потомок) первым делом должен явно вызвать один из обьявленных конструкторов класса-родителя.

Что будет напечатано в результате выполнения данного кода?
public class Cycle { 
   public static void main(String...args) { 
       int i = 1; 
       do while(i < 1) 
           System.out.println("i = " + ++i); 
       while (i > 1); 
   } 
} 
Ваши ответы
i = 1
Объяснение:

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

Какой результат выполнения данного кода:
Integer i1 = 10; 
Integer i2 = 10; 
 
Double d1 = 10d; 
Double d2 = 10d; 
 
System.out.println(i1 == i2); 
System.out.println(d1 == d2); 
Ваши ответы
false
true
Что выведет на консоль следующий код:
public class Exam  { 
   public static void main(String[] arg) { 
       Object obj = null; 
       String str = new String("str"); 
       str = (String) obj; 
       obj = new String("obj"); 
       System.out.print(obj + ", " + str);   
   } 
} 
Ваши ответы
null, null
Каким будет результат компиляции и выполнения следующего кода?
public class Test { 
   static String s; 
 
   static void go() { 
       System.out.println(s); 
       go(); 
   } 
 
   public static void main(String[] args) { 
       go(); 
   } 
} 
Ваши ответы
Программа будет бесконечно выводить в консоль следующие строки:
null
null
null
...
Объяснение:

При бесконечной рекурсии рано или поздно стек вызова методов переполнится и будет сгенерировано соответствующее исключение.

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

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

Что выведет программа:
package tutorial.base; 
 
public class TypesTutorial { 
 
   public static void main(String... atgs) { 
       A alpha = new B(); 
   } 
} 
 
class A { 
   A(){ 
       System.out.print("A"); 
       a(); 
   } 
 
   void a() { 
       System.out.print("a"); 
   } 
} 
 
class B extends A { 
   B() { 
       System.out.print("B"); 
       a(); 
   } 
 
   void a() { 
       System.out.print("b"); 
   } 
} 
Ваши ответы
BbAb
Объяснение:

Первым вызывается конструктор класса-родителя A, в нем вызывается переопределенный метод класса-потомка B, по типу созданного обьекта. Далее вызывается конструктор класса-потомка B, который вызывает тот же метод.

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

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

Какой будет результат при компиляции и выполнении следующего кода?
import java.util.*; 
public class Test { 
   public static void main(String[] args) { 
       List buf = new ArrayList(2); 
 
       System.out.print(buf.size()); 
 
       buf.add(10); 
 
       System.out.print(buf.size()); 
 
       buf.add(20); 
       buf.add(30); 
 
       System.out.print(buf.size()); 
   } 
}