Java programmas izvade | 8. komplekts

Grūtības pakāpe : Vidēja līmeņa
Paredzēt šādu Java programmu izvadi.
1. programma:
 

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'  );      }   }   

Izvade: 
 

Not equal 


Paskaidrojums: Tā kā s1 un s2 ir divi dažādi objekti, atsauces nav vienādas, un operators == salīdzina objekta atsauci. Tātad tas izdrukā "Nav vienāds", lai salīdzinātu faktiskās rakstzīmes virknē Jāizmanto metode .equals(). 
 
2. programma:  
 

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  ();         }   }   

Izvade: 
 

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


Paskaidrojums: Statiskā saistīšana (vai kompilēšanas laiks) notiek statiskām metodēm. Šeit p.whoAmI() izsauc statisko metodi, tāpēc tā tiek izsaukta kompilēšanas laikā, tādējādi rada statisku saistīšanu un izdrukā metodi Personas klasē. 
Tā kā p.whoAreYou() izsauc metodi Bērns klase, jo pēc noklusējuma Java to izmanto kā virtuālu metodi, t.i., dinamisko saistīšanu.
 
3. programma:  
 

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'  );      }   }   

Izvade: 
 

First statement of try block 15 finally block Main method 


Paskaidrojums:  
Tā kā nav izņēmuma, netiek izsaukts nozvejas bloks, bet gan beidzot bloks vienmēr tiek izpildīts pēc mēģinājuma bloka neatkarīgi no tā, vai izņēmums tiek apstrādāts vai nē.
  
4. programma:  
 

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  ();      }   }   

Izvade: 
 

gfg1gfg1gfg3 


Paskaidrojums: Sākotnēji jaunais pavediens tiek sākts ar nosaukumu gfg1 tad klasē Two pirmās palaišanas metode palaiž pavedienu ar nosaukumu gfg1 tad pēc tam tiek izveidots jauns pavediens, izsaucot palaišanas metodi, bet tā kā jaunu pavedienu var izveidot tikai izsaucot sākuma metodi, iepriekšējā pavediens veic darbību un vēlreiz gfg1 tiek izdrukāts. Tagad jauns pavediens tiek izveidots, izsaucot sākuma metodi, lai jaunais pavediens sākas ar gfg3 nosaukumu un līdz ar to izdrukas gfg3 .
 


Jums Varētu Patikt