¿Entrevista de programación Java fullstack? No te preocupes, te tengo un compendio de preguntas de nivel básico a avanzado.
¿Qué es un fullstack?
Esencialmente un desarrollador full-stack es un profesional tan especializado que realiza de manera básica las tareas de varios especialistas. Para poderte considerar como un desarrollador fullstack debes de contar con los siguientes conocimientos técnicos mínimos:
- Programación por lo menos en un lenguaje orientado a backend (Java, C, C#, C++, etc)
- Manejo básico mínimo de tecnologías de frontend (Javascript vainilla, CSS3, HTML5, jQuery, Bootstrap, etc)
- Manejo de middleware (PHP, JBoss, Wildfly, Glassfish, Tomcat, Websphere, etc)
- Conocimientos de base de datos (MySQL, SQLServer, etc)
- Administración de servidores ( RHEL, Debian, Ubuntu, Windows Server, Fedora, etc )
Preguntas de Java
Un fullstack Java debe especializarse en un lenguaje, así que las preguntas a continuación están diseñadas para medir tu nivel de comprensión para el caso de Java, te recomiendo que no dejes de mencionar para nivel intermedio y avanzado tus experiencias en el trabajo con cada cosa que te pregunten
En esta ocasión te traigo un compendio de preguntas que me han hecho en cada entrevista de programación Java en el rol de full-stack.
Qué es un Java FullStack
Esencialmente es un profesional tan especializado que realiza de manera básica las tareas de varios especialistas. Para poderte considerar como un desarrollador fullstack debes de contar con los siguientes conocimientos técnicos mínimos:
- Programación por lo menos en un lenguaje orientado a backend (Java, C, C#, C++, etc) Manejo básico mínimo de tecnologías de frontend (Javascript vainilla, CSS3, HTML5, jQuery, Bootstrap, etc)Manejo de middleware (PHP, JBoss, Wildfly, Glassfish, Tomcat, Websphere, etc)Conocimientos de base de datos (MySQL, SQLServer, etc)Administración de servidores ( RHEL, Debian, Ubuntu, Windows Server, Fedora, etc )
Preguntas de Java
Un fullstack Java debe especializarse en este lenguaje, así que las preguntas a continuación están diseñadas para medir tu nivel de comprensión, te recomiendo que no dejes de mencionar para nivel intermedio y avanzado tus experiencias en el trabajo con cada cosa que te pregunten
Nivel junior
¿Cuál es la diferencia entre Clase y Objeto?
En Java una clase es una abstracción que permite sumarizar las propiedades en común de varios objetos, o mejor dicho de varias instancias de objetos. Visto de forma contraria, se puede considerar como el molde a partir del cual se generan las instancias de objetos. Por ejemplo, Si tenemos a ‘Micifus’ y a ‘Silvestre’, podemos decir que son instancias de la clase Gato, que a su vez pertenece a la clase mamífero.
¿Qué es un constructor?
Un constructor es la forma en que se construye una instancia, en tu clase agregas una especie de método especial llamado constructor que debe tener exactamente el mismo nombre que la clase que lo contiene, y no tener tipo de retorno.
¿Cuál es la diferencia entre error y excepción?
En java los casos problemáticos se manejan con la siguiente jerarquía, primeramente todos ellos son lanzables, en inglés Trowable, dentro de estos hay dos tipos Error y Exception. Los Error son irrecuperables y se deben a problemas críticos ajenos a nuestro programa. Las excepciones no son estrictamente errores, pues con los lenguajes modernos los programas son más robustos y podemos considerar casos poco frecuentes de comportamiento de un usuario como excepciones en vez de errores, es decir, son generalmente omisiones poco frecuentes que deberemos manejar para cubrir todos los cursos de acción posibles sin incurrir en un error.
Diferencia entre finally y finalize
Aunque se parecen no tienen nada que ver, finally se usa en el manejo de excepciones siendo un bloque que se ejecuta siempre sin importar el posible manejo de la excepción. Finalize es lo que en otros lenguajes se conoce como destructor; es un método que se debería ejecutar al destruir una instancia de una clase de objetos. Y no se recomienda usarlo debido a que no se garantiza que se ejecute siempre.
¿Para qué sirve la palabra reservada final?
Es una forma de crear pseudo-constantes. Si se usa con un primitivo será una constante como tal y si se usa con un objeto la referencia no se podrá mover en memoria aunque el valor pueda cambiar.
¿Cuál es la diferencia entre JDK y JRE?
JDK son las herramientas para el desarrollador y JRE es todo lo que se necesita para correr un programa hecho en java que esté en los formatos de java.
¿Cuáles son los 4 pilares de la POO?
Herencia abstracción, encapsulación y polimorfismo
¿Qué es la abstracción?
Es un modelo simplificado del mundo real
¿Qué es la encapsulación?
Es la forma de proteger nuestros objetos; básicamente la información de un objeto es privada y su comportamiento es accesible.
¿Cómo puedo implementar fácilmente el polimorfismo?
La encapsulación se hace fácilmente usando la especificación java bean que consiste en propiedades privadas con accesors, que son getter y setter que son respectivamente para consultar y modificar, y métodos públicos,
¿Qué es la herencia?
Es el proceso por el cuál cedes características de un objeto hacia otro generalmente se realiza mediante la palabra reservada extense
¿Qué tipos de dato existen en java?
Primitivos y objetos. Los primitivos son int flout double bite short long char, En el caso de los objetos hay un caso en particular que es el de String que es algo que diferencia a java de los demás lenguajes.
¿Cuál es la diferencia entre una interfaz y una clase abstracta?
La interface es un contrato de comportamiento que nos va a decir como interactuar o usar un objeto sin darnos los detalles. Es decir, es una especificación. La clase abstracta es una clase que define qué métodos debe tener una clase de objetos sin especificar detalles de implementación. La clase abstracta siempre tiene su correspondiente clase concreta que es estrictamente hablando, su hija y sólo puede tener un hijo. Mientras que la interface se usa para describir comportamientos que debe satisfacer un objeto.
¿Qué es un Servlet?
Es el equivalente de los cgi de c, es decir un programa que corre en el servidor y que genera html dinámico.
¿Qué es paso por referencia y paso por valor?
En el paso por valor se crea una nueva variable al llegar a un nuevo método con su propio espacio de memoria en el caso del paso por referencia, se pasa la referencia en memoria a un objeto para ser utilizado en el método.
¿Cuál es la diferencia entre variable local y variable de instancia?
Una existe en el ámbito local y otra en el ámbito de instancia
Nivel semi-senior
¿Cuál es la diferencia entre un constructor y un método?
Un constructor contrario a lo que se cree, NO es un método, es solamente un bloque de código. Podemos decir esto porque no tiene un tipo de retorno.
Tipos de herencia en Java
En java solo existe la herencia monoparental, se puede simular o emular la herencia multipadres mediante interfaces, en la mayoría de los casos.
Diferencia entre abstracción y encapsulación
Encapsulación es para proteger los datos y abstracción es la forma de simplificar un objeto de la realidad
¿Qué es el autoboxing?
Para los tipos primitivos en java existen sus correspondientes objetos a estos se les llama wrappers, Al proceso de pasar de primitivo a wrapper se le conoce como boxing. Al proceso de pasar de objeto a primitivo de le conoce como un unboxing. A partir de java 1.2? el proceso de realiza automáticamente de ahí que se denomine autoboxing.
Diferencia entre equals e ==
Equals se debe usar para comparar la igualdad entre objetos y el == es para el mismo propósito, pero en primitivos.
¿Qué es composición?
Es una de las formas de hacer polimorfismo. En composición redefines el comportamiento para los mismos datos de entrada.
Define agregación y su diferencia contra composición
Para agregación cambia la cantidad de valores de entrada para el mimo comportamiento.
¿Para qué sirve la palabra reservada static?
Static nos permite tener una propiedad o método para todas las clases de cierto tipo. Para propiedades el valor puede ser modificado por todas las instancias de objeto, siendo usado casi siempre como un estado compartido. En el caso de los métodos estáticos, tienen ciertas ventajas como de que algunos compiladores los optimizan. Son seguros entre hilos y no se necesita crear un objeto para crearlos, en ese sentido son funciones puras.
¿Qué modificadores de acceso existen en Java?
Modificadores de acceso son los mismos tanto para variables de instancia como para métodos y son: público, privado, paquete y por defecto. A cada uno les corresponden las palabras reservadas public, private, package y, en el caso de por defecto no lleva palabra reservada.
¿Qué tipos de excepciones existen?
Hay dos, checked y unchecked
Tipos de polimorfismo
¿Cuál es la diferencia entre overload y override?
¿Qué es un deadlock?
Nivel senior
- ¿Para qué sirve transient?
- Explica el ciclo de vida de un servlet
- ¿Cuál es la diferencia entre hilo y proceso?
- ¿Cuales formas existen de inicializar un hilo?
- Explica el ciclo de vida de un hilo
- ¿Cómo evitas un deadlock?
- ¿Cómo se usa la palabra reservada synchronized?
- ¿Cuál es la diferencia entre los métodos sleep y await en hilos?
- ¿Qué es SOLID?
- ¿Qué es un patrón de diseño?
- ¿Cuales son las categorías de los patrones de diseño?
- ¿Con qué patrones de diseño has trabajado?
- ¿Qué es un singleton?
- ¿Cuáles son las diferencias entre un Bean y un Java Bean?
Estrategia para responder tu entrevista de programación Java fulstack
Si bien las preguntas están clasificadas aparentemente por nivel de complejidad, realmente no es así, y esto te permitirá diferenciar entre un entrevistador mediocre y un entrevistador técnico excelente.
El truco está en que la clasificación está basada realmente en que tan fácil es responder objetivamente, así que el nombre del juego es disertar sobre lo que nos gusta, es decir, no es un exámen de conocimientos, sino un exámen de experiencia.
Te pongo un ejemplo con la pregunta “¿Qué tipos de excepciones existen?”.
- un novato inteligente responderá todas las excepciones que conoce
- un semi-senior te dará la clasificación explicando cuando son checked y cuando no,
- un senior te dirá la clasificación y su opinión acerca de los resultados de implementar la filosofía fail-first contra fail-fast en base a la experiencia en algunos de sus trabajos pasados.
Preguntas de Base de datos
- ¿Para qué sirven los índices?
- ¿Cuál es la diferencia entre where y having?
- Diferencia entre procedimiento almacenado y función
- Formas de unir dos tablas de una base de datos (joins)
- ¿Qué es la normalización?
- ¿Cuál es la diferencia entre truncate y delete?
- Explica que es la normalización
- Cuantas formas normales conoces
- ¿Que significa ACID?
Preguntas de Javascript
- Diferencia entre == e ===
- ¿Qué es una función flecha o arrow function?
- ¿Cuál es la diferencia entre let, const y var?
- ¿Cómo se usa await/async?
Preguntas de Middleware
- ¿Qué métodos de HTTP existen?
- ¿Qué es REST?
- ¿Cuál es la diferencia entre REST y SOAP?
- Comando en linux para buscar una frase en un archivo
Preguntas de Java 8 en adelante
- ¿Qué es una interface funcional?
- Es obligatorio poner @FunctionalInterface para una interfaz funcional?
- Cual es la diferencia en Opcional de usar orElse o orElseGet
- Tipos de operaciones en Java Stream API
- Operadores en el Stream API
Preguntas de Multithreading
- Diferencia entre wait() y sleep()
Ejercicios de programación
Java
Imprimir duplicados en un arreglo
Hallar el primer duplicado en un arreglo
SQL
Hallar el segundo salario más alto de una empresa
preguntas acerca de spring framework
- ¿Para qué sirve qualified? (realmente es pregunta sobre singleton)
- ¿Cómo se usa la anotación value?
- ¿Qué es la inversión de control?
- ¿Qué es la inyección de dependencias?
- Explica que es el contenedor IOC de spring
- ¿Qué anotaciones se usan en spring para inyección de dependencias?
- Diferencia entre spring y spring boot
- Diferencia entre Repository, Service y Controller
- Formas de inyectar dependencias en Spring
- ¿Cuál es el ciclo de vida de spring?
Preguntas acerca de spring security
- Cuál es la diferencia entre autentificación y autorización
- cuál es el flujo de la autenticación
- que información se guarda en un objeto de autenticación
Entrevistas técnicas en 2026
Este año muchas cosas han cambiado. Posiblemente por el uso de los candidatos de la IA para responder, ahora no solamente se hacen preguntas de teoría, sino que las preguntas se orientan a sondear la experiencia del desarrollador para detectar, depurar y corregir problemas en producción. Esto implica que para prepararte deberás de estudiar, codificar, y desplegar tus propios sistemas para obtener la experiencia necesaria a acreditar en entrevistas. es por ello que próximamente te estaré poniendo preguntas para validar tu experiencia en producción.