CodeGym /Blog Java /Random-ES /Preguntas engañosas de Java que se hacen con frecuencia e...
John Squirrels
Nivel 41
San Francisco

Preguntas engañosas de Java que se hacen con frecuencia en las entrevistas

Publicado en el grupo Random-ES
Si alguna vez se preparó para una entrevista para un puesto de programador de Java o aprobó algún examen de certificación (no necesariamente sobre programación), probablemente ya haya notado que las preguntas que se hacen allí son muy específicas. Muchos de ellos te obligan a pensar en el diseño del lenguaje. Algunos están diseñados para sondear las profundidades de su conocimiento. Hay preguntas que parecen más acertijos que otra cosa, mientras que otras se relacionan con matices del lenguaje que son muy difíciles de percibir sin práctica. En este artículo, el desarrollador Sarans Sing presenta algunas preguntas sobre Java. Con respuestas, por supuesto. Preguntas engañosas de Java que se hacen con frecuencia en las entrevistas - 11. ¿Qué sucede si coloco una declaración de devolución o System.exit() en un bloque try/catch? Esta es una pregunta de Java muy popular y sutil. El truco es que muchos programadores creen que el finallybloque siempre se ejecuta. Al colocar una returndeclaración en un try/catchbloque o llamar System.exit()desde dentro de un try/catchbloque, la pregunta pone en duda esta creencia. La respuesta a esta pregunta engañosa es: el finallybloque se ejecutará cuando returnse coloque una declaración en un try/catchbloque, pero no se ejecutará cuando System.exit()se llame desde dentro de un try/catchbloque. 2. ¿Java admite la herencia múltiple? Esta es una pregunta muy difícil. Los entrevistadores a menudo preguntan: "Si C ++ es compatible con la herencia múltiple directa, ¿por qué no lo es Java?" la respuestaes un poco más complicado de lo que parece, ya que Java admite la herencia de tipos múltiples. Después de todo, una interfaz Java puede extender otras interfaces. Dicho esto, Java no admite la herencia múltiple de implementaciones. 3. Si un método en una clase principal arroja NullPointerExceptions, ¿puede ser anulado por un método que arroja RuntimeExceptions? Esta es otra pregunta complicada relacionada con la sobrecarga y la anulación. Respuesta: un método anulado puede generar de manera segura NullPointerExceptionla clase principal de RuntimeException, pero no puede hacer lo mismo con un tipo de excepción verificado como Exception. 4. ¿Cómo garantiza que Nlos subprocesos puedan acceder Na los recursos sin interbloqueos? Si escribir código de subprocesos múltiples no es su fuerte, es posible que realmente se tope con esta pregunta. Puede ser difícil incluso para un programador experimentado que no haya encontrado interbloqueos ni condiciones de carrera. Todo el truco aquí está en el orden: puede evitar bloqueos liberando recursos en el orden inverso al que fueron adquiridos. 5. ¿Cuál es la diferencia entre las clases StringBuffery StringBuilderen Java? Esta es una pregunta clásica del lenguaje Java que algunos desarrolladores encuentran complicada y otros, muy simple. La StringBuilderclase apareció en JDK 1.5. La única diferencia entre estas clases es que StringBufferlos métodos de , como length(), capacity()y append(), están sincronizados, mientras que los métodos correspondientes enStringBuilderno son. Esta diferencia fundamental significa que la concatenación de cadenas es más rápida StringBuildercon StringBuffer. StringBufferEn realidad, no se recomienda su uso , ya que la concatenación de cadenas se realiza en el mismo subproceso el 99 % de las veces. 6. ¿Cuál es el resultado de evaluar la expresión 1.0/0.0? ¿Producirá una excepción o un error de compilación? Esta es otra pregunta engañosa sobre la clase. Los desarrolladores de Java son conscientes de la existencia de un tipo de datos doble primitivo y una clase , pero cuando realizan operaciones de punto flotante no prestan suficiente atención a , , y las reglas que rigen los cálculos aritméticos asociados. La respuesta a esta pregunta es simple: unPreguntas engañosas de Java que se hacen con frecuencia en las entrevistas - 2DoubleDoubleDouble.POSITIVE_INFINITYDouble.NEGATIVE_INFINITYNaN-0.0ArithmeticExceptionno será arrojado; la expresión se evalúa como Double.POSITIVE_INFINITY. 7. ¿Qué sucede si intenta insertar una clave en un HashMapque ya contiene esa clave? Esta pregunta engañosa es parte de otra pregunta frecuente: ¿cómo funciona HashMapJava? HashMapes una fuente popular de preguntas confusas y engañosas sobre Java. Aquí está la respuesta: si intenta volver a insertar una clave en un HashMap, la clave anterior será reemplazada, ya que la HashMapclase no permite claves duplicadas. Y la misma clave obtendrá el mismo código hash, lo que significa que terminará en el mismo lugar en el cubo hash. Basado en materiales de Quora
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION