35+ Java 8 preguntas y respuestas de la entrevista (2024)
Ya sea un técnico o cualquier otro profesional, las entrevistas siempre sacan adrenalina del nerviosismo. Sin embargo, para destacar entre la multitud, es importante pulir tus habilidades y apostar por tus capacidades. Además, tener a mano las preguntas más frecuentes Java 8 preguntas y respuestas de la entrevista pueden ser más inteligentes.
Por lo tanto, profundice en estas preguntas de la entrevista de Java 8 para principiantes y experimentados para que puedan triunfar en sus próximas entrevistas.
Java 8 preguntas de la entrevista para principiantes y con experiencia
1) Java 8 cae ¿en qué paradigma de programación?
Java 8 cae dentro del siguiente paradigma de programación:
- Lenguaje de programación orientado a objetos o clases.
- Lenguaje de programación funcional.
- Lenguaje de programación procesal especificado.
- Lenguaje de programación lógica.
2) ¿Por qué debería uno usar la clase Opcional?
La clase opcional es una clase contenedora recientemente introducida que es útil para demostrar los valores opcionales existentes o no existentes. Su principal ventaja es evitar comprobaciones nulas y sin efecto y facilita métodos útiles para comprobar la existencia de un valor para una variable en particular.
3) Nombre algunas características recientes introducidas en Java 8.
A continuación se muestran las características más recientes que se presentan en Java 8:
- Expresiones Lambda: Es un Java Función que puedes compartir o referirte como un objeto.
- Interferencia del método: Utiliza la función como criterio para implementar un método.
- Interferencia funcional: Cada interferencia funcional está asociada a un único método abstracto que se conoce como método funcional.
- Método predeterminado: Es útil para implementar métodos en las interfaces que ayudan a habilitar el potencial de "evolución de la interfaz".
- API de fecha y hora: Es una versión mejorada pero inspirada de las API de Java Time para abordar los inconvenientes de la última versión.
- API de transmisión se conoce como capa abstracta, que ayuda a canalizar los datos de procesamiento.
- Opcional: La clase contenedora es útil para verificar los valores nulos y procesar los datos adicionales.
- JavaScript y motor Nashorn: Es la versión mejorada del JavaMotor de script, que resulta útil para habilitar su funcionalidad en Java, reemplazando a Rhino.
4) Especificar las ventajas de usar java 8
Estos son algunos de los beneficios de usar Java 8:
- Ayuda a crear aplicaciones mucho más rápido y de forma más sencilla.
- Proporciona un ambiente muy estable para los desarrolladores.
- Códigos concisos, reutilizables y fáciles de comprender.
- Soporte mejorado y efectivo.
- Fácil de portar a varios sistemas operativos.
- Códigos repetitivos mínimos.
5) ¿Qué es una colección y en qué se diferencia de una transmisión?
Una colección es una base de datos en memoria que registra todos los valores de acuerdo con la estructura de datos actual. Entonces, antes de agregarlo a la colección, es importante calcular cada uno de ellos. Mientras que una secuencia es una estructura de datos visualmente fija donde podemos calcular los elementos según nuestras necesidades.
6) ¿Qué es la expresión Lambada?
La expresión Lambada es un tipo de función que no tiene nombre y a veces se la denomina función anónima porque no tiene su propio tipo de información. Puede usarlo según sus necesidades y es muy útil para repetir, filtrar y extraer cualquier dato de la colección.
Ejemplo:
import java. util.Arrays; import java.util.List; import java.util.stream.Collectors; public class LambdaExpressionExample { public static void main(String[] args) { List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "Dave"); List<String> filteredNames = names.stream() .filter(name -> name.startsWith("C")) .map(name -> name.toUpperCase()) .collect(Collectors.toList()); System.out.println(filteredNames); } }
Salida:
Charlie
7) Definir canalización de flujos
La segmentación de flujos es un método para agrupar diferentes operaciones. Esto se puede lograr clasificando las operaciones de flujo en dos partes: operaciones intermedias y operaciones terminales.
Cada vez que se realiza una operación intermedia, se devuelve una instancia a la secuencia de flujo. Por lo tanto, cualquier usuario puede configurar una cantidad irracional de operaciones intermedias para optimizar los datos y, en última instancia, formar una secuencia de procesamiento.
Además, para terminar los ductos es necesario tener una operación terminal al final del proceso.
8) ¿Qué son predicado y consumidor en Java 8?
Un predicado es una interfaz funcional que normalmente recibe argumentos y recupera un valor booleano. Puede usarlo para aplicar filtros a una colección de objetos.
Por otro lado, al consumidor se le conoce como una interfaz funcional incorporada que se encuentra en JavaPaquete .util.function. Puede usarlo para consumir cualquier objeto, toma el valor de entrada y no proporciona nada.
9) ¿Por qué se utiliza el método peek() en Java 8?
El método peek() ayuda a respaldar la depuración, donde uno quiere notar los elementos que tienden a fluir desde un punto específico en una tubería. Es una representación de nuestra observación de cómo pasa cada elemento.
Sintaxis: public Object peek()
10) ¿Qué te convierte en el candidato ideal para el Java ¿Rol de desarrollador?
Aquí hay algunas cualidades importantes que pueden convertirlo en un candidato ideal para el Java rol de desarrollador:
- Debe tener la capacidad de escribir códigos claros, fáciles de comprender y eficientes.
- Una comprensión profunda de los patrones y conceptos de “POO o programación orientada a objetos."
- Un buen conocimiento de varios patrones arquitectónicos y de diseño.
- Familiaridad con Java patrones de concurrencia.
- Experiencia y conocimiento de trabajar con varios marcos de aplicaciones web como Spark y juega.
- Conocimientos fundamentales de Java Máquina Virtual o JVM, sus desventajas, solución, etc.
- Una buena experiencia en el uso de bases de datos integradas y externas.
11) Explique la "Interfaz funcional".
Una interfaz con un solo resumen se llama interfaz funcional. También se le conoce como Método Abstracto Único o SAM. Sin embargo, la anotación @FunctionalInterface es opcional y se puede utilizar incluso si no está ahí. Se extiende a la otra interfaz si no tiene ningún resumen.
12) ¿Por qué se necesitan métodos estáticos en Java 8?
La referencia de método estático se conoce como utilidad o método auxiliar, que está vinculado con una interfaz. También es una clase que no está vinculada a ningún objeto.
A continuación se presentan razones para utilizar el método estático en Java:
- Útil para mantener y ampliar la API.
- Implica una distribución clara y concisa de responsabilidades, y no es necesario tener una clase de utilidad para tener las colecciones de utilidades.
- Útil para mantener todas las interfaces en una interfaz común en lugar de interfaces específicas.
13) ¿Cuáles son las ventajas de Nashorn?
Nashorn es el más avanzado y nuevo. JavaGuión motor de procesamiento introducido en Java 8. Anteriormente, se basó en Mozilla Rhino. Proporciona un cumplimiento mejorado con ECMA JavaScript. Es más rápido que sus versiones anteriores.
14) ¿En qué se diferencian Collection API y Stream API?
Aquí hay algunas diferencias importantes entre Collection API y Stream API
API de colección | API de transmisión |
---|---|
La API de colección se utilizó por primera vez en Java 1.2 | Stream API se introdujo por primera vez en Java SI 8. |
Puedes usarlo para almacenar datos ilimitados. | Puede usarlo para calcular datos ilimitados. |
La API de colección le permite utilizar Iterator y Spilterator para iterar los datos. | Stream API le permite utilizar Iterator y Spilterator para iterar los datos. |
La API de colección es de fácil acceso. | API in-stream, no existe una forma directa de llegar a elementos específicos. |
También da facilidad para procesarlo según sus necesidades. | Stream API se puede procesar solo una vez. |
15) Describe PermGenSpace y MetaSpace.
PermGen o Espacio de Generación Permanente es un tipo único de espacio de almacenamiento dinámico que se utiliza para realizar un seguimiento de los metadatos almacenados y que ahora se elimina en Java 8.
Con esta nueva versión, el almacenamiento de los metadatos se realizará en una memoria similar conocida como “MetaSpace”. No es transferible Java Memoria heap y es una versión mejorada de PermGen en aspectos de auto-ajuste, recolección de basura, etc.
16) ¿Cómo se crea la interfaz funcional en Java 8?
Puede emplear la expresión lambda para implementar el método abstracto de la interfaz funcional en Java 8. A continuación se muestra un ejemplo de codificación del mismo:
Ejemplo
import java.util.function.Consumer; public class FunctionalInterfaceExample { public static void main(String[] args) { Consumer<String> printer = System.out::println; printer.accept("Hello, world!"); } }
Salida:
Hello, world!
17) ¿Cuáles son las diferencias y similitudes entre Función y Predicado en Java 8?
Aquí están las diferencias entre función y predicado en Java 8:
- La función es útil en la transformación, mientras que el predicado se puede utilizar para probar cualquier condición.
- La función puede recibir un argumento y dar un resultado, mientras que el predicado también puede recibir un argumento pero solo da el valor booleano.
- La función se indica con y el predicado se indica únicamente con , donde T es el tipo de función y R es el resultado.
A continuación se muestran las similitudes entre función y predicado:
- Tanto la función como el predicado son interfaces funcionales.
- Tanto la función como el predicado son funciones de un solo argumento.
18) Explique la diferencia entre saltar (largo) y limitar (largo) usando un ejemplo.
El salto (largo) es una operación intermedia que recupera los elementos sobrantes después de eliminar los n elementos iniciales de un flujo específico.
Ejemplo:
import java.util.Arrays; import java.util.List; public class SkipExample { public static void main(String[] args) { List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "Dave", "Eve"); // Create a stream from the names list names.stream() // Skip the first two elements of the stream .skip(2) // Print the remaining elements to the console .forEach(System.out::println); } }
Salida:
Charlie Dave Eve
El límite (largo) recupera el flujo de elementos de un tamaño particular
Ejemplo:
import java.util.Arrays; import java.util.List; public class LimitExample { public static void main(String[] args) { List<String> names = Arrays.asList("Alice", "Bob", "Charlie", "Dave", "Eve"); // Create a stream from the names list names.stream() // Limit the stream to the first three elements .limit(3) // Print the elements to the console .forEach(System.out::println); } }
Salida:
AliceBob Charlie
19) ¿Qué situación es más adecuada para usar Stream API en Java 8?
Puede utilizar la API de transmisión en Java 8. Es necesario realizar las siguientes operaciones:
- Puede realizar un procesamiento paralelo.
- Para ejecutar operaciones de forma diferida
- Para realizar operaciones de base de datos
- Úselo para iteraciones internas.
- Para escribir programación de estilo funcional
- Puede usarlo para realizar operaciones de canalización.
20) ¿Cuál es la función de la inferencia de tipos?
Type Inference ayuda al compilador a identificar o reconocer los tipos de argumentos con solo tener una descripción general de la declaración correspondiente y la invocación del método.
21) ¿Cuál es la forma más sencilla de identificar y eliminar elementos duplicados de una lista en Java 8?
La forma más fácil de identificar y eliminar los elementos duplicados es mediante la operación de flujo y realizando una recopilación, seguida del uso del método Collections.toSet().
22) ¿Cuáles son las pautas para la interfaz funcional?
A continuación se detallan las pautas para una interfaz funcional que se encuentra entre las más solicitadas. Java 8 preguntas de programación:
- Debe tener un solo método abstracto.
- Puede tener tantos métodos predeterminados ya que no es abstracto y la implementación la proporciona anteriormente el mismo.
- Un método abstracto, el elemento principal de los métodos públicos de Java.lang, se conoce en una interfaz funcional. El objeto todavía se considera una interfaz útil.
Nota: La explicación para esto es que cada clase de implementación para esta interfaz puede tener una implementación para este método abstracto que está definida por la propia clase de implementación o tomada de una superclase.
23) Diferenciar entre divisor e iterador.
Aquí hay algunas diferencias entre spliterator e iterador:
Separador | Iterador |
---|---|
Fue introducido en Java 1.2. | Fue introducido en Java 1.8. |
Solo itera todos los elementos por separado. | Atraviesa todos los elementos tanto por separado como a granel. |
Actúa como iterador de una colección completa de API. | Actúa como un iterador para la API de transmisión y colección. |
No admitirá programación paralela. | Admite programación paralela. |
24) ¿Cómo se puede llamar a un método predeterminado de una interfaz en una clase?
La palabra clave default, que está presente al comienzo de la firma del método, se usa para designar una declaración de método en una interfaz como método predeterminado. Puede omitir el modificador público porque cada declaración de método en una interfaz, incluidos los métodos predeterminados, es automáticamente pública.
25) Defina el método predeterminado. ¿Cuándo puedes usarlo?
El método predeterminado está presente en la interfaz e incluye una implementación. Este método es útil para agregar nuevas funciones a una interfaz determinada y al mismo tiempo mantener la compatibilidad con versiones anteriores junto con las clases que ya están implementadas en una interfaz.
26) ¿Cómo se crean los Streams en Java¿Y se encuentra entre las preguntas de entrevista de transmisión de Java 8 más frecuentes?
Se transmite en Java Describe la secuencia de objetos de una fuente específica, como una colección, que admitirá operaciones de agregación. Puedes utilizarla para recopilar, filtrar, imprimir y cambiar una estructura de datos por otra.
Aquí están los ejemplos de cómo crear transmisiones en Java:
import java.util.stream.Stream; public class StreamExample { public static void main(String[] args) { Stream<String> stream = Stream.of("Alice", "Bob", "Charlie", "Dave", "Eve"); stream.forEach(System.out::println); } }
Salida:
Alice Bob Charlie Dave Eve
27) ¿Qué son las operaciones de flujo de Map y FlatMap?
Map y FlatMap se consideran operaciones de flujo y de flujo intermedio que aceptan una función. También ayudan a aplicar la función dada al resto de los elementos.
28) ¿Por qué necesitamos alterar la Java lenguaje de programación con frecuencia?
Tenemos que alterar el Java lenguaje de programación con frecuencia debido a las siguientes razones:
- Puede utilizar las funciones de Programación funcional.
- Utilizar eficazmente la última tecnología de CPU multinúcleo.
29) Mencione algunas interfaces funcionales utilizadas en Java 8.
A continuación se muestran algunas interfaces funcionales utilizadas en Java 8:
- BinarioOperator
- Consumidores
- Función
- Proveedor
- UnarioOperator
- bifunción
- Predicado
30) ¿Cuáles son las principales clases de API para hora y fecha?
A continuación se enumeran las principales clases de API para hora y fecha que se utilizan en Java 8:
- Hora local
- Fecha y hora local
- Fecha local
31) Proporcione la estructura/sintaxis básica de la expresión Lambda.
La estructura/sintaxis básica de la expresión Lambda es:
(arugument - list) - > {body}
Aquí,
- Argumento – lista: Puedes mantenerlo lleno o vacío.
- Ficha de flecha: Es útil para vincular expresiones corporales y argumentos: lista.
- Cuerpo: Consta de declaraciones y expresiones para la expresión lambda.
32) ¿Cuáles son las principales características de Stream?
A continuación se detallan las principales características de Stream:
- Tubería
- Fuente
- Agregados OperaSupuestos de Alcance
- Secuencia de elementos
- Iteraciones automáticas
33) ¿Cuáles son las operaciones intermedias más comunes?
Algunos de los tipos más comunes de expresiones intermedias son:
- Distinto ()
- Saltar (n larga)
- Filtro (predicado)
- Límite (n larga)
- Mapa (Función)
34) ¿Cuáles son los tipos más comunes de operaciones de Terminal?
A continuación se presentan los tipos más comunes de operaciones de terminal:
- Contar
- La disminución
- Min
- Todo Partido
- Max
- cualquier partido
- Para ordenar
35) ¿Qué es el método de referencia en Java 8?
Referencia del método en Java 8 es una forma de referirse a la interfaz funcional. Se conoce como una forma mucho más fácil y eficiente de expresión lambda. Cuando usa expresiones lambda para hacer referencia a un método, puede reemplazarla con la referencia del método.
36) ¿En qué se diferencian las iteraciones internas y externas?
A continuación se muestran las diferencias entre iteración interna y externa:
Iteración interna | Iteración externa |
---|---|
También se le conoce como iterador pasivo o implícito. | También se le conoce como iterador activo o explícito. |
Se lleva internamente en varios objetos. | Se lleva externamente sobre varios objetos. |
Se utiliza en programación funcional. | Se utiliza en programación orientada a objetos. |
Representa muy menos errores. Sin embargo, la codificación es imprescindible para ello. | Da cuenta de más errores. Sin embargo, la codificación no es necesaria. |
37) ¿Se ha utilizado la inferencia de tipos en versiones anteriores de Java?
Java introdujo interferencia de tipo en Java 5 pero con acceso muy limitado. Pero a lo largo de los años, las posibilidades de interferencia de tipos han aumentado y su mejor momento es en Java 8.
38) Escribe una Java 8 programas que pueden encontrar el número mínimo y máximo de un Stream.
import java.util.Arrays; import java.util.stream.IntStream; public class MinMaxExample { public static void main(String[] args) { int[] numbers = {9, 3, 8, 1, 5, 7, 2, 6, 4}; int min = IntStream.of(numbers).min().getAsInt(); int max = IntStream.of(numbers).max().getAsInt(); System.out.println("Minimum number: " + min); System.out.println("Maximum number: " + max); } }
Salida:
Minimum number: 1 Maximum number: 9
39) ¿Cómo se unen varias cadenas a través de la clase StringJoiner?
StringJoiner ayuda a unir una o más cadenas, y esto se puede hacer a través de un delimitador o un elemento de unión específico. Por ejemplo, se pueden unir varias cadenas separándolas con una coma (,).
Para crear una cadena CSV, se puede generar una ruta completa para un directorio particular en Linux, lo que se puede hacer uniendo la cadena con la ayuda de la barra diagonal "/".
40) ¿Cuál es la mejor alternativa a las expresiones lambda en Java 8?
En general, utilizamos expresiones lambda para crear métodos anónimos que ayudan a obtener el resultado deseado. Sin embargo, hay casos en los que las expresiones lambda no funcionan y solo utilizan un método existente.
Para evitar esto, puede utilizar una referencia de método que puede ayudar a obtener el resultado deseado. La referencia de método se representa mediante el símbolo: (dos puntos).