Java – Nivel 3 – Test 4
Tests similares
Respuestas:
1. ¿Cuál es el resultado de la siguiente expresión?
IntStream.rangeClosed(1, 5).boxed().collect(Collectors.summarizingInt(Integer::intValue)).getAverage()
- Respuesta Correcta: 3.0
- Explicación:
- IntStream.rangeClosed(1, 5) genera un flujo de números enteros del 1 al 5.
- boxed() convierte los valores primitivos int a objetos Integer.
- Collectors.summarizingInt(Integer::intValue) recopila estadísticas, incluyendo el promedio.
- El promedio de los números 1, 2, 3, 4, 5 es 3.0.
2. ¿Cuál es el resultado de la siguiente operación?
(13 & 7) ^ (9 | 4)
- Respuesta Correcta: 5
- Explicación:
- 13 & 7 (AND bit a bit) da 5 (1101 & 0111 = 0101).
- 9 | 4 (OR bit a bit) da 13 (1001 | 0100 = 1101).
- 5 ^ 13 (XOR bit a bit) da 8 (0101 ^ 1101 = 1000).
- El resultado final es 5.
3. ¿Cuál es el resultado de Math.nextAfter(1.0, 2.0) – 1.0?
- Respuesta Correcta:
Un número muy pequeño cercano a 0 - Explicación:
- Math.nextAfter(1.0, 2.0) devuelve el siguiente valor representable después de 1.0 en la dirección hacia 2.0.
- La diferencia entre 1.0 y este valor es un número muy pequeño, cercano a cero.
4. ¿Qué imprimirá el siguiente código?
int x = 5;
System.out.println(x > 3 ? x < 7 ? «A» : «B» : «C»);
- Respuesta Correcta: A
- Explicación:
- x > 3 es true, por lo que se evalúa la segunda parte: x < 7, que es también true.
- Por lo tanto, se imprime «A».
5. ¿Qué método se usa para obtener un iterador que permita la eliminación de elementos de una lista en Java?
- Respuesta Correcta:
list.listIterator() - Explicación:
- list.listIterator() devuelve un iterador bidireccional que permite modificar la lista (incluyendo la eliminación de elementos).
6. ¿Cuál es la salida del siguiente código?
List list = Arrays.asList(«a», «b», «c»);
String result = list.stream()
.reduce((s1, s2) -> s1 + s2)
.orElse(«empty»);
System.out.println(result);
- Respuesta Correcta: abc
- Explicación:
- El reduce concatena los elementos del flujo, por lo que el resultado es «abc».
- orElse(«empty») no es necesario aquí porque el flujo no está vacío.
7. ¿Qué interfaz funcional se utiliza para representar una operación que acepta dos argumentos y devuelve un resultado?
- Respuesta Correcta:
BiFunction - Explicación:
- BiFunction es una interfaz funcional que representa una operación que acepta dos argumentos y devuelve un resultado.
8. ¿Cuál es la salida del siguiente código?
String str = «Java»;
System.out.println(str.chars().mapToObj(ch -> (char)ch).collect(Collectors.joining(«,»)));
- Respuesta Correcta: J,a,v,a
- Explicación:
- str.chars() convierte el string en un flujo de enteros (códigos ASCII).
- mapToObj(ch -> (char)ch) convierte cada valor en un carácter.
- Collectors.joining(«,») los une con comas, resultando en «J,a,v,a».
9. ¿Qué hace el operador & cuando se usa con enteros en Java?
- Respuesta Correcta:
AND bitwise - Explicación:
- El operador & realiza una operación AND a nivel de bits entre dos números enteros.
10. ¿Qué hace el método computeIfPresent() en un Map?
- Respuesta Correcta:
Calcula un nuevo valor si la clave existe - Explicación:
- computeIfPresent(key, remappingFunction) aplica una función de remapeo si la clave ya existe en el mapa, y actualiza su valor.