Java Для Профессионалов: Задачи На Знание Спецификации

По мере подготовки к сертификационному экзамену SCJP, а также при чтении в различных источниках о нюансах использования языка Java возникает множество различных вопросов.

Также некоторые особенности языка кажутся совершенно нелогичными, но это указано в спецификации языка, и каждый уважающий себя профессионал стремится знать эти мелочи.

Эта тема посвящена коротким примерам программ (или участков кода).

Каждая программа требует ответов на простые вопросы: как она будет выполняться и что будет выведено на консоль после ее выполнения.

Предполагается Java 1.6, если иное не указано в задании.

P.S. Если у вас есть интересные задания на ту же тему, пишите их в комментариях.

Представляю вашему вниманию первую партию заданий.

  1. Какую числовую константу нужно подставить вместо многоточия, чтобы выражение стало истинным? (также принимаются ответы в виде стандартных констант, объявленных в классах-обертках над примитивными типами)
     
     (int) ((char) -1) == .
    

    (short) ((int) ((char) -1)) == .

  2. Какую константу следует подставить вместо многоточия, чтобы на экране отображалось COOL?
     
     int x = .
    

    ; if (x != 0 && x == -x) { System.out.println("COOL"); }

    Что изменится, если изменить тип на long?
  3. Какую константу следует подставить вместо многоточия, чтобы на экране отображалось COOL?
     
     double x = .
    

    ; if (x != x) { System.out.println("COOL"); }

  4. Какой результат будет в результате выполнения этой программы?
     
     public class Test {
      static int a() { print("a"); return 1; }
      static int b() { print("b"); return 1; }
      static int c() { print("c"); return 1; }
     
      static void print(String s) { System.out.println(s); }
     
      public static void main(String[] p) {
      int d = a() + b() * c();
      print("" + d);
      }
     }
     
  5. Какой результат будет в результате выполнения этой программы?
     
     public class Test {
      static int a() { print("a"); return 1; }
      static int b() { print("b"); return 1; }
      static int c() { print("c"); return 1; }
     
      static void print(String s) { System.out.println(s); }
     
      public static void main(String[] p) {
      if (a() == b() || a() == c()) {
      print("d");
      }
      }
     }
     
  6. Какой результат будет в результате выполнения этой программы?
     
     public class Test {
      static int a() { print("a"); return 1; }
      static int b() { print("b"); return 1; }
      static int c() { print("c"); return 1; }
     
      static void print(String s) { System.out.println(s); }
     
      public static void main(String[] p) {
      try {
      if ((a() + b()) / (a() - b()) + c() == a()) {
      print("d");
      }
      } catch (Throwable e) {
      }
      }
     }
     
  7. Какой результат будет в результате выполнения этой программы?
     
     class BasicExcept extends RuntimeException {
       private int b = 10;
     
       public BasicExcept() {
         b = 15;
         throw this;
       }
     
       {
         b = 5;
       }
     
       public int getB() {
         return b;
       }
     
       public String toString() {
         return "Superclass";
       }
     }
     
     class Except extends BasicExcept {
       private int a = 10;
     
       public Except() {
         super();
         a = 15;
       }
     
       {
         a = 5;
       }
     
       public int getA() {
         return a;
       }
     
       public String toString() {
         return "Subclass";
       }
     }
     
     
     public class Test {
       public static void main(String[] args) {
         try {
           new Except();
           System.out.println("No exception");
         } catch (Except e) {
           System.out.println("Exception occured! A = " + e.getA()
               + ", B = " + e.getB()
               + ", toString() = " + e.toString());
         }
       }
     }
     
  8. Какой результат будет в результате выполнения этой программы?
     
     class TryExcept extends RuntimeException {
         private String s;
     
         static {
             init();
         }
     
         public TryExcept() {
             s = "Hahaha";
         }
     
         private static void init() {
             throw new TryExcept();
         }
     
         public String get() {
             return s;
         }
     }
     
     public class Test {
         public static void main(String[] args)
         {
             for (int i = 0; i < 2; i++) {
                 try {
                     new TryExcept();
                 } catch (Throwable e) {
                     System.out.println("e = " + e);
     
                     if (e.getCause() instanceof TryExcept) {
                         TryExcept ex = (TryExcept) e.getCause();
                         System.out.println("e instanceof "
                             + TryExcept.class.getName()
                             + ", s = " + ex.get());
                     }
                 }
             }
         }
     }
     
Спасибо тем, кто помог найти и исправить ошибки в теме: зазывал , Мохакс , Саникс Теги: #программирование #java #спецификация #java
Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.