Salida de Programas Java | conjunto 12

1) ¿Cuál es la salida del siguiente programa?

public class Test implements Runnable
{
    public void run()
    {
        System.out.printf("%d",3);
    }
    public static void main(String[] args) throws InterruptedException
    {
        Thread thread = new Thread(new Test());
        thread.start();
        System.out.printf("%d",1);
        thread.join();
        System.out.printf("%d",2);
    }
  
}

a) 123
b) 213
c) 132
d) 321

Ans: (c)

Explicación: el subproceso principal espera a que el subproceso recién creado se complete mediante la unión. El método join() permite que un subproceso espere hasta que otro subproceso complete su ejecución. Entonces, el subproceso principal imprime 1 y espera a que se complete el subproceso secundario. El subproceso secundario imprime 3 en la consola y, finalmente, el subproceso principal imprime 2.

2) ¿Cuál es la salida del siguiente programa?

public class Test
{
    private static int value = 20;
    public int s = 15;
    public static int temp = 10;  
    public static class Nested
    {  
      private void display()
      {
          System.out.println(temp + s + value);
      }  
    }  
       
    public static void main(String args[])
    {  
      Test.Nested inner = new Test.Nested();  
      inner.display();  
    } 
}

a) Error de compilación
b) 1020
c) 101520
d) Ninguno de los anteriores

Ans: (a)

Explicación: No se puede acceder a una variable no estática en una clase interna anidada estática . «Anidado» no puede acceder a variables no estáticas [variable s en este caso]. Por lo tanto el error:

10: error: non-static variable s cannot be referenced from a static context
            System.out.println(temp + s + value);
                                      ^

3) ¿Cuál es la salida del siguiente programa?

import java.io.*;
public class Test
{
    public void display() throws IOException
    {
        System.out.println("Test");
    }
  
}
  
class Derived extends Test
{
    public void display() throws IOException
    {
        System.out.println("Derived");
    }
    public static void main(String[] args) throws IOException
    {
        Derived object = new Derived();
        object.display();
    }
}

a) Prueba
b) Derivado
c) Error de compilación
d) Error de tiempo de ejecución

Ans: (b)

Explicación: si el método de superclase declara una excepción, el método anulado de subclase puede declarar la misma excepción de subclase o ninguna excepción, pero no puede declarar la excepción principal.

4) ¿Cuál es la salida del siguiente programa?

public class Test extends Thread
{
    public void run()
    {
        System.out.printf("Test ");
    }
    public static void main(String[] args)
    {
        Test test = new Test();
        test.run();
        test.start();
    }
}

a) Error de compilación
b) Error de tiempo de ejecución
c) Prueba
d) Prueba Prueba

Ans: (d)

Explicación: test.run() ejecuta el método de ejecución. test.start() crea un nuevo subproceso y ejecuta el método de ejecución invalidado de la clase Subproceso. El método Thread.start() siempre inicia un nuevo hilo, y el punto de entrada para este hilo es el método run(). Si está llamando a run() directamente, se ejecutará en el mismo hilo, PERO siempre es recomendable llamar lógicamente a Thread.start() para iniciar un nuevo hilo de ejecución seguido del método run().

5) ¿Cuál es la salida del siguiente programa?

public class Test extends Thread
{
    public static void main(String[] args)
    {
        String a = "GeeksforGeeks";
        String b = new String(a);
        int value = 0;
        value = (a==b) ? 1:2;
        if(value == 1)
        {
            System.out.println("GeeksforGeeks");
        }
        else if(value == 2)
        {
            System.out.println("Geeks for Geeks");
        }
        else
        {
            System.out.println("GFG");
        }
          
    }
}

a) GeeksforGeeks
b) Geeks for Geeks
c) GFG
d) Ninguno de los anteriores

Ans: (b) 

Explicación: el operador == verifica si dos variables se refieren al mismo objeto. Aquí a y b
se refieren a dos objetos diferentes. ?: es otra forma de declaración if else que podría leerse como, condition : if true then do this : else do this.

6) ¿Cuál es la salida del siguiente programa?

public class Test
{
    try
    {
        public Test()
        {
            System.out.println("GeeksforGeeks");
            throw new Exception();
        }
    }
    catch(Exception e)
    {
        System.out.println("GFG");
    }
    public static void main(String[] args)
    {
        Test test = new Test();
    }
}

a) GeeksforGeeks
b) GFG
c) Error de compilación
d) Ninguno de los anteriores

Ans: (c)

Explicación: los constructores no se pueden encerrar en el bloque try/catch.

7) Para el código dado, seleccione la respuesta correcta.

public interface Test
{
    public int calculate();
    protected interface NestedInterface
    {
        public void nested();
    }
}

a) Error de tiempo de compilación debido a NestedInterface
b) Error de tiempo de compilación debido al modificador de acceso de NestedInterface
c) No hay error de tiempo de compilación
d) NestedInterface no puede contener ninguna declaración de función.

Ans: (b)

Explicación: el modificador de acceso de NestedInterface solo puede ser público. Por lo tanto el error:

4: error: illegal combination of modifiers: public and protected
    protected interface NestedInterface
              ^
1 error

8) ¿Cuáles de los siguientes son verdaderos sobre la declaración del constructor?

a) Los constructores pueden ser declarados definitivos.
b) Los constructores pueden estar rodeados por bloques try/catch.
c) El constructor no puede lanzar una excepción.
d) Los constructores pueden contener código sincronizado (para que cada subproceso pueda acceder al constructor secuencialmente).

Ans: (d)

Explicación: Los constructores permiten un acceso secuencial de datos entre subprocesos.

Este artículo es una contribución de Mayank Kumar . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu 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 *