logo

Java プログラムの出力 |セット8

難易度 : 中級
以下の Java プログラムの出力を予測します。
プログラム 1:
 

Java
class GfG {  public static void main(String args[])  {  String s1 = new String('geeksforgeeks');  String s2 = new String('geeksforgeeks');  if (s1 == s2)   System.out.println('Equal');  else  System.out.println('Not equal');  } } 

出力: 
 

Not equal


説明: s1 と s2 は 2 つの異なるオブジェクトであるため、参照は同じではなく、== 演算子はオブジェクト参照を比較します。したがって、文字列内の実際の文字を比較するには、「等しくない」と出力されます。equals() メソッドを使用する必要があります。 
 
プログラム 2:  
 



Java
class Person  {   private void who()  {  System.out.println('Inside private method Person(who)');  }    public static void whoAmI()  {  System.out.println('Inside static method Person(whoAmI)');  }    public void whoAreYou()  {  who();  System.out.println('Inside virtual method Person(whoAreYou)');  } } class Kid extends Person {   private void who()  {  System.out.println('Kid(who)');  }    public static void whoAmI()  {  System.out.println('Kid(whoAmI)');  }    public void whoAreYou()  {  who();  System.out.println('Kid(whoAreYou)');  } } public class Gfg {  public static void main(String args[])   {  Person p = new Kid();   p.whoAmI();   p.whoAreYou();   } } 

出力: 
 

Inside static method Person(whoAmI) Kid(who) Kid(whoAreYou)


説明: 静的バインディング (またはコンパイル時) は静的メソッドに対して発生します。ここ p.whoAmI() 静的メソッドを呼び出します。このメソッドはコンパイル時に呼び出されるため、静的バインドが行われ、メソッドが Person クラスに出力されます。 
一方 p.whoAreYou() でメソッドを呼び出します 子供 Java はデフォルトでこのクラスを仮想メソッド、つまり動的バインディングとして受け取るためです。
 
プログラム 3:  
 

Java
class GfG {  public static void main(String args[])  {  try  {  System.out.println('First statement of try block');  int num=45/3;  System.out.println(num);  }  catch(Exception e)  {  System.out.println('Gfg caught Exception');  }  finally  {  System.out.println('finally block');  }  System.out.println('Main method');  } } 

出力: 
 

First statement of try block 15 finally block Main method


説明:  
例外がないため、catch ブロックは呼び出されませんが、 ついに 例外が処理されるかどうかに関係なく、ブロックは常に try ブロックの後に実行されます。
  
プログラム 4:  
 

Java
class One implements Runnable  {  public void run()   {  System.out.print(Thread.currentThread().getName());  } } class Two implements Runnable  {  public void run()   {  new One().run();  new Thread(new One()'gfg2').run();  new Thread(new One()'gfg3').start();  } } class Three  {  public static void main (String[] args)   {  new Thread(new Two()'gfg1').start();  } } 

出力: 
 

gfg1gfg1gfg3


説明 : 最初に新しいスレッドが名前で開始されます GFG1 次に、クラス 2 で、最初の run メソッドが名前のスレッドを実行します。 GFG1 その後、run メソッドを呼び出して新しいスレッドが作成されますが、新しいスレッドは start メソッドを呼び出すことによってのみ作成できるため、前のスレッドがアクションを実行して再度実行されます。 GFG1 これで、start メソッドを呼び出して新しいスレッドが作成され、新しいスレッドが開始されます。 GFG3 名前とそれによるプリント GFG3
 

リティク・ローシャン