Java – Nivel 3 – Test 7

Java – Nivel 3 – Test 7

Test-7 Java Nivel 3

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

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


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

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

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


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

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

¿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);

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

¿Qué imprimirá el siguiente código?


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

¿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