Básico (50 preguntas con respuestas)
1. ¿Qué es Java?
Es un lenguaje de programación orientado a objetos, desarrollado por Sun Microsystems y ahora propiedad de Oracle. Es multiplataforma gracias a la JVM.
2. ¿Qué es JVM?
La Máquina Virtual de Java (Java Virtual Machine) ejecuta el bytecode generado por el compilador de Java y lo convierte en instrucciones específicas del
sistema operativo.
3. ¿Qué es JDK?
Java Development Kit es un entorno para desarrollar aplicaciones Java que incluye herramientas como el compilador, el depurador y la JVM.
4. ¿Qué es JRE?
Java Runtime Environment es un entorno que permite ejecutar aplicaciones Java. Incluye la JVM y las bibliotecas estándar de Java.
5. ¿Cuál es la diferencia entre JDK, JRE y JVM?
o JDK: Incluye herramientas de desarrollo, como el compilador.
o JRE: Incluye la JVM y las bibliotecas necesarias para ejecutar aplicaciones.
o JVM: Ejecuta el bytecode.
6. ¿Qué es una clase en Java?
Es una plantilla que define propiedades (atributos) y comportamientos (métodos) de los objetos.
7. ¿Qué es un objeto en Java?
Es una instancia de una clase que representa una entidad del mundo real.
8. ¿Qué son los modificadores de acceso en Java?
Determinan la visibilidad de clases, métodos y variables. Ejemplo: public, private, protected.
9. ¿Qué es una variable en Java?
Es un espacio de memoria reservado para almacenar valores.
10. ¿Qué tipos de datos primitivos existen en Java?
byte, short, int, long, float, double, char, boolean.
11. ¿Qué es un constructor?
Es un método especial que tiene el mismo nombre que la clase y se usa para inicializar objetos.
12. ¿Qué diferencia hay entre un método y un constructor?
Un constructor no tiene un valor de retorno y se invoca automáticamente al crear un objeto.
13. ¿Qué es una interfaz?
Es una colección de métodos abstractos que una clase puede implementar.
14. ¿Qué es un paquete en Java?
Es un grupo de clases y subpaquetes relacionados que organizan el código.
15. ¿Qué es el método main en Java?
Es el punto de entrada de una aplicación Java. Su firma típica es:
java
Copiar código
public static void main(String[] args)
16. ¿Qué es la herencia?
Es un mecanismo que permite que una clase (subclase) herede propiedades y métodos de otra clase (superclase).
17. ¿Qué es el polimorfismo?
Es la capacidad de un objeto de tomar muchas formas, como sobrecarga y sobreescritura de métodos.
18. ¿Qué es una excepción en Java?
Es un evento que interrumpe el flujo normal de ejecución del programa.
19. ¿Qué es un bloque try-catch?
Se utiliza para manejar excepciones y evitar que el programa termine abruptamente.
java
Copiar código
try {
// Código que puede lanzar una excepción
} catch (Exception e) {
// Código para manejar la excepción
20. ¿Qué es una clase abstracta?
Es una clase que puede contener métodos abstractos (sin implementación) y no puede ser instanciada directamente.
21. ¿Qué es un método estático?
Es un método que pertenece a la clase en lugar de a una instancia específica.
22. ¿Qué son los bloques estáticos?
Son bloques de código que se ejecutan una vez cuando se carga la clase en la JVM.
23. ¿Qué es el operador this?
Se utiliza para referirse al objeto actual de una clase.
24. ¿Qué es el operador super?
Se utiliza para referirse a la superclase inmediata del objeto actual.
25. ¿Qué diferencia hay entre this y super?
o this: Hace referencia al objeto actual.
o super: Hace referencia a la superclase inmediata.
26. ¿Qué es un bloque finally?
Es un bloque de código que siempre se ejecuta, ya sea que ocurra o no una excepción.
27. ¿Qué es un Array en Java?
Es una estructura que almacena elementos del mismo tipo en una secuencia ordenada.
28. ¿Qué es un bucle for?
Es un bucle que se utiliza para iterar un número específico de veces.
29. ¿Qué es un bucle while?
Es un bucle que ejecuta un bloque de código mientras la condición es verdadera.
30. ¿Qué es un bucle do-while?
Es similar a while, pero garantiza que el bloque de código se ejecute al menos una vez.
31. ¿Qué es una clase interna?
Es una clase definida dentro de otra clase.
32. ¿Qué es un paquete [Link]?
Es el paquete base que contiene clases esenciales como String, Math y Object.
33. ¿Qué es un String?
Es una clase que representa cadenas de texto.
34. ¿Qué es la concatenación de cadenas?
Es el proceso de unir dos o más cadenas utilizando el operador + o métodos como concat().
35. ¿Qué son los métodos de la clase Math?
Métodos para realizar operaciones matemáticas como sqrt(), pow(), abs().
36. ¿Qué es un wrapper class?
Es una clase que convierte tipos primitivos en objetos, como Integer o Double.
37. ¿Qué es null en Java?
Es un valor especial que indica que una referencia no apunta a ningún objeto.
38. ¿Qué es un enum?
Es una lista de constantes predefinidas.
java
Copiar código
enum Dias { LUNES, MARTES, MIERCOLES }
39. ¿Qué es un Scanner?
Es una clase utilizada para leer entradas del usuario.
40. ¿Qué es un archivo .class?
Es un archivo generado por el compilador que contiene el bytecode de una clase.
41. ¿Qué es el concepto de casting?
Es la conversión de un tipo de datos a otro, como int a float.
42. ¿Qué es un operador en Java?
Son símbolos que realizan operaciones sobre variables y valores, como +, -, *, /.
43. ¿Qué es un break?
Es una instrucción para salir de un bucle o una sentencia switch.
44. ¿Qué es un continue?
Salta la iteración actual y pasa a la siguiente.
45. ¿Qué es un comentario en Java?
Es texto ignorado por el compilador que sirve para documentar el código.
46. ¿Qué es el operador ternario?
Es un operador compacto para evaluar una condición:
java
Copiar código
int resultado = (a > b) ? a : b;
47. ¿Qué es la clase System?
Proporciona acceso a utilidades estándar como entrada ([Link]) y salida ([Link]).
48. ¿Qué es la palabra clave return?
Finaliza la ejecución de un método y devuelve un valor.
49. ¿Qué es una excepción checked?
Son excepciones verificadas en tiempo de compilación, como IOException.
50. ¿Qué es una excepción unchecked?
Son excepciones no verificadas en tiempo de compilación, como NullPointerException.
¿Continuo con las preguntas intermedias?
4o
Tú dijiste:
Ahora con las 50 preguntas con respuestas nivel intermedio
ChatGPT Plus
ChatGPT
Intermedio (50 preguntas con respuestas)
1. ¿Qué es la sobrecarga de métodos?
Es definir múltiples métodos con el mismo nombre pero diferentes tipos o números de parámetros.
java
Copiar código
void mostrar(int x) {}
void mostrar(String x) {}
2. ¿Qué es la sobreescritura de métodos?
Es redefinir un método de una clase base en una subclase.
java
Copiar código
class Padre { void saludar() { [Link]("Hola"); } }
class Hijo extends Padre { void saludar() { [Link]("Hola, soy el hijo"); } }
3. ¿Qué es una interfaz funcional?
Es una interfaz con un solo método abstracto, ideal para expresiones lambda. Ejemplo: Runnable.
4. ¿Qué es una expresión lambda?
Es una forma compacta de implementar una interfaz funcional.
java
Copiar código
Runnable r = () -> [Link]("Lambda ejecutada");
5. ¿Qué es un Stream en Java?
Es una secuencia de elementos que permite realizar operaciones funcionales como filtrado, mapeo y reducción.
6. ¿Qué son las operaciones intermedias en un Stream?
Son operaciones que transforman un Stream, como filter() y map().
7. ¿Qué son las operaciones terminales en un Stream?
Son operaciones que producen un resultado final, como collect(), forEach().
8. ¿Qué es una clase ArrayList?
Es una implementación de la interfaz List, que permite almacenar elementos dinámicamente redimensionables.
9. ¿Qué es un HashMap?
Es una implementación de Map que almacena pares clave-valor.
10. ¿Qué es un Set?
Es una colección que no permite elementos duplicados.
11. ¿Qué diferencia hay entre HashMap y TreeMap?
o HashMap: Orden aleatorio de claves.
o TreeMap: Ordena las claves según su orden natural o un comparador.
12. ¿Qué es un HashSet?
Es una clase que implementa Set y utiliza una tabla hash para almacenar elementos únicos.
13. ¿Qué es un LinkedList?
Es una lista enlazada que implementa las interfaces List y Deque.
14. ¿Qué es el recolector de basura (Garbage Collector)?
Es un proceso automático que elimina objetos no referenciados para liberar memoria.
15. ¿Qué es la sincronización en Java?
Es un mecanismo para controlar el acceso concurrente a recursos compartidos.
16. ¿Qué es un hilo en Java?
Es un flujo independiente de ejecución dentro de un programa.
17. ¿Cómo se crea un hilo en Java?
Implementando Runnable o extendiendo la clase Thread.
java
Copiar código
class MiHilo extends Thread { public void run() { [Link]("Hilo ejecutado"); } }
18. ¿Qué es un ThreadPool?
Es un grupo de hilos reutilizables para ejecutar tareas concurrentemente.
19. ¿Qué es una excepción personalizada?
Es una clase de excepción definida por el usuario que extiende Exception o RuntimeException.
20. ¿Qué es un try-with-resources?
Es una estructura para manejar recursos que se deben cerrar automáticamente.
java
Copiar código
try (BufferedReader br = new BufferedReader(new FileReader("[Link]"))) { ... }
21. ¿Qué son las anotaciones en Java?
Son metadatos que proporcionan información al compilador o en tiempo de ejecución, como @Override.
22. ¿Qué es la anotación @FunctionalInterface?
Se usa para marcar una interfaz como funcional, asegurando que tenga un solo método abstracto.
23. ¿Qué es la inmutabilidad?
Es una propiedad donde el estado de un objeto no puede cambiar después de ser creado, como en String.
24. ¿Qué es un Optional en Java?
Es un contenedor que maneja valores que pueden ser nulos, evitando NullPointerException.
java
Copiar código
Optional<String> nombre = [Link]("Juan");
[Link]([Link]::println);
25. ¿Qué es el patrón Singleton?
Es un patrón de diseño que asegura una única instancia global de una clase.
java
Copiar código
class Singleton { private static Singleton instancia = new Singleton(); private Singleton() {} public static Singleton getInstance() { return instancia; } }
26. ¿Qué es la clase StringBuilder?
Es una clase para construir y modificar cadenas de texto de forma eficiente.
27. ¿Qué es la reflexión (Reflection)?
Es la capacidad de inspeccionar y modificar clases, métodos y campos en tiempo de ejecución.
28. ¿Qué es un Comparator?
Es una interfaz para definir un criterio de comparación entre objetos.
29. ¿Qué diferencia hay entre Comparable y Comparator?
o Comparable: Define el orden natural de una clase.
o Comparator: Define un orden externo para una clase.
30. ¿Qué es un Predicate?
Es una interfaz funcional que evalúa un valor y devuelve un booleano.
java
Copiar código
Predicate<Integer> esPar = x -> x % 2 == 0;
31. ¿Qué es un CompletableFuture?
Es una clase para realizar programación asíncrona y no bloqueante.
32. ¿Qué es un método genérico?
Es un método que trabaja con tipos parametrizados.
java
Copiar código
public <T> void imprimir(T elemento) { [Link](elemento); }
33. ¿Qué son las wildcards en genéricos?
Son comodines que permiten mayor flexibilidad en genéricos, como <?>, <? extends T>.
34. ¿Qué es el polimorfismo en tiempo de compilación?
Es la capacidad de una clase para tener métodos sobrecargados.
35. ¿Qué es el polimorfismo en tiempo de ejecución?
Es cuando una subclase redefine el comportamiento de un método de la clase base.
36. ¿Qué es un File en Java?
Es una clase que representa abstracciones de archivos y directorios.
37. ¿Qué es la serialización?
Es el proceso de convertir un objeto en una secuencia de bytes.
38. ¿Qué es la deserialización?
Es convertir una secuencia de bytes en un objeto Java.
39. ¿Qué es un volatile en Java?
Es una palabra clave que asegura que el valor de una variable es visible para todos los hilos.
40. ¿Qué es un AtomicInteger?
Es una clase que proporciona operaciones atómicas en un entero, evitando problemas de concurrencia.
41. ¿Qué es un Callable?
Es una interfaz que permite devolver un resultado desde un hilo.
42. ¿Qué diferencia hay entre Runnable y Callable?
o Runnable: No retorna un valor.
o Callable: Retorna un valor y puede lanzar excepciones.
43. ¿Qué es la programación funcional en Java?
Es un paradigma que usa funciones como ciudadanos de primera clase.
44. ¿Qué es un BiFunction?
Es una interfaz funcional que acepta dos argumentos y devuelve un resultado.
45. ¿Qué es la introspección en Java?
Es la capacidad de obtener información sobre las propiedades y métodos de una clase en tiempo de ejecución.
46. ¿Qué es un TreeSet?
Es una implementación de Set que mantiene los elementos ordenados.
47. ¿Qué es un PriorityQueue?
Es una cola que ordena los elementos según su prioridad.
48. ¿Qué es un ConcurrentHashMap?
Es una implementación de Map diseñada para entornos multihilo.
49. ¿Qué es un BlockingQueue?
Es una cola que bloquea las operaciones si está llena o vacía, utilizada en programación concurrente.
50. ¿Qué es la clase ForkJoinPool?
Es un marco para dividir tareas grandes en subtareas más pequeñas para procesarlas concurrentemente.
¿Avanzamos con las 50 preguntas avanzadas?
4o
Tú dijiste:
Si
ChatGPT Plus
ChatGPT
Avanzado (50 preguntas con respuestas)
1. ¿Qué es un patrón de diseño?
Es una solución reutilizable para problemas comunes en el diseño de software. Ejemplo: Singleton, Factory.
2. ¿Qué es el patrón Factory?
Es un patrón que crea objetos sin especificar la clase exacta.
java
Copiar código
interface Producto { }
class ProductoA implements Producto { }
class ProductoB implements Producto { }
class Fabrica {
public Producto crearProducto(String tipo) {
return [Link]("A") ? new ProductoA() : new ProductoB();
3. ¿Qué es el patrón Observer?
Define una relación uno-a-muchos donde los observadores son notificados de cambios en un objeto observado.
4. ¿Qué es un CompletableFuture?
Es una herramienta para realizar programación asíncrona y no bloqueante, permitiendo combinar varias tareas asíncronas.
5. ¿Qué es un patrón Builder?
Es un patrón para construir objetos complejos paso a paso.
java
Copiar código
class Casa {
private int habitaciones;
private boolean piscina;
static class Builder {
private int habitaciones;
private boolean piscina;
Builder setHabitaciones(int h) { habitaciones = h; return this; }
Builder setPiscina(boolean p) { piscina = p; return this; }
Casa build() { return new Casa(this); }
private Casa(Builder builder) {
habitaciones = [Link];
piscina = [Link];
6. ¿Qué es un Deadlock?
Es una condición en la programación concurrente donde dos o más hilos se bloquean esperando recursos que otros poseen.
7. ¿Cómo prevenir un Deadlock?
o Evitar el orden circular de bloqueo.
o Usar bloqueos temporales.
o Usar bibliotecas como [Link].
8. ¿Qué es el patrón Proxy?
Es un intermediario que controla el acceso a un objeto, añadiendo comportamiento adicional.
9. ¿Qué es la serialización personalizada?
Es el proceso de controlar cómo se serializan y deserializan objetos. Implementa los métodos writeObject() y readObject().
10. ¿Qué es el patrón Decorator?
Permite añadir funcionalidades a un objeto de forma dinámica sin modificar su estructura original.
11. ¿Qué es un SoftReference en Java?
Es una referencia que el recolector de basura puede liberar si la memoria es limitada.
12. ¿Qué es un WeakReference?
Es una referencia que el recolector de basura libera inmediatamente si no hay referencias fuertes al objeto.
13. ¿Qué es un PhantomReference?
Es una referencia que no impide la recolección de basura y solo sirve para monitorear su eliminación.
14. ¿Qué es el patrón Adapter?
Es un patrón que permite que dos clases incompatibles trabajen juntas mediante un intermediario.
15. ¿Qué es el patrón Strategy?
Define una familia de algoritmos y permite intercambiarlos en tiempo de ejecución.
16. ¿Qué es una clase interna estática?
Es una clase anidada que no requiere una instancia de la clase externa para ser usada.
17. ¿Qué es la reflexión inversa?
Es el proceso de crear un objeto a partir de un Class en tiempo de ejecución.
18. ¿Qué es un CountDownLatch?
Es una herramienta para sincronizar hilos mediante un contador que los hilos deben esperar a que llegue a cero.
19. ¿Qué es un CyclicBarrier?
Es una barrera que permite a un grupo de hilos esperar hasta que todos lleguen a un punto común.
20. ¿Qué es un Semaphore?
Es un mecanismo que controla el acceso a un recurso limitado mediante permisos.
21. ¿Qué es la inyección de dependencias?
Es un patrón donde un objeto recibe sus dependencias desde el exterior en lugar de crearlas internamente.
22. ¿Qué es el patrón MVC?
Es un patrón que separa la lógica de la aplicación en Modelo, Vista y Controlador.
23. ¿Qué es un ThreadLocal?
Es una clase que permite a los hilos mantener variables independientes.
24. ¿Qué es un patrón de diseño Singleton Thread-Safe?
Es un Singleton que evita problemas de concurrencia al crear la instancia única.
java
Copiar código
class Singleton {
private static volatile Singleton instance;
private Singleton() { }
public static Singleton getInstance() {
if (instance == null) {
synchronized ([Link]) {
if (instance == null) {
instance = new Singleton();
return instance;
25. ¿Qué es el patrón Facade?
Proporciona una interfaz simplificada para un conjunto complejo de subsistemas.
26. ¿Qué es un ForkJoinTask?
Es una tarea que puede dividirse en subtareas para ejecutarse paralelamente en un ForkJoinPool.
27. ¿Qué es un ReentrantLock?
Es una alternativa a la palabra clave synchronized, que permite bloqueos más flexibles.
28. ¿Qué es el patrón Command?
Es un patrón que encapsula una solicitud como un objeto, permitiendo parametrizar acciones.
29. ¿Qué es la reflexión avanzada?
Implica modificar acceso a campos o métodos privados usando [Link](true).
30. ¿Qué es un Memory Leak en Java?
Es una condición donde objetos no utilizables permanecen referenciados, ocupando memoria innecesariamente.
31. ¿Qué es un ExecutorService?
Es un marco para gestionar hilos y ejecutar tareas en segundo plano.
32. ¿Qué es un patrón Composite?
Organiza objetos en estructuras jerárquicas para tratarlos como una unidad.
33. ¿Qué es el patrón Flyweight?
Reduce el uso de memoria compartiendo datos entre múltiples objetos similares.
34. ¿Qué es un Future en Java?
Es una representación del resultado de una tarea asíncrona que puede ser obtenida más tarde.
35. ¿Qué es el patrón Chain of Responsibility?
Pasa una solicitud a través de una cadena de objetos hasta que uno la maneje.
36. ¿Qué es la introspección de objetos?
Permite inspeccionar y modificar propiedades de un objeto en tiempo de ejecución.
37. ¿Qué es un ExecutorCompletionService?
Es una herramienta que facilita recoger resultados de tareas ejecutadas en paralelo.
38. ¿Qué es un patrón Visitor?
Se utiliza para separar algoritmos de las estructuras de datos sobre las que operan.
39. ¿Qué es un AtomicReference?
Es una clase para manejar referencias de objetos de forma atómica y segura para hilos.
40. ¿Qué es el patrón Mediator?
Coordina la comunicación entre múltiples objetos sin que interactúen directamente.
41. ¿Qué es un [Link]()?
Permite procesar un Stream en paralelo usando múltiples hilos.
42. ¿Qué es el patrón Prototype?
Crea nuevos objetos clonando una instancia existente.
43. ¿Qué es el patrón Bridge?
Desacopla una abstracción de su implementación para que puedan variar independientemente.
44. ¿Qué es un ReadWriteLock?
Es un mecanismo que permite múltiples lectores o un único escritor.
45. ¿Qué es un patrón Observer avanzado?
Usa herramientas como [Link] o bibliotecas como RXJava.
46. ¿Qué es el patrón State?
Permite a un objeto cambiar su comportamiento cuando cambia su estado interno.
47. ¿Qué es el patrón Template Method?
Define el esqueleto de un algoritmo en una superclase, dejando detalles a subclases.
48. ¿Qué es un patrón Repository?
Proporciona una capa intermedia entre la lógica de la aplicación y los datos.
49. ¿Qué es el patrón Data Access Object (DAO)?
Abstrae la lógica de acceso a datos de las operaciones de negocio.
50. ¿Qué es un ThreadFactory?
Es una interfaz para crear hilos personalizados según las necesidades de la aplicación.