Salida de programas Java | Autoboxing y Unboxing

Requisito previo: Autoboxing y unboxing en Java

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

class Main {
    public static void main(String[] args)
    {
        Double x1, y1, z1;
        double x2, y2, z2;
        x1 = 10.0;
        y1 = 4.0;
        z1 = x1 * x1 + y1 * y1;
        x2 = 10.0;
        y2 = 4.0;
        z2 = x2 * x2 + y2 * y2;
        System.out.print(z1 + " ");
        System.out.println(z2);
    }
}

Opciones:
A. 116.0 116.0
B. Error en tiempo de ejecución
C. Error en tiempo de compilación
D. 116 116.0

Respuesta: A. 116.0 116.0

Explicación: Primero, los valores 10.0 y 20.0 se encuadran automáticamente en x1 e y1 respectivamente. Luego, para calcular z1, x1 e y1 se desencuadran y se evalúa la expresión, luego el resultado se encuadra en z1. Mientras se imprime z1, se desempaca automáticamente, el valor se imprime y luego se vuelve a empaquetar. z2 se calcula normalmente utilizando tipos de datos primitivos.

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

class Main {
    public static void main(String[] args)
    {
        Boolean b1 = true;
        Boolean b2 = false;
        System.out.print((b1 == b2) + " ");
        System.out.print(b1.equals(b2));
    }
}

Opciones:
A. Error en tiempo de compilación
B. falso falso
C. falso verdadero
D. verdadero verdadero

Respuesta: B. falso falso

Explicación: Los valores verdadero y falso se encuadran automáticamente en b1 y b2 respectivamente. Para b1==b2, b1 y b2 se desempaquetan y luego se comparan, lo que devuelve falso. Para b1.equals(b2), como b1 y b2 son objetos booleanos, se pueden comparar usando el método equals(). Esto también devuelve falso ya que b1 y b2 no son iguales.

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

class Main {
    public static void main(String args[])
    {
        Double x = new Double(10);
        double i = x.doubleValue();
        System.out.print(i + " " + x);
    }
}

Opciones:
A. Error de tiempo de compilación
B. 10 10
C. 10.0 10.0
D. 10 10.0

Respuesta: C. 10.0 10.0

Explicación: x es un objeto de tipo Doble. Por lo tanto, cuando se imprima x, se desempaquetará automáticamente y se imprimirá 10.0. Mientras que doubleValue() es un método para desempaquetar un objeto Double en double. Por lo tanto, también tendré un valor de 10.0.

4) ¿Cuál es el resultado del siguiente programa?

class Main {
    static int funct(Integer x)
    {
        return x;
    }
    public static void main(String args[])
    {
        Integer x = funct(10);
        System.out.println(x);
    }
}

Opciones:
A. Error en tiempo de compilación
B. Error en tiempo de ejecución
C. 10
D. Sin salida

Respuesta: C. 10

Explicación: cuando 10 se pasa a funct(), se encuadra automáticamente. Cuando el valor se devuelve desde funct, se encuadra automáticamente y luego el valor vuelve a encuadrarse automáticamente en x. Cuando se imprime x, se desempaqueta nuevamente.

5) ¿Cuál es el resultado del siguiente programa?

class Main {
    public static void main(String args[])
    {
        Boolean b1 = "TRUE";
        Boolean b2 = "FALSE";
        boolean b = b1 && b2;
        System.out.println(b);
    }
}

Opciones:
A. Error en tiempo de compilación
B. FALSO
C. falso
D. VERDADERO

Respuesta: A. Error de tiempo de compilación

Explicación: será un error de tiempo de compilación porque «VERDADERO» y «FALSO» son strings y no se pueden convertir a booleanos.

Publicación traducida automáticamente

Artículo escrito por Shivam_72 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 *