Ieșirea programului Java | Setul 8

Nivel de dificultate : Intermediar
Preziceți rezultatul următoarelor programe Java.
Programul 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'  );      }   }   

Ieșire: 
 

Not equal 


Explicaţie: Deoarece s1 și s2 sunt două obiecte diferite, referințele nu sunt aceleași, iar operatorul == compară referința la obiect. Deci se afișează „Nu este egal” pentru a compara caracterele reale din șirul de caractere trebuie utilizată metoda .equals(). 
 
Programul 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  ();         }   }   

Ieșire: 
 

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


Explicaţie: Legarea statică (sau timpul de compilare) are loc pentru metodele statice. Aici p.whoAmI() apelează metoda statică, astfel încât este apelată în timpul compilării, deci are ca rezultat legarea statică și tipărește metoda în clasa Person. 
Întrucât p.whoAreYou() apelează metoda în Copil clasă deoarece Java o ia implicit ca o metodă virtuală, adică legarea dinamică.
 
Programul 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'  );      }   }   

Ieșire: 
 

First statement of try block 15 finally block Main method 


Explicaţie:  
Deoarece nu există nicio excepție, blocul catch nu este numit, ci in sfarsit blocul este întotdeauna executat după un bloc try, indiferent dacă excepția este gestionată sau nu.
  
Programul 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  ();      }   }   

Ieșire: 
 

gfg1gfg1gfg3 


Explicatie: Inițial, noul Thread este început cu nume gfg1 apoi în clasa a doua prima metodă rulează firul cu numele gfg1 apoi, după aceea, se creează un fir nou apelând metoda run, dar deoarece un nou thread poate fi creat apelând metoda start numai, astfel încât firul anterior să facă acțiunea și din nou gfg1 este tipărit. Acum un nou thread este creat prin apelarea metodei start, astfel încât un nou thread începe cu gfg3 nume și prin urmare tipărituri gfg3 .
 


S-Ar Putea Să Vă Placă