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

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

+86

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

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

Что напечатает следующий код?
public class TestWrap { 
   public static void main(String[] args) { 
       Integer ii = 1000; 
       Integer jj = 2000; 
 
       System.out.print((ii * 2 == jj) ? "yes " : "no "); 
       System.out.print((jj / 2 == ii) ? "yes " : "no "); 
       System.out.print((ii * 2 == jj) ^ (jj / 2 == ii) ? "yes " : "no "); 
   } 
} 
Ваши ответы
yes yes no
Объяснение:

При выполнении любых арифметических операций (умножение, деление, ...) объекты классов-оболочек (Integer) автоматически разворачиваются в значения примитивного типа (int). Результатом любой арифметической операции также будет значение примитивного типа.
Если с помощью == сравниваются значение примитвного типа и объект-оболочка, то объект автоматически разворачивается, и происходит сравнение двух примитивов.
Результатом операции ^ (исключающее ИЛИ) будет false, так как оба операнда true.

Каким будет результат компиляции и выполнения данного кода?
01. class A { 
02.     public void process() { System.out.print("A,"); } 
03. } 
04. public class B extends A { 
05.     public void process() throws IOException { 
06.         super.process(); 
07.         System.out.print("B,"); 
08.         throw new IOException(); 
09.     } 
10.  
11.     public static void main(String[] args) { 
12.         try { new B().process(); } 
13.         catch (IOException e) { System.out.println("Exception"); } 
14.     } 
15. } 
Ваши ответы
Ошибка компиляции в строке 5
Объяснение:

При переопределении метода нельзя добавлять проверяемое (checked) исключение.

Что будет выведено на экран?
Integer a = 128; 
Integer b = 128; 
Integer c = -128; 
Integer d = -128; 
System.out.println(a == b); 
System.out.println(c == d); 
Ваши ответы
false
true
Объяснение:

Т.к. в Integer pool попадают значения от -128 до 127

Можно ли наследоваться от класса java.lang.String?
Ваши ответы
Нет
Объяснение:

Нет, так как класс String объявлен как final.

Какой результат работы программы?
public class Test { 
   public static void main(String[] args) { 
       Integer i1 = 1000; 
       Integer i2 = 1000; 
       System.out.println(i1 == i2); 
       System.out.println(i1 == 1000); 
   } 
} 
Ваши ответы
false
true
Укажите все утверждения, которые верны относительно следующего фрагмента кода:
public class TestClazz { 
   public static void main(String[] args) { 
       final long Byte = 0;            // 1 
       if ( Byte.equals(0) ) {        // 2 
           System.out.print("=="); 
       } else { 
           System.out.print("!="); 
       } 
   } 
} 
Ваши ответы
Возникнет ошибка компиляции в строке 2
Объяснение:

long Byte - объявляется переменная с именем Byte и типом long.
У примитивов нет метода equals.

Компилируется ли данный код?
long x = 5;  
long y = 2; 
byte b = (byte) x / y; 
Ваши ответы
Нет
Объяснение:

Правильно: byte b = (byte)(x/y);

Какой результат выполнение данного кода?
import java.util.Arrays; 
 
class Generic<T extends Number> {  
   private T arr[] = {1, 2, 3, 4, 5}; 
 
   public String toString(){  
       return Arrays.toString(arr); 
   }  
}  
 
public class Test {  
   public static void main(String [] args) {  
       Generic<Double> obj = new Generic<Double>(); 
       System.out.println(obj);  
   }  
} 
Ваши ответы
Ошибка компиляции
Объяснение:

Ошибка компиляции при объявлении массива.
Списки инициализации не могут быть использованы для инициализации параметризованных массивов.

Дан двумерный массив(матрица)
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 Main { 
   public static void main(String[] args) { 
       double d = Math.sqrt(-1); 
       System.out.println(Double.NaN == d); 
       d = d / 0; 
       System.out.println(Double.isNaN(d)); 
   } 
} 
Ваши ответы
false
true
Как нужно переписать строку 6 кода, чтобы ошибки компиляции не возникало (укажите все подходящие варианты)?
1:  class Class1  
2:  {  
3:      int total = 0;  
4:      public static void main( String[] args )  
5:      {  
6:          doIt();  
7:      }  
8:      void doIt()  
9:      {  
10:         for ( int i = 0; i < 5; i++ ) total += i;  
11:         System.out.println( total );  
12:     }  
13: }  
 
Ваши ответы
( new Class1() ).doIt();
Объяснение:

Чтобы из статического метода вызвать нестатический метод, нужно создать экземпляр класса.
Остаётся вспомнить, что class – это ключевое слово и его нельзя использовать в качестве имени переменной.

Выберите варианты комментариев (в некотором исходном файле Java), которые не приведут к ошибке.
Ваши ответы
/* This is a valid comment in java. */
// This is a valid comment in java
/** This is a valid comment in java. */
/* This is a valid comment in java. **/
Если во время работы приложения несколько раз обратиться к методу hashCode() одного и того же объекта с одним и тем же состоянием, то будет возвращаться одно и то же значение. А если то же самое сделать после перезапуска приложения, это значение может стать другим?
// Простой пример 
public class Test { 
   public static void main(String args[]) { 
       Object obj = new Object(); 
       System.out.println(obj.hashCode()); 
       System.out.println(obj.hashCode()); 
   } 
}
Ваши ответы
Да
Какой результат выполнения следующего кода:
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); 
   } 
} 
Ваши ответы
class A, method m : 34
Объяснение:

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