Quiz JAVA 8Versión en línea JAVA 8 por HR Mexico 1 ¿Cuál es el propósito principal de una expresión lambda en Java 8? a Permitir programación basada en XML b Eliminar la necesidad de clases abstractas c Proporcionar una forma concisa de representar funciones anónimas d Reemplazar completamente las interfaces 2 ¿Cuál de las siguientes es una interfaz funcional válida en Java 8? a Comparator b Serializable c Cloneable d RunnableWithResult 3 ¿Cuál es el método correcto para crear un Optional vacío? a Optional.of(null) b Optional.empty() c new Optional() d Optional.get(null) 4 ¿Qué método de la interfaz Stream permite reducir una colección a un solo valor? a map() b collect() c filter() d reduce() 5 ¿Cuál de los siguientes métodos permite crear un stream infinito? a Stream.of() b Stream.iterate() c Stream.empty() d Stream.range() 6 ¿Cuál es una diferencia entre map() y flatMap() en Streams? a map() aplica una función; flatMap() solo filtra b map() transforma elementos; flatMap() aplana estructuras anidadas c flatMap() es más rápido que map() d map() solo funciona con strings 7 ¿Qué sucede si una clase implementa dos interfaces que definen el mismo método default sin sobreescribirlo? a Java utiliza el método de la interfaz más antigua b Se produce un error de compilación c Se elige aleatoriamente cuál usar d Java elige automáticamente la implementación más general 8 Dado el siguiente código, ¿cuál es la salida? a Hello from A b Hello from B c Error de compilación d Hello from C 9 ¿Cuál es la diferencia entre una clase abstracta y una interfaz con métodos default en Java 8? a Las clases abstractas no pueden contener lógica b Las interfaces default pueden tener estado c Las clases abstractas pueden tener constructores d No hay diferencias a nivel de compilación 10 ¿Cuál es el resultado de ejecutar este código? a Error de compilación b null c Woof d Undefined 11 ¿Cuál es una ventaja del uso de Optional frente al uso directo de valores nulos en Java? a Mejora la velocidad de ejecución b Reemplaza completamente el patrón DAO c Obliga a manejar explícitamente la ausencia de valor d Permite valores null dentro de colecciones 12 ¿Qué resultado devuelve este código? a Java b Optional.empty c Too Short d Error en tiempo de ejecución 13 ¿Qué ocurre cuando se aplica map() sobre un Stream de objetos, y dentro de la función se accede a un método instanceof con herencia? a Se lanza una excepción b El resultado siempre es falso c Se evalúa correctamente según la jerarquía de clases d No se puede usar instanceof dentro de lambdas 14 Dado el siguiente código, ¿qué imprime? a Parent b Child c Error en compilación d Ninguno 15 ¿Cuál de los siguientes fragmentos crea un Stream a partir de un arreglo, filtra los elementos mayores a 10, los ordena, y obtiene el primero? a Stream.of(array).filter(x -> x > 10).sorted().findFirst(); b Arrays.stream(array).filter(x -> x > 10).sorted().findFirst(); c Stream.from(array).filter(x -> x > 10).firstSorted(); d array.stream().filter(x -> x > 10).min(); 16 ¿Cuál es la principal diferencia entre map() y flatMap() en el contexto de una jerarquía de objetos con listas? a map() solo sirve para tipos primitivos b flatMap() aplana múltiples flujos en uno solo c map() solo puede usarse dentro de interfaces d flatMap() no acepta lambdas 17 ¿Qué ocurriría si una clase implementa dos interfaces que definen métodos estáticos con el mismo nombre? a Se produce un conflicto en tiempo de compilación b El método de la interfaz que se mencione primero prevalece c No hay conflicto; los métodos estáticos deben llamarse con el nombre de la interfaz d Se lanza una excepción en tiempo de ejecución 18 ¿Cuál de las siguientes afirmaciones sobre polimorfismo en Java es correcta? a Solo se aplica con clases abstractas b Una variable de tipo padre puede referenciar objetos de sus subclases c No es compatible con interfaces d El método sobrecargado siempre se resuelve en tiempo de ejecución 19 ¿Qué ocurre si se invoca get() sobre un Optional.empty()? a Devuelve null b Lanza una NoSuchElementException c Retorna un Optional anidado d Compila pero lanza NullPointerException 20 ¿Cuál es la principal ventaja de utilizar referencias a métodos (::) sobre expresiones lambda? a Son más rápidas en tiempo de ejecución b Aumentan la legibilidad y evitan código repetitivo c Solo funcionan con métodos estáticos d Permiten modificar el flujo de control 21 ¿Qué característica define a una clase anónima en Java? a Debe tener un constructor explícito b No puede sobrescribir métodos c Se define e instancia en una única expresión d No puede implementar interfaces 22 ¿Qué imprime este fragmento? a 0 b 1 c 2 d Error en compilación 23 ¿Qué diferencia hay entre Function y BiFunction? a Function recibe dos argumentos, BiFunction uno b BiFunction permite usar tipos primitivos c BiFunction recibe dos argumentos y devuelve uno d Son equivalentes, sólo cambia el nombre 24 ¿Qué técnica permite evitar NullPointerException en cadenas de llamadas usando Optional? a isPresent().get() b ifPresent().get() c Encadenar con flatMap() y map() d Utilizar nullSafeGet() 25 ¿Qué sucede si se modifica una colección dentro de una operación stream().forEach()? a Lanza excepción ConcurrentModificationException b Se permite la modificación si es una List c Solo afecta a Set, no a List d Modifica el stream sin errores 26 ¿Por qué no se pueden crear instancias directas de una clase abstracta? a Porque no se puede sobrecargar su constructor b Porque sus métodos son todos finales c Porque contiene métodos sin implementación d Porque no puede extender de otra clase 27 ¿Cuál es el propósito de peek() en la API de Streams? a Recolectar valores del stream b Realizar operaciones terminales c Insertar elementos en el stream d Inspeccionar valores durante el pipeline sin modificar el stream 28 ¿Qué principio de POO permite que una clase hija herede atributos y métodos de una clase padre? a Encapsulamiento b Polimorfismo c Herencia d Abstracción 29 ¿Cuál es la principal diferencia entre una clase abstracta y una interfaz en Java? a Una clase abstracta no puede tener métodos concretos b Una interfaz puede tener constructores c Una clase abstracta puede tener estado (atributos) d No hay diferencias; ambas son iguales en Java 8 30 ¿Cuál es el propósito del encapsulamiento en POO? a Asegurar que una clase tenga sólo un constructor b Dividir el código en capas c Ocultar la implementación interna y exponer solo lo necesario d Permitir la sobrecarga de métodos 31 ¿Qué principio permite que múltiples clases implementen una misma interfaz pero con comportamientos distintos? a Herencia b Polimorfismo c Modularidad d Cohesión 32 ¿Qué palabra clave en Java se utiliza para evitar que una clase sea heredada? a static b final c private d protected 33 ¿Cuál es el efecto de declarar un método como final? a No puede llamarse desde una subclase b No puede sobreescribirse en una subclase c No puede ser accedido desde fuera del paquete d Solo puede usarse en interfaces 34 ¿Cuál de las siguientes afirmaciones sobre clases abstractas es correcta? a Pueden tener todos sus métodos abstractos b Pueden contener métodos implementados y no implementados c Solo se pueden usar para heredar constructores d No pueden tener atributos 35 ¿Qué sucede si una clase concreta no implementa todos los métodos de una interfaz? a Se lanza excepción en tiempo de ejecución b El compilador genera automáticamente implementaciones vacías c Se produce un error de compilación d Se permite, pero con advertencia 36 ¿Cuál de las siguientes opciones describe mejor la sobrecarga de métodos? a Mismo nombre, diferentes clases b Mismo nombre, diferentes firmas dentro de la misma clase c Diferentes nombres, mismas firmas d Mismo nombre y firma en clases distintas 37 ¿Qué principio de la POO se ve reflejado cuando se accede a un objeto mediante su tipo de interfaz en lugar de su clase concreta? a Abstracción b Encapsulamiento c Herencia d Cohesión