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

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

+73

  • Кто проходил: Андрей1
  • Дата прохождения: 04.02.2019
Каков будет результат выполнения метода main у класса Main?
public class Main { 
   private int anInt = 4; 
 
   public Main() { 
       anInt = 5; 
   } 
 
   public static void main(String[] args) { 
       Main m = new Main(); 
       int anInt = 6; 
       m.print(anInt); 
   } 
 
   public void print(int anInt){ 
       System.out.println(anInt); 
   } 
} 
Ваши ответы
6
Объяснение:

Параметр метода print перекроет область видимости поля класса.

Что выведет следующий код?
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 Funcs extends java.lang.Math { 
   public int add(int x, int y) { 
       return x + y; 
   } 
   public int sub(int x, int y) { 
       return x - y; 
   } 
   public static void main(String[] a) { 
       Funcs f = new Funcs(); 
       System.out.println("" + f.add(1, 2)); 
   } 
} 
Ваши ответы
Код не скомпилируется
Объяснение:

Класс java.lang.Math объявлен как final, то есть наследоваться от него нельзя.

Выведется ли текст, помещенный в блок условного оператора?
public static void main(String[] args){ 
      int x = 18; 
      int y = x++; 
      if (x == 18 && y > 10){ 
             System.out.println("y = " + y); 
             System.out.println("x = " + x); 
      } 
}
Ваши ответы
нет
Объяснение:

После присвоения значения переменной "y", значение "x" будет увеличено на один(т.е. = 19).

Какой результат выполнения данного кода:
Boolean b = new Boolean("Hello"); 
System.out.println(b); 
Ваши ответы
false
Объяснение:

Конструктор создаёт объект со значением true, только если переданная строка совпадает, без учёта регистра, с "true". Во всех остальных случаях создаётся объект со значением false.

Какие утверждения истинны? (Выберите все истинные утверждения)
int[] x = new int[25]
Ваши ответы
x.length == 25
Какой результат выполнения следующего кода:
public class MainClass { 
   public static void main(String args[]){ 
       System.out.println((-(byte)128)>>>1 == 128 >>> 1); 
   } 
} 
Ваши ответы
true
Объяснение:

Число 128 имеет двоичное представление 00000000 00000000 00000000 10000000.
После преобразования в byte получается 10000000 – но в типе byte это двоичное представление соответствует числу –128.
–(–128) даёт 128, а 128>>>1 разумеется будет равно 128>>>1.

Что произойдет в результате компиляции и выполнения кода:
final public class Parent { 
   final public void test() {             
       System.out.println("hello"); 
   } 
} 
 
class Child extends Parent {         //1 
   public void test() {             //2 
       System.out.println("world"); 
   }     
} 
 
class Main {             
   public static void main(String args[]) { 
       Child c = new Child(); 
       c.test(); 
   }     
} 
Ваши ответы
Ошибка компиляции в строке 1
Объяснение:

В данном случае ключевое слово final используется для отмены наследования класса parent и отказа от переопределения метода test()

Что будет выведено на экран в результате выполнения программы ?
public class Main { 
   public static void main(String[] args) { 
       Formatter formatter = new Formatter(Locale.ROOT); 
       formatter.format("%.2E\n", 100.0/3.0);      //1 
       formatter.format("%.2f", 100.0/3.0);        //2 
       System.out.println(formatter); 
   } 
} 
Ваши ответы
3.33E+01
33.33
Объяснение:

Formatter - форматирующий класс в Java. Результатом выполнения строки 1 будет 3.33E+01, т.к. ".2" округляет выражение до 2-го знака после запятой, а Е преобразует выражение в инженерный вид.
Результатом выполнения строки 2 будет 33.33, здесь также выполняется округление до 2-го знака после запятой.
Без явного указания Locale мы бы получили результат в соответствии с тем, какой разделитель дробной и целой части установлен в системе. Так, например, в русской версии Windows мы бы получили 33,33.

Дан код:
public class OverrideThrowsTest { 
   public static void main(String[] args) 
       // 1 
   { 
       A a = new A(); 
       a.method(); 
       A ab = new B(); 
       ab.method(); 
       B b = new B(); 
       b.method(); 
   } 
} 
 
class A { 
   public void method() throws IOException {} 
} 
 
class B extends A { 
   public void method() throws FileNotFoundException {} 
} 
 
Выберите все правильные ответы, при которых код скомпилируется,
если вставить их в строку 1:
Ваши ответы
throw Exception
Объяснение:

FileNotFoundException extends IOException, IOException extends Exception. Необходимо объявить такой throws, который охватывал бы здесь все возможные исключения. В данном случае это IOException и Exception.

Какой результат выполнения данного кода:
System.out.println(Math.sqrt(-2.0)); 
System.out.println(1.0/0.0); 
Ваши ответы
Infinity
NaN
Какой результат выполнения программы:
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
Объяснение:

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

Что будет выведено на консоль?
public class Main { 
   public static void main(String[] args) { 
       int a = 10; 
       int b = 100; 
       double c = (double) (a/b); 
       String str = String.format("%1.4f", c); 
       System.out.println(str); 
   } 
} 
Ваши ответы
0
Объяснение:

В данном случае результат деления 2-ух целых чисел будет также округляться до целого, а затем приводиться к double (т. о. получаем 0). Чтобы на консоль вывелось 0,1000 необходимо изменить строку double c = (double) (a/b) на double c = (double) a/b.

Что напечатает следующий код?
public class Test { 
 
   static int b = Test.a; 
   static final int a = 3; 
 
   public static void main(String... args) { 
       System.out.println("a = " + a + ", b = " + b); 
   } 
 
} 
Ваши ответы
a = 3, b = 0
Что выведет на экран следующий код?
public class Test { 
   private Integer k; 
   private int z; 
   private int i; 
 
   public void method() { 
       i = k + z;                 // 1 
   } 
 
   public static void main(String[] args) { 
       Test t = new Test(); 
       t.method(); 
       System.out.println(t.i); // 2 
   } 
} 
Ваши ответы
Ошибка выполнения java.lang.ClassCastException
Объяснение:

Переменные "i", "z" проинициализируются как 0, т.к. являются примитивными типами. А "k" является объектом поэтому будет проинициализирована как null, в итоге операции с null дадут ошибку выполнения NullPointerException.