logo

Вихід програми Java | Набір 9

Рівень складності : Середній

Передбачте вихід наступних програм Java:

Програма 1:

Java
class Gfg {  // constructor  Gfg()  {  System.out.println('Geeksforgeeks');  }    static Gfg a = new Gfg(); //line 8  public static void main(String args[])  {  Gfg b; //line 12  b = new Gfg();  } } 

Вихід:



Geeksforgeeks  
Geeksforgeeks

Пояснення:

Ми знаємо, що статичні змінні викликаються під час завантаження класу, а статичні змінні викликаються лише один раз. Тепер рядок 13 призводить до створення об’єкта, який, у свою чергу, викликає конструктор, і «Geeksforgeeks» друкується вдруге. Якби в рядку 8 не використовувалася статична змінна, об’єкт викликався б нескінченно рекурсивно, що призвело б до помилки StackOverFlow.

java bool до рядка

Програма 2:

Java
class Gfg {  static int num;  static String mystr;  // constructor  Gfg()  {  num = 100;  mystr = 'Constructor';  }  // First Static block  static  {  System.out.println('Static Block 1');  num = 68;  mystr = 'Block1';  }  // Second static block  static  {  System.out.println('Static Block 2');  num = 98;  mystr = 'Block2';  }  public static void main(String args[])  {  Gfg a = new Gfg();  System.out.println('Value of num = ' + a.num);  System.out.println('Value of mystr = ' + a.mystr);  } } 

Вихід:

Static Block 1  
Static Block 2
Value of num = 100
Value of mystr = Constructor

Пояснення:

Статичний блок виконується, коли клас завантажується в пам'ять. Клас може мати кілька статичних блоків, які виконуються в тій же послідовності, в якій вони були записані в програму.

Примітка : Статичні методи можуть отримати доступ до змінних класу без використання об’єкта класу. Оскільки конструктор викликається, коли створюється новий екземпляр, тому спочатку викликаються статичні блоки, а потім викликається конструктор. Якби ми запустили ту саму програму без використання об’єкта, конструктор не викликався б.  

Програма 3:

Java
class superClass {  final public int calc(int a int b)  {  return 0;  } } class subClass extends superClass {  public int calc(int a int b)  {  return 1;  } } public class Gfg {  public static void main(String args[])  {  subClass get = new subClass();  System.out.println('x = ' + get.calc(0 1));  } } 

Вихід:

Compilation fails. 

Пояснення:

Метод calc() у класі superClass є остаточним, тому його не можна змінити.  

отримати поточну дату в java

Програма 4:

Java
public class Gfg {  public static void main(String[] args)  {  Integer a = 128 b = 128;  System.out.println(a == b);  Integer c = 100 d = 100;  System.out.println(c == d);  } } 

Вихід:

false  
true

Пояснення:

У вихідному коді об’єкта Integer ми знайдемо метод «valueOf», у якому можна побачити, що діапазон об’єкта Integer лежить від IntegerCache.low(-128) до IntegerCache.high(127). Тому числа вище 127 не дадуть очікуваного результату. Діапазон IntegerCache можна спостерігати з вихідного коду класу IntegerCache.