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

説明:

静的変数はクラスのロード時に呼び出され、静的変数は 1 回だけ呼び出されることがわかっています。 13 行目ではオブジェクトが作成され、コンストラクターが呼び出され、「Geeksforgeeks」が 2 回目に出力されます。 8 行目で静的変数が使用されていない場合、オブジェクトは無限に再帰的に呼び出され、StackOverFlow エラーが発生します。

Androidで隠されたものを見つける方法

プログラム 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

説明:

静的ブロックは、クラスがメモリにロードされるときに実行されます。クラスには、プログラムに書き込まれたのと同じ順序で実行される複数の Static ブロックを含めることができます。

注記 : 静的メソッドは、クラスのオブジェクトを使用せずにクラス変数にアクセスできます。新しいインスタンスが作成されるとコンストラクターが呼び出されるため、最初に静的ブロックが呼び出され、その後コンストラクターが呼び出されます。オブジェクトを使用せずに同じプログラムを実行した場合、コンストラクターは呼び出されません。  

プログラム 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. 

説明:

クラス superClass の calc() メソッドはfinalであるため、オーバーライドできません。  

プログラム 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

説明:

document.queryselector

Integer オブジェクトのソース コードにはメソッド「valueOf」があり、Integer オブジェクトの範囲が IntegerCache.low(-128) から IntegerCache.high(127) までであることがわかります。したがって、127 を超える数値では期待どおりの出力が得られません。 IntegerCache の範囲は、IntegerCache クラスのソース コードから確認できます。