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

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

+108

  • Кто проходил: Андрей1
  • Дата прохождения: 28.11.2018
Какой результат будет у данного кода?
class Alien { 
 String invade(short ships) { return "a few"; } 
 String invade(short... ships) { return "many"; } 
} 
public class Defender { 
 public static void main(String [] args) { 
   System.out.println(new Alien().invade(7)); 
 } 
} 
Ваши ответы
Ошибка компиляции
Объяснение:

Константа 7 по умолчанию имеет тип int. При вызове функции неявное сужающее преобразование int → short не выполняется, поэтому происходит ошибка компиляции.

Если переопределить в классе метод finalize(), то для объекта этого класса этот метод будет вызван:
Ваши ответы
Перед тем, как система сборки мусора уничтожит объект
Объяснение:

Метод finalize() вызывается перед тем, как система сборки мусора уничтожит объект.

Какой результат выполнения данного кода:
System.out.println(0.0/0.0 + 10); 
Ваши ответы
NaN
Объяснение:

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

Каков будет результат выполнения метода 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 перекроет область видимости поля класса.

Что нужно вставить вместо ... чтобы прочитать строку "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));
Что будет выведено на консоль при выполнении данного кода?
public class Test { 
   public static void main(String[] args) { 
       String s = new String("ssssss"); 
       StringBuffer sb = new StringBuffer("bbbbbb"); 
       s.concat("-aaa"); 
       sb.append("-aaa"); 
       System.out.println(s); 
       System.out.println(sb); 
   } 
} 
Ваши ответы
ssssss
bbbbbb-aaa
Объяснение:

s.concat() не изменит значения s, так как String это "immutable"(неизменяемый) объект, в отличии от StringBuffer, который реализует изменяемые строки

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

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

Каким будет результат компиляции и выполнения данного кода?
public class A { 
   public static void main(String[] args) { 
       for (int i = 0; ++i > 0;) { 
           System.out.println(i); 
       } 
   } 
} 
Ваши ответы
Напечатает все числа от 1 до 231 - 1
Что будет выведено на консоль при вычислении следующего выражения?
int x = 0; 
System.out.print(x++==++x); 
Ваши ответы
false
Объяснение:

- сначала будет взято значение x и запомнено как левая часть выражения (т.е. 0)
- потом будет произведён пост-инкремент (т.е. x примет значение 1)
- потом выполнится пре-инкремент (т.е. x примет значение 2)
- и только теперь будет взято значение для правого операнда операции сравнения (т.е. 2), таким образом получаем сравнение "0 == 2".

Что будет результатом запуска такого кода?
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 Test { 
   public static void main(String[] args) { 
       int i = 1; 
       add(i++); 
       System.out.println(i); 
   } 
 
   static void add(int i) { 
       i += 2; 
   } 
} 
Ваши ответы
4
Объяснение:

Значение переменной i увеличивается на 1 в момент передачи в метод. Внутри метода add() используется одноимённая переменная, любые действия с которой никак не влияют на исходную.

Что произойдет при попытке скомпилировать и запустить данный код:
00: public class Test { 
01:     public static void main(String[] args) { 
02:         Object obj = new String("String object"); 
03:         String str = (String) new Object(); 
04:         System.out.println(obj); 
05:         System.out.println(str); 
06:     } 
07: } 
Ваши ответы
Произойдет ошибка компиляции в строке 03.
Объяснение:

Код скомпилируется, но будет брошено исключение java.lang.ClassCastException в строке 03, так как тип Object не может быть преобразован к типу String.

Что произойдет при попытке откомпилировать/запустить следующий код:
abstract class Animal { 
   static { 
       System.out.println("Inside Animal"); 
   } 
} 
 
class Cat extends Animal { 
   static { 
       System.out.println("Inside Cat"); 
   } 
} 
 
class Dog extends Animal { 
   static { 
       System.out.println("Inside Dog"); 
   } 
} 
 
public class Main { 
    public static void main(String[] args){ 
         Animal cat = new Cat(); 
         Animal dog = new Dog(); 
    } 
}
Ваши ответы
Произойдет ошибка компиляции
Объяснение:

Блок статической инициализации вызывается всего один раз, когда загружается класс. Oracle Press — Sun Certified Java Programmer Study Guide (2005) page 226

Что произойдет при компиляции и запуске следующего кода?
public class Test { 
 
   static int[] arrInstance = new int[100]; 
 
   public static void main(String[] args) { 
       byte[] arrLocal = new byte[100]; 
 
       for (int i = 0; i < 100; i++) 
           if (arrInstance[i] != arrLocal[i]) { 
               throw new IllegalStateException("error"); 
           } 
   } 
} 
Ваши ответы
возникнет ошибка компиляции
Что произойдет в результате компиляции и выполнения следующего кода?
class A { 
   int i = 0; 
   public int increment() { 
       return ++i; 
   } 
} 
 
public class B extends A { 
   int i = 1;                                        // 1 
   public int increment() { 
       return ++i; 
   } 
 
   public static void main(String[] args) { 
       B b = (B) new A();                            // 2 
       System.out.println(b.increment()); 
   } 
} 
Ваши ответы
Ошибка компиляции в строке 2
Объяснение:

Будет сгенерировано исключение ClassCastException.