Salida del programa Java | conjunto 8

Nivel de dificultad : Intermedio
Prediga la salida de los siguientes programas 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");
    }
}

Producción: 
 

Not equal

Explicación: Dado que s1 y s2 son dos objetos diferentes, las referencias no son las mismas y el operador == compara la referencia del objeto. Por lo tanto, imprime «No es igual», para comparar los caracteres reales en la string, se debe usar el método .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();
    }
}

Producción: 
 

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

Explicación: el enlace estático (o el tiempo de compilación) ocurre con los métodos estáticos. Aquí p.whoAmI() llama al método estático, por lo que se llama durante el tiempo de compilación, por lo tanto, da como resultado un enlace estático e imprime el método en la clase Person. 
Mientras que p.whoAreYou() llama al método en la clase Kid ya que, de forma predeterminada, Java lo toma como un método virtual, es decir, enlace dinámico.
 
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");
    }
}

Producción: 
 

First statement of try block
15
finally block
Main method

Explicación: 
Dado que no hay excepción, el bloque catch no se llama, pero el bloque finalmente siempre se ejecuta después de un bloque de prueba, ya sea que se maneje la excepción o 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();
    }
}

Producción: 
 

gfg1gfg1gfg3

Explicación: Inicialmente, el nuevo subproceso se inicia con el nombre gfg1 , luego en la clase Dos, el primer método de ejecución ejecuta el subproceso con el nombre gfg1 , luego, se crea un nuevo subproceso llamando al método de ejecución, pero dado que se puede crear un nuevo subproceso llamando solo al método de inicio entonces el subproceso anterior realiza la acción y nuevamente se imprime gfg1 . Ahora se crea un nuevo subproceso llamando al método de inicio para que un nuevo subproceso comience con el nombre gfg3 y, por lo tanto, imprima gfg3 .
Este artículo es una contribución de Pratik Agarwal . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.orgo envíe su artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
 

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *