JavaRush /Blog Java /Random-ES /Pausa para el café #58. 20 preguntas importantes de una e...

Pausa para el café #58. 20 preguntas importantes de una entrevista que un desarrollador de Java debe conocer. Beneficios de conocer múltiples lenguajes de programación

Publicado en el grupo Random-ES

20 preguntas importantes de la entrevista que un desarrollador de Java debe conocer

Fuente: Dev.toPausa para el café #58.  20 preguntas importantes de una entrevista que un desarrollador de Java debe conocer.  Beneficios de conocer múltiples lenguajes de programación - 1

1. ¿Cuáles son los dos tipos de excepciones en Java? ¿Cuál es la diferencia entre ellos?

Respuesta: Hay dos tipos de excepciones en Java: excepciones marcadas y no marcadas.
  1. No es necesario declarar excepciones no comprobadas en una declaración de palabra clave de método o constructor si se pueden generar cuando el método o constructor se ejecuta y se propagan más allá del límite del método o constructor.
  2. Por otro lado, las excepciones marcadas deben declararse en el método del constructor o en la declaración de palabras clave.

2. ¿Qué es la JVM? ¿Por qué se llama a Java un "lenguaje de programación independiente de la plataforma"?

Respuesta: Java Virtual Machine (JVM) es una máquina virtual de proceso que puede ejecutar código de bytes de Java. Cada archivo fuente de Java se compila en un archivo de código de bytes, que es ejecutado por la JVM. El lenguaje Java está diseñado para crear programas de aplicación que puedan ejecutarse en cualquier plataforma, sin la necesidad de reescribirlos o recompilarlos para cada plataforma individual. La máquina virtual Java hace esto posible porque conoce la longitud específica de la instrucción y otras características de la plataforma de hardware subyacente.

3. ¿Cuál es la diferencia entre un subprograma y una aplicación Java?

Respuesta:
  • Los applets se ejecutan en una ventana del navegador compatible con Java.
  • Una aplicación Java es un programa Java independiente que puede ejecutarse fuera del navegador.
Ambos requieren una máquina virtual Java (JVM). Sin embargo, una aplicación Java requiere un método principal con una firma específica para comenzar a ejecutarse. Los subprogramas de Java no necesitan dicho método para comenzar la ejecución. Además, los subprogramas de Java suelen utilizar una política de seguridad restrictiva, mientras que las aplicaciones Java suelen utilizar una política de seguridad más relajada.

4. ¿Cuál es la diferencia entre JDK y JRE?

Respuesta:
  • Java Runtime Environment (JRE) es básicamente una máquina virtual Java (JVM) que ejecuta sus programas Java. También incluye complementos del navegador para ejecutar el subprograma.
  • El Java Development Kit (JDK) es un kit de desarrollo de software con todas las funciones para el lenguaje Java, que incluye JRE, compiladores y herramientas (como JavaDoc y Java Debugger) para permitir al usuario desarrollar, compilar y ejecutar aplicaciones Java.

5. ¿Qué es un servlet?

Respuesta: Un servlet es una clase del lenguaje de programación Java que se utiliza para procesar solicitudes de clientes y crear contenido web dinámico. Los servlets se utilizan principalmente para procesar o almacenar datos enviados mediante un formulario HTML, proporcionar contenido dinámico y administrar información de estado que no está presente en HTTP sin estado.

6. ¿Qué es una página JSP?

Respuesta: Java Server Page (JSP) es un documento de texto que contiene dos tipos de texto:
  • datos estáticos,
  • Elementos JSP.
Los datos estáticos se pueden expresar en cualquier formato de texto, como HTML o XML. JSP es una tecnología que mezcla contenido estático con contenido generado dinámicamente.

7. ¿Qué son las directivas? ¿Qué tipos de directivas están disponibles en JSP?

Respuesta: Las directivas son instrucciones que procesa el motor JSP cuando la página se compila en un servlet. Las directivas se utilizan para establecer instrucciones a nivel de página, insertar datos de archivos externos y especificar bibliotecas de etiquetas personalizadas. Las directivas se definen entre <%@ y %>. Los diferentes tipos de directivas se muestran a continuación:
  • Directiva de inclusión: se utiliza para incluir un archivo y combinar el contenido del archivo con la página actual.
  • Directiva de página: se utiliza para definir ciertos atributos en una página JSP, como la página de error y el búfer.
  • Taglib: se utiliza para declarar un taglib personalizado que se utiliza en la página.

8. ¿Qué hacen los métodos System.gc() y Runtime.gc()?

Respuesta: Estos métodos se pueden utilizar como una pista para que la JVM active la recolección de basura. Normalmente, la máquina virtual Java (JVM) ejecuta la recolección de basura periódicamente o cuando la memoria libre alcanza niveles bajos.

9. ¿Qué diferencias existen entre HashMap y Hashtable?

Respuesta: Existen varias diferencias entre HashMap y Hashtable en Java:
  1. Hashtable está sincronizado mientras que HashMap no. Esto hace que HashMap sea mejor para aplicaciones sin subprocesos, ya que los objetos no sincronizados generalmente funcionan mejor que los sincronizados.
  2. Hashtable no permite claves o valores nulos. HashMap le permite usar una clave nula y cualquier cantidad de valores nulos.
  3. Una de las subclases de HashMap es LinkedHashMap, por lo que si desea un orden de iteración predecible (orden de inserción predeterminado), puede cambiar fácilmente HashMap por LinkedHashMap. Esto no sería tan fácil si estuvieras usando Hashtable.

10. ¿Qué es JDBC?

Respuesta: JDBC es una capa de abstracción que permite a los usuarios elegir entre bases de datos. Con JDBC, los desarrolladores pueden escribir aplicaciones de bases de datos en Java sin preocuparse por los detalles detrás de una base de datos en particular.

11. ¿Qué significa la palabra clave "estática"? ¿Se puede anular un método privado o estático en Java?

Respuesta: La palabra clave estática significa que se puede acceder a un miembro o método variable sin requerir una instancia de la clase a la que pertenece . El usuario no puede anular métodos estáticos en Java porque la anulación de métodos se basa en un enlace dinámico en tiempo de ejecución y los métodos estáticos están vinculados permanentemente en tiempo de compilación. Un método estático no está asociado con ninguna instancia de la clase, por lo que este concepto no es aplicable.

12. ¿Cuál es el significado de un bloque finalmente al manejar excepciones?

Respuesta: Siempre se ejecutará un bloque finalmente , independientemente de si se lanza una excepción. Incluso si no hay una declaración de captura y se produce una excepción. Una última cosa a mencionar es que el bloque finalmente se utiliza para liberar recursos como búferes de E/S, conexiones de bases de datos, etc.

13. ¿Cuál es la diferencia entre excepción y error en Java?

Respuesta: El error es una condición crítica que no puede ser manejada por el código del programa. Una excepción es una situación excepcional que puede manejarse mediante el código del programa.

14. ¿Cuándo un objeto se vuelve elegible para la recolección de basura en Java?

Respuesta: Un objeto Java está sujeto a recolección de basura cuando deja de estar disponible para el programa que lo está usando actualmente.

15. ¿Qué es un iterador?

Respuesta: La interfaz Iterator proporciona una serie de métodos que pueden iterar a través de cualquier colección . Cada colección de Java contiene un método Iterator que devuelve una instancia de Iterator . Los iteradores pueden eliminar elementos de la colección subyacente durante la iteración.

16. ¿Qué es pasar por referencia y pasar por valor?

Respuesta:
  • Cuando un objeto se pasa por valor , significa que se pasa una copia del objeto. De esta manera, incluso si se realizan cambios en este objeto, no afectarán el valor original.
  • Cuando un objeto se pasa por referencia , significa que en realidad no se pasa el objeto, sino que se pasa una referencia al objeto. De esta manera, cualquier cambio realizado por el método externo también se refleja en todos los lugares.

17. ¿Qué es un subprograma de Java?

Respuesta: Un subprograma de Java es un programa que puede incluirse en una página HTML y ejecutarse en un navegador cliente habilitado para Java. Los applets se utilizan para crear aplicaciones web dinámicas e interactivas.

18. ¿Cómo funciona HashMap en Java?

Responder: HashMap en Java almacena pares clave-valor. HashMap requiere una función hash, utiliza hashCode y métodos iguales para configurar y recuperar elementos hacia y desde la colección. Cuando se llama al método put , HashMap calcula el valor hash de la clave y almacena el par en el índice apropiado dentro de la colección. Si la clave existe, su valor se actualiza con el nuevo valor. Algunas características importantes de HashMap son su capacidad, factor de carga y variación del tamaño del umbral.

19. ¿Cuáles son las principales interfaces de Java Collections Framework?

Respuesta: Java Collections Framework es un conjunto diseñado de interfaces y clases que admiten operaciones en colecciones de objetos. Las principales interfaces que se encuentran en Java Collections Framework son:
  • Una Colección representa un grupo de objetos, conocidos como sus elementos.
  • Un Conjunto es una colección que no puede contener elementos duplicados.
  • Una Lista es una colección ordenada que puede contener elementos repetidos.
  • Un mapa es un objeto que asigna claves a valores y no puede contener claves duplicadas.

20. ¿Qué tipos de datos admite Java? ¿Qué es el Autoboxing y Unboxing?

Respuesta: El lenguaje de programación Java admite los siguientes ocho tipos de datos primitivos:
  • byte
  • corto
  • En t
  • largo
  • flotar
  • doble
  • booleano
  • carbonizarse
