Java – Nivel 3 – Test 7

Java – Nivel 3 – Test 7

Test-7 Java Nivel 3

¿Qué imprimirá el siguiente código?


int a = 5, b = 7;
System.out.println((a & b) + (a | b));

¿Qué método se usa para crear una copia defensiva de un ArrayList en Java?

¿Qué hace el método merge() en un Map?

¿Cuál es la salida del siguiente código?

List words = Arrays.asList("Java", "is", "fun");
String result = words.stream()
                 .collect(Collectors.joining("_", "Start_", "_End"));
System.out.println(result);

¿Cuál es el resultado de la siguiente expresión?


IntStream.rangeClosed(1, 10).boxed().collect(Collectors.groupingBy(i -> i % 3, Collectors.counting()))

¿Qué hace el método takeWhile() en un Stream?

¿Qué interfaz funcional se utiliza para representar una operación que acepta dos argumentos del mismo tipo y devuelve un resultado del mismo tipo?

¿Cuál es el resultado de la siguiente operación?


Integer.highestOneBit(25) + Integer.lowestOneBit(18)

¿Cuál es el resultado de Math.nextUp(1.0) - Math.nextDown(1.0)?

¿Cuál es la salida del siguiente código?


String str = "Hello";
System.out.println(str.codePoints().mapToObj(cp -> String.format("U+%04X", cp)).collect(Collectors.joining(", ")));

Tests similares

Respuestas:


1. ¿Cuál es el resultado de Math.nextUp(1.0) – Math.nextDown(1.0)?

  • Respuesta Correcta:
    Un número muy pequeño
  • Explicación:
    • Math.nextUp(1.0) devuelve el siguiente número representable mayor que 1.0.
    • Math.nextDown(1.0) devuelve el siguiente número representable menor que 1.0.
    • La diferencia entre estos valores es un número extremadamente pequeño cercano a 10−1610^{-16}10−16, dependiendo de la precisión del tipo double.

2. ¿Qué interfaz funcional se utiliza para representar una operación que acepta dos argumentos del mismo tipo y devuelve un resultado del mismo tipo?

  • Respuesta Correcta:
    BinaryOperator
  • Explicación:
    • BinaryOperator<T> es una especialización de BiFunction<T, T, T> en la que los argumentos y el resultado tienen el mismo tipo.

3. ¿Cuál es la salida del siguiente código?

String str = «Hello»;

System.out.println(str.codePoints().mapToObj(cp -> String.format(«U+%04X», cp)).collect(Collectors.joining(«, «)));

  • Respuesta Correcta:
    U+0048, U+0065, U+006C, U+006C, U+006F
  • Explicación:
    • str.codePoints() convierte el string en un stream de códigos Unicode.
    • Cada código se formatea como un valor hexadecimal usando String.format(«U+%04X», cp).
    • Collectors.joining(«, «) concatena los valores separados por comas.

4. ¿Qué imprimirá el siguiente código?

int a = 5, b = 7;

System.out.println((a & b) + (a | b));

  • Respuesta Correcta:
    12
  • Explicación:
    • a & b realiza un «AND» bit a bit: 5=01015 = 01015=0101, 7=01117 = 01117=0111, resultado: 0101=50101 = 50101=5.
    • a∣ba | ba∣b realiza un «OR» bit a bit: 0101∣0111=0111=70101 | 0111 = 0111 = 70101∣0111=0111=7.
    • 5+7=125 + 7 = 125+7=12.

5. ¿Qué método se usa para crear una copia defensiva de un ArrayList en Java?

  • Respuesta Correcta:
    new ArrayList(originalList)
  • Explicación:
    • Al pasar originalList como argumento al constructor de ArrayList, se crea una copia independiente de la lista original.

6. ¿Qué hace el método merge() en un Map?

  • Respuesta Correcta:
    Fusiona valores asociados con la misma clave
  • Explicación:
    • Si una clave ya está presente, merge() permite fusionar el valor existente con uno nuevo utilizando una función de combinación.

7. ¿Qué hace el método takeWhile() en un Stream?

  • Respuesta Correcta:
    Toma elementos mientras la condición sea verdadera
  • Explicación:
    • takeWhile() toma los elementos del stream en orden hasta que la condición especificada devuelva false. Luego detiene el procesamiento.

8. ¿Cuál es la salida del siguiente código?

List<String> words = Arrays.asList(«Java», «is», «fun»);

String result = words.stream()

                 .collect(Collectors.joining(«_», «Start_», «_End»));

System.out.println(result);

  • Respuesta Correcta:
    Start_Java_is_fun_End
  • Explicación:
    • Collectors.joining(«_», «Start_», «_End») concatena los elementos con _ entre ellos, añadiendo Start_ al inicio y _End al final.

9. ¿Cuál es el resultado de Integer.highestOneBit(25) + Integer.lowestOneBit(18)?

  • Respuesta Correcta:
    24
  • Explicación:
    • Integer.highestOneBit(25) devuelve el bit más significativo activado en el número 25=1100125 = 1100125=11001, que es 16=2416 = 2^416=24.
    • Integer.lowestOneBit(18) devuelve el bit menos significativo activado en 18=1001018 = 1001018=10010, que es 2=212 = 2^12=21.
    • 16+2=2416 + 2 = 2416+2=24.

10. ¿Cuál es el resultado de la siguiente expresión?

IntStream.rangeClosed(1, 10).boxed().collect(Collectors.groupingBy(i -> i % 3, Collectors.counting()))

  • Respuesta Correcta:
    {0=3, 1=4, 2=3}
  • Explicación:
    • Los números del 111 al 101010 se agrupan por el residuo de su división entre 333:
      • Residuo 000: 3,6,93, 6, 93,6,9 → 333 elementos.
      • Residuo 111: 1,4,7,101, 4, 7, 101,4,7,10 → 444 elementos.
      • Residuo 222: 2,5,82, 5, 82,5,8 → 333 elementos.

Deja un comentario