¿Entrevista de programación Java fullstack? No te preocupes, te tengo un compendio de preguntas de nivel básico a avanzado.
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:
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.
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:
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
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.
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.
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.
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.
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.
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.
Herencia abstracción, encapsulación y polimorfismo
Es un modelo simplificado del mundo real
Es la forma de proteger nuestros objetos; básicamente la información de un objeto es privada y su comportamiento es accesible.
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,
Es el proceso por el cuál cedes características de un objeto hacia otro generalmente se realiza mediante la palabra reservada extense
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.
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.
Es el equivalente de los cgi de c, es decir un programa que corre en el servidor y que genera html dinámico.
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.
Una existe en el ámbito local y otra en el ámbito de instancia
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.
En java solo existe la herencia monoparental, se puede simular o emular la herencia multipadres mediante interfaces, en la mayoría de los casos.
Encapsulación es para proteger los datos y abstracción es la forma de simplificar un objeto de la realidad
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.
Equals se debe usar para comparar la igualdad entre objetos y el == es para el mismo propósito, pero en primitivos.
Es una de las formas de hacer polimorfismo. En composición redefines el comportamiento para los mismos datos de entrada.
Para agregación cambia la cantidad de valores de entrada para el mimo comportamiento.
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.
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.
Hay dos, checked y unchecked
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?”.
Preguntas de Multithreading
Imprimir duplicados en un arreglo
Hallar el primer duplicado en un arreglo
Hallar el segundo salario más alto de una empresa
Preguntas acerca de spring security
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.
Te comparto aquí mis recomendaciones de cursos de Código Facilito. Codigofacilito.com es una plataforma virtual…
Te comparto aquí mis recomendaciones de cursos de Linkedin Learning. LinkedIn Learning es una plataforma…
Estos snippets de código para entrevista acerca de mockito espero te sean de mucha utilidad.…
En este tutorial aprenderá a usar expresiones regulares en Java de manera práctica para contar…
Te recomiendo algunos cursos de Udemy para mejorar tus softskills y así mejorar en tu…
Aunque hay ofertas que nos parecen buenas, es mejor no apresurarse y conocer todas las…