Autoboxing es una conversión automática realizada por el compilador de Java entre tipos primitivos y sus correspondientes clases contenedoras de objetos. Si la transformación va en sentido contrario, esta operación se llama Unboxing . ¡Gracias por leer y buena suerte en tu entrevista técnica!

Beneficios de conocer múltiples lenguajes de programación

Fuente: Dev.to Personalmente, estoy convencido de que todo desarrollador debería conocer más de un lenguaje de programación. Es decir, si hablamos de lenguajes de programación, el desarrollador debe ser políglota.Pausa para el café #58.  20 preguntas importantes de una entrevista que un desarrollador de Java debe conocer.  Beneficios de conocer múltiples lenguajes de programación - 2

Idiomas primarios y secundarios.

Para facilitar las cosas, permítanme aclarar algunos de los términos utilizados en este artículo. Creo que cada desarrollador debería tener un idioma que prefiera. A este idioma lo llamo el principal. Llamaré auxiliar a cualquier idioma que no sea el principal. Por supuesto, un desarrollador puede cambiar su idioma principal (más de una vez) a lo largo de su carrera. Esto esta bien. Hay muchas razones por las que esto se explica.

Experto

En las discusiones sobre desarrolladores políglotas, a menudo se argumenta que el conocimiento del desarrollador de un segundo idioma tiene el costo de ser menos competente en su idioma principal. Los defensores de esta idea suponen que aprender cada nuevo idioma lleva tiempo y que este tiempo ya no se puede dedicar a adquirir conocimientos de su idioma principal. Esta línea de pensamiento me parece incorrecta. Veo otra analogía: los deportes. Se sabe que practicar un deporte mejora tu rendimiento en otro. Por supuesto, puedes ganar medallas de oro en ambos eventos y es poco probable que los dardos te conviertan en un mejor nadador. Por otro lado, si eres escalador, el yoga te ayudará a desarrollar la flexibilidad y el equilibrio. Por tanto, practicar yoga te convertirá en un mejor escalador de lo que serías sin él. Creo que aprender cada idioma adicional a menudo también mejorará tus habilidades en los otros idiomas que conoces.

Una gama más amplia de herramientas

Además, conocer varios lenguajes de programación mejora enormemente tu arsenal como desarrollador. Amplía tus horizontes y te permite ver ciertas cosas desde diferentes perspectivas. Tomemos un ejemplo de la vida cotidiana. Si alguna vez ha usado un destornillador, estará familiarizado con los tornillos de cabeza Phillips. A primera vista, todos los tornillos de cabeza Phillips son iguales y parece que todos se pueden apretar con un solo destornillador. Sí, te pasa que te cuesta apretar o desatornillar algún tornillo, pero por lo general un destornillador te basta. Pausa para el café #58.  20 preguntas importantes de una entrevista que un desarrollador de Java debe conocer.  Beneficios de conocer múltiples lenguajes de programación - 3Pero un día entras en una tienda de herramientas, miras todos esos hermosos destornilladores y descubres que hay diferentes tipos de destornilladores Phillips. Ves que el destornillador que ya tienes es un Phillips (PH) y decides comprar su hermano gemelo, el Pozidriv (PZ). Y de repente resulta que para algunos tornillos uno es más adecuado y para otros, otro. Parecen iguales, pero no son intercambiables . (Si se preguntaba qué significan las letras PH y PZ de sus destornilladores, ahora lo sabe). Con más conocimientos y una herramienta adicional, podrá hacer un mejor trabajo la próxima vez que necesite apretar un tornillo de cabeza Phillips. Lo mismo ocurre con los lenguajes de programación.

No es necesario pagar por conocimientos adicionales.

Entonces, personalmente no veo el valor de aprender un lenguaje de programación adicional. ¿Serás igualmente excelente en ambos idiomas? Probablemente no, pero es poco probable que ese sea tu objetivo. ¿Aprendes algo nuevo sobre tu idioma principal? Estoy absolutamente seguro de esto. Conocer un nuevo idioma revelará las diferencias entre ellos. Y esto, a su vez, despertará tu curiosidad. Te preguntarás por qué las cosas se hacen de manera diferente en un nuevo idioma y qué hacen. En conclusión, daré un ejemplo de la vida. Utilicé una herramienta de línea de comandos escrita en Python. Cada vez que instalé esta herramienta en una máquina nueva, surgieron problemas y con cada actualización la cantidad de problemas aumentó. Si tiene Go en su caja de herramientas, inmediatamente notará su ventaja en este escenario. Go le permite compilar sus artefactos en un binario autónomo. Puede estar seguro de que una vez compilado, el binario funcionará en todas las máquinas para las que lo compiló. Entonces porté la CLI de Python a Go. Con esta nueva versión, ya no tuve que preocuparme por cambiar el tiempo de ejecución o las dependencias de terceros. Este es un gran ejemplo de cómo elegir la herramienta más adecuada para la tarea. Y para poder elegir, es necesario convertirse en un desarrollador políglota.
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION