logo

Sortida del programa Java | Set 8

Nivell de dificultat : Intermedi
Prediu la sortida dels següents programes Java.
Programa 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');  } } 

Sortida: 
 

Not equal


Explicació: Com que s1 i s2 són dos objectes diferents, les referències no són les mateixes i l'operador == compara la referència de l'objecte. Així que s'imprimeix "No és igual" per comparar els caràcters reals de la cadena s'ha d'utilitzar el mètode .equals(). 
 
Programa 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();   } } 

Sortida: 
 

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


Explicació: La vinculació estàtica (o temps de compilació) es produeix per als mètodes estàtics. Aquí p.whoAmI() crida al mètode estàtic, de manera que es crida durant el temps de compilació, per tant, resulta en un enllaç estàtic i imprimeix el mètode a la classe Persona. 
Mentre que p.whoAreYou() crida al mètode Nen classe ja que per defecte Java la pren com un mètode virtual, és a dir, enllaç dinàmic.
 
Programa 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');  } } 

Sortida: 
 

First statement of try block 15 finally block Main method


Explicació:  
Com que no hi ha cap excepció, el bloc catch no es diu sinó el finalment El bloc sempre s'executa després d'un bloc try tant si es gestiona l'excepció com si no.
  
Programa 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();  } } 

Sortida: 
 

gfg1gfg1gfg3


Explicació: Inicialment, el nou fil s'inicia amb el nom gfg1 després, a la classe Dos, el primer mètode d'execució executa el fil amb el nom gfg1 després es crea un fil nou trucant al mètode d'execució, però com que es pot crear un fil nou trucant només al mètode d'inici, el fil anterior faci l'acció i de nou gfg1 s'imprimeix. Ara es crea un fil nou cridant al mètode d'inici perquè comenci un fil nou gfg3 nom i, per tant, gravats gfg3 .
 

connectar la base de dades java