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

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

+105

  • Кто проходил: Андрей1
  • Дата прохождения: 06.12.2018
Какие изменения приведут к успешной компиляции следующего класса?
public class LocalVsInstance {     
   String s; 
 
   public static void main(String[] args) { 
       String s; 
       System.out.println(s.toUpperCase()); 
       LocalVsInstance localVsInstance = new  LocalVsInstance(); 
       System.out.println(localVsInstance.s.toUpperCase()); 
   } 
 
} 
Ваши ответы
присвоить любое значение локальной переменной s
Объяснение:

Для успешной компиляции надо явно инициализировать локальную переменную, null вполне сойдет. Переменная объекта s будет неявно инициализирована null'ом. NPE хоть и вылетит, но это уже ошибка времени выполнения.

Как определить длину массива myarray?
Ваши ответы
myarray.length
Объяснение:

Для определения длины строки используют myarray.length();
Для определения длины массива используют myarray.length;

Скомпилируется ли следующий код, если оба класса будут объявлены в файле Test.java?
//Test.java 
public class Car{ 
   public String myCar = "Ferrari" ; 
} 
public class Test{ 
   public static void main(String ... args){ 
       Car myCar = new Car(); 
       System.out.println(myCar.myCar); 
   } 
} 
Ваши ответы
Нет
Объяснение:

Код не скомпилируется из-за класса Car. Только один из классов в файле может быть объявлен как public.

Что напечатает следующий фрагмент кода:
int x = 0; 
int y = 10; 
do { 
   y--; 
   ++x; 
} while (x < 5); 
System.out.print(x + "," + y); 
Ваши ответы
5,5
Выберите из приведенных все модификаторы, которые применимы для top-level классов (не вложенных).
Ваши ответы
public
Объяснение:

Модификаторы private и protected применимы только к вложенным классам-членам (member class), модификатор transient – только к полям

Что выведет на консоль?
try { 
   int a = 0; 
   int b = 42/a; 
   System.out.print("A"); 
} catch (Exception e) { 
   System.out.print("C"); 
} catch (ArithmeticException e) { 
   System.out.print("B"); 
} 
Ваши ответы
Ошибка компиляции
Объяснение:

Подкласс должен следовать раньше своего суперкласса в серии catch-операторов. Если это не так, то будет создан недостижимый код
и будет ошибка компиляции.

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

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

Каким будет результат работы программы?
public class MyTest { 
   public static void main(String[] args) {         
       label1: for (int i = 0; i < 3; i++) { 
           if (i == 1) 
               continue label1;  
           label2: 
               System.out.print("TEST "); 
           label3:; 
       } 
   } 
}
Ваши ответы
Будет напечатано "TEST TEST " без кавычек
Объяснение:

Конструкция continue label1: передаст управление на метку и цикл будет продолжен.
Если вместо continue поставить break - TEST будет напечатано один раз.

Выберите правильный ответ:
public class Test { 
   static { i = 5; } 
   static int i = 6; 
 
   public static void main(String[] args) { 
       System.out.println(i); 
   } 
} 
Ваши ответы
6
Объяснение:

Блоки статической инициализации и инициализация статических переменных выполняются в том же порядке, в котором они идут в тексте класса. Поэтому первой будет выполнена команда i=5, а затем i=6.

Какие из следующих строк скомпилируются без ошибок?
Ваши ответы
int[ ][ ] scores = {{1, 2}, {1, 2, 3, 4}, {1, 2, 3}};
Какой результат работы программы?
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); 
   } 
} 
Ваши ответы
true
true
Что произойдет при компиляции и выполнении данного класса?
public class VerySimpleClass { 
 public static void main(String... args) { 
    for (byte i = 6, j = 0 ; (j += i++) <= 10; i >>= 1, System.out.print(--j)); 
 } 
} 
Ваши ответы
ошибка компиляции
Объяснение:

Программа нормально компилируется, т.к. синтаксически такая форма цикла for вполне корректна и не содержит ошибок. Однако при запуске программа уйдет в бесконечный цикл, т.к. после трех итераций значение переменной j перестанет возрастать и в точке контроля условия цикла переменная j всегда будет равна 9.

Что будет выведено на экран следующим кодом:?
class Outer { 
  int outer_x = 100; 
  void test() { 
      for(int i = 0; i < 5; i ++) { 
          class Inner{ 
              void display() { 
                  System.out.print("outer_x = " + outer_x + "; "); 
              } 
          } 
          Inner inner = new Inner(); 
          inner.display(); 
      } 
  } 
} 
public class InnerClassDemo { 
    public static void main(String args[]) { 
        Outer outer = new Outer(); 
        outer.test(); 
    } 
} 
Ваши ответы
Ошибка компиляции
Что произойдет в результате компиляции и выполнения программы:
class Aaa { 
   private double x = 2; 
   public static void multX(Aaa a, double n){ 
       a.setX(a.getX()*n); 
   } 
   public double getX() {return x;} 
   public void setX(double xn) {x = xn;} 
   public static void trippleValue(double x){ 
       x*=3; 
   } 
   public static Aaa resetX(Aaa a){ 
       a = new Aaa(); 
       return a; 
   } 
    public static void main(String[] args) { 
         int x = 3; 
         trippleValue(x); 
         Aaa anA = new Aaa(); 
         multX(anA,x); 
         resetX(anA); 
         x=0; 
         System.out.print(anA.getX());         
   }  
}  
Ваши ответы
Ошибка компиляции
Объяснение:

При вызове trippleValue(x) значение x не меняется, т.к. это переменная простого типа, которая передается по значению. При вызове resetX(anA) объект, на который ссылается anA не меняется, т.к. anA - это ссылка на объект, которая передается по значению.

Что напечатает эта программа?
public class C { 
   public static void main(String[] args) { 
 
       try { 
           foo(); 
           System.out.print("A "); 
       } catch (Exception e) { 
           System.out.print("B "); 
       } finally { 
           System.out.print("C "); 
       } 
   } 
 
   private static void foo() throws Exception { 
       try { 
           System.out.print("A1 "); 
           throw new Exception(); 
       } catch (Exception e) { 
           System.out.print("B1 "); 
           throw new Exception(); 
       } finally { 
           System.out.print("C1 "); 
       } 
   } 
}