Las preguntas de entrevista sobre Java básico te ayudan a prepararte para las entrevistas basadas en Java. Ya seas un principiante o un profesional con mucha experiencia, Java básico juega un papel vital en cualquier entrevista sobre Java/JEE.
Java Core es el área favorita en la mayoría de las entrevistas y juega un papel crucial a la hora de decidir el resultado de la misma.
Esta publicación es el resultado directo de mis más de 14 años de programación en Java y de mi amplia experiencia en entrevistas. Java 16 se lanzó recientemente y actualicé la publicación para incluir algunas de las preguntas de las últimas versiones.
Preguntas y respuestas de la entrevista sobre Java básico
Ya he escrito mucho sobre preguntas de entrevistas de Java para temas específicos como cadenas, colecciones y subprocesos múltiples.
- Preguntas de entrevista sobre cadenas de Java
- Preguntas de la entrevista sobre subprocesos de Java
- Preguntas de la entrevista sobre colecciones de Java
- Preguntas de la entrevista sobre excepciones de Java
Aquí te proporciono algunas de las preguntas más importantes de la entrevista de Java con sus respuestas que debes conocer. Puedes marcar esta publicación como favorita para repasar tus conocimientos antes de acudir a una entrevista.
1. Nombra algunas características importantes de la versión 14 de Java.
Java 14 se lanzó el 17 de marzo de 2020. Es una versión no LTS. Algunas de las características específicas para desarrolladores de Java 14 son:
- Expresiones de cambio – JEP 361
- Mejoras en la coincidencia de patrones del operador instanceof: función de vista previa, JEP 305
- Mensajes útiles de NullPointerException – JEP 358
- Bloques de texto: segunda vista previa, JEP 368
- Registros: clase de datos, función de vista previa, JEP 359.
2. Nombra algunas características importantes de la versión 13 de Java.
Java 13 se lanzó el 17 de septiembre de 2019. Es una versión no LTS. Algunas de las características específicas para desarrolladores de Java 13 son:
- Bloques de texto: función de vista previa, JEP 355
- Expresiones de cambio: función de vista previa, JEP 354
- Reimplementación de la API de Java Sockets – JEP 353
- Archivo CDS dinámico – JEP 350
- Método FileSystems.newFileSystem()
- Fábricas DOM y SAX con soporte de espacios de nombres
- Compatibilidad con Unicode 12.1
- Mejoras de ZGC para recuperar memoria no utilizada – JEP 351
3. Nombra algunas características importantes de la versión Java 12.
Java 12 se lanzó el 19 de marzo de 2019. Es una versión no LTS. Algunas de las características de Java 12 son:
- Cambios en JVM: JEP 189, JEP 346, JEP 344 y JEP 230.
- Expresiones de cambio
- Método de desajuste de archivos
- Formato de números compactos
- Recopiladores de Teeing en Stream API
- Nuevos métodos en la clase String
- JEP 334: API de constantes de JVM
- JEP 305: Coincidencia de patrones para instancias de
- Los literales de cadena sin formato se eliminaron de JDK 12.
4. ¿Cuáles son las características importantes de la versión Java 11?
Java 11 es la segunda versión LTS después de Java 8. Han cambiado el modelo de licencia y soporte, lo que significa que si descargas el Oracle JDK de Java 11, deberás pagar para usarlo con fines comerciales. Si quieres usar una versión gratuita, puedes descargarla desde el sitio web de OpenJDK.
Algunas de las características importantes de Java 11 son:
- Podemos ejecutar un programa Java directamente a través de
javaun comando. El archivo fuente se compilará y ejecutará de manera implícita. Es parte de la implementación de la función JEP 330. - Se han añadido 6 métodos nuevos a la clase String: isBlank(), lines(), strip(), stripLeading(), stripTrailing() y repeat(). Puedes leer todo sobre ellos en nuestro artículo sobre la clase String de Java .
- La clase Archivos obtuvo dos nuevos métodos para leer/escribir datos de cadena: readString() y writeString().
- También podemos usar “var” con expresiones lambda . Es parte de la implementación de JEP 323.
- Epsilon: un recolector de basura sin operaciones para entornos de prueba. Es una función experimental y parte de JEP 318.
- Los módulos Java EE y CORBA se han eliminado de la compilación estándar de JDK. El motor de JavaScript Nashorn también ha quedado obsoleto.
- Nuevo cliente HTTP (JEP 321) y grabador de vuelo (JEP 328)
Para obtener una descripción completa, lea Características de Java 11 .
5. ¿Cuáles son las características importantes de la versión Java 10?
Java 10 es la primera versión semestral de Oracle Corporation, por lo que no es una versión importante como las versiones anteriores. Sin embargo, algunas de las características importantes de Java 10 son:
- Inferencia de tipos de variables locales
- Mejore java.util.Locale y las API relacionadas para implementar extensiones Unicode adicionales de etiquetas de idioma BCP 47.
- Habilite la VM HotSpot para asignar el montón de objetos Java en un dispositivo de memoria alternativo, como un NV-DIMM, especificado por el usuario.
- Proporciona un conjunto predeterminado de certificados de autoridad de certificación (CA) raíz en el JDK.
Java 10 es principalmente una versión de mantenimiento, sin embargo, me gustó mucho la función de inferencia de tipos de variables locales. Para obtener una descripción detallada de Java 10, consulte Características de Java 10 .
6. ¿Cuáles son las características importantes de la versión Java 9?
Java 9 fue un lanzamiento importante que trajo consigo muchas características. Algunas de las características más importantes son:
- REPL de Java 9 (JShell)
- Sistema de módulos de Java 9
- Métodos de fábrica para listas, conjuntos, mapas y entradas de mapas inmutables
- Métodos privados en interfaces
- Flujos reactivos
- Mejoras en el GC (recolector de basura)
Encontrará más detalles sobre ellos en Características de Java 9 .
7. ¿Cuáles son las características importantes de la versión Java 8?
Java 8 se lanzó en marzo de 2014, por lo que es uno de los temas más candentes en las preguntas de entrevistas sobre Java. Si respondes a esta pregunta con claridad, demostrarás que te gusta estar al día con las últimas tecnologías.
Java 8 ha sido uno de los lanzamientos más importantes después de las anotaciones y los genéricos de Java 5. Algunas de las características importantes de Java 8 son:
- Cambios de interfaz con métodos predeterminados y estáticos
- Interfaces funcionales y expresiones Lambda
- API de Java Stream para clases de colección
- API de fecha y hora de Java
Recomiendo encarecidamente consultar los enlaces anteriores para comprender adecuadamente cada uno de ellos; también lea Características de Java 8 .
8. Nombra algunos conceptos de OOPS en Java.
Java se basa en conceptos de programación orientada a objetos, a continuación se presentan algunos de los conceptos OOPS implementados en la programación Java.
- Abstracción
- Encapsulación
- Polimorfismo
- Herencia
- Asociación
- Agregación
- Composición
Lea más sobre ellos en Conceptos OOPS en Java .
9. ¿Qué quiere decir con independencia de la plataforma de Java?
La independencia de la plataforma significa que puedes ejecutar el mismo programa Java en cualquier sistema operativo. Por ejemplo, puedes escribir un programa Java en Windows y ejecutarlo en Mac OS.
10. ¿Qué es JVM y es independiente de la plataforma?
La máquina virtual Java (JVM) es el núcleo del lenguaje de programación Java. La JVM es responsable de convertir el código de bytes en código legible por máquina. La JVM no es independiente de la plataforma, por eso existen distintas JVM para distintos sistemas operativos. Podemos personalizar la JVM con opciones de Java, como asignar la memoria mínima y máxima a la JVM. Se denomina virtual porque proporciona una interfaz que no depende del sistema operativo subyacente.
11. ¿Cuál es la diferencia entre JDK y JVM?
Java Development Kit (JDK) es para fines de desarrollo y JVM es parte de él para ejecutar los programas Java.
JDK proporciona todas las herramientas, ejecutables y binarios necesarios para compilar, depurar y ejecutar un programa Java. La parte de ejecución la gestiona JVM para proporcionar independencia de la máquina.
12. ¿Cuál es la diferencia entre JVM y JRE?
Java Runtime Environment (JRE) es la implementación de JVM. JRE consta de JVM y binarios de Java y otras clases para ejecutar cualquier programa correctamente. JRE no contiene ninguna herramienta de desarrollo como compilador de Java, depurador, etc. Si desea ejecutar cualquier programa de Java, debe tener instalado JRE.
13. ¿Cuál clase es la superclase de todas las clases?
java.lang.Objectes la clase raíz de todas las clases de Java y no necesitamos extenderla.
14. ¿Por qué Java no admite herencias múltiples?
Java no admite la herencia múltiple en clases debido al “problema del diamante”. Para obtener más información sobre el problema del diamante con un ejemplo, lea Herencia múltiple en Java .
Sin embargo, se admiten herencias múltiples en las interfaces. Una interfaz puede extender varias interfaces porque simplemente declaran los métodos y la implementación estará presente en la clase que los implementa. Por lo tanto, no existe el problema del diamante con las interfaces.
15. ¿Por qué Java no es un lenguaje puramente orientado a objetos?
No se dice que Java sea puramente orientado a objetos porque admite tipos primitivos como int, byte, short, long, etc. Creo que aporta simplicidad al lenguaje a la hora de escribir nuestro código. Java podría tener objetos contenedor para los tipos primitivos, pero solo para la representación, no habrían aportado ningún beneficio.
Como sabemos, para todos los tipos primitivos tenemos clases contenedoras como Integer, Long, etc., que proporcionan algunos métodos adicionales.
16. ¿Cuál es la diferencia entre las variables path y classpath?
PATH es una variable de entorno que utiliza el sistema operativo para localizar los ejecutables. Por eso, cuando instalamos Java o queremos que el SO encuentre algún ejecutable, debemos añadir la ubicación del directorio en la variable PATH. Si trabajas con el sistema operativo Windows, lee esta publicación para aprender a configurar la variable PATH en Windows .
Classpath es específico de Java y lo utilizan los ejecutables de Java para ubicar los archivos de clase. Podemos proporcionar la ubicación de la ruta de clase mientras ejecutamos la aplicación Java y puede ser un directorio, archivos ZIP, archivos JAR, etc.
17. ¿Cuál es la importancia del método principal en Java?
El método main() es el punto de entrada de cualquier aplicación Java independiente. La sintaxis del método main es public static void main(String args[]).
El método principal de Java es público y estático, de modo que el entorno de ejecución de Java puede acceder a él sin inicializar la clase. El parámetro de entrada es una matriz de cadenas a través de la cual podemos pasar argumentos del entorno de ejecución al programa Java. Consulta esta publicación para aprender a compilar y ejecutar un programa Java .
18. ¿Qué es la sobrecarga y la anulación en Java?
Cuando tenemos más de un método con el mismo nombre en una sola clase pero los argumentos son diferentes, entonces se llama sobrecarga de métodos.
El concepto de anulación entra en escena con la herencia cuando tenemos dos métodos con la misma firma, uno en la clase padre y otro en la clase hija. Podemos usar la anotación @Override en el método anulado de la clase hija para asegurarnos de que si se modifica el método de la clase padre, también se modifique la clase hija.
19. ¿Podemos sobrecargar el método main()?
Sí, podemos tener varios métodos con el nombre “main” en una sola clase. Sin embargo, si ejecutamos la clase, el entorno de ejecución de Java buscará el método principal con la sintaxis public static void main(String args[]).
20. ¿Podemos tener múltiples clases públicas en un archivo fuente de Java?
No podemos tener más de una clase pública en un solo archivo fuente de Java. Un solo archivo fuente puede tener varias clases que no sean públicas.
21. ¿Qué es un paquete Java y qué paquete se importa de forma predeterminada?
El paquete Java es el mecanismo para organizar las clases Java agrupándolas. La lógica de agrupación puede basarse en la funcionalidad o en los módulos. Un nombre completamente clasificado de una clase Java contiene el nombre del paquete y de la clase. Por ejemplo, java.lang.Objectes el nombre completamente clasificado de Objectla clase que forma parte del java.langpaquete.
El java.langpaquete se importa de forma predeterminada y no necesitamos importar ninguna clase de este paquete explícitamente.
22. ¿Qué son los modificadores de acceso en Java?
Java proporciona control de acceso a través de palabras claves modificadoras de acceso público, privado y protegido. Cuando no se utiliza ninguna de ellas, se denomina modificador de acceso predeterminado.
Una clase Java solo puede tener modificadores de acceso públicos o predeterminados. Lee Modificadores de acceso Java para obtener más información sobre ellos en detalle.
23. ¿Qué es una palabra clave final?
La palabra clave final se utiliza con Class para garantizar que ninguna otra clase pueda extenderla. Por ejemplo, la clase String es final y no podemos extenderla.
Podemos usar la palabra clave final con métodos para asegurarnos de que las clases secundarias no puedan anularla.
La palabra clave final de Java se puede utilizar con variables para garantizar que se pueda asignar solo una vez. Sin embargo, el estado de la variable se puede cambiar; por ejemplo, podemos asignar una variable final a un objeto solo una vez, pero las variables del objeto pueden cambiar más adelante.
Las variables de la interfaz de Java son por defecto finales y estáticas.
24. ¿Qué es una palabra clave estática?
La palabra clave static se puede utilizar con variables de nivel de clase para hacerla global, es decir, todos los objetos compartirán la misma variable.
También podemos usar la palabra clave static con métodos. Un método estático puede acceder únicamente a variables estáticas de la clase e invocar únicamente métodos estáticos de la clase.
Lea más en detalle en la palabra clave estática de Java .
25. ¿Qué es finalmente y finalizar en Java?
El bloque finally se utiliza con try-catch para colocar el código que desea que se ejecute siempre, incluso si el bloque try-catch lanza una excepción. El bloque finally se utiliza principalmente para liberar recursos creados en el bloque try.
El método finalize() es un método especial de la clase Object que podemos anular en nuestras clases. El recolector de elementos no utilizados invoca este método cuando se realiza la recolección de elementos no utilizados del objeto. Este método suele anularse para liberar recursos del sistema cuando se realiza la recolección de elementos no utilizados del objeto.
26. ¿Podemos declarar una clase como estática?
No podemos declarar una clase de nivel superior como estática, pero sí podemos declarar una clase interna como estática. Si la clase interna se declara como estática, se denomina clase anidada estática.
La clase anidada estática es igual que cualquier otra clase de nivel superior y está anidada únicamente para conveniencia del empaquetado.
Lea más sobre las clases internas en la clase interna de Java .
27. ¿Qué es la importación estática?
Si tenemos que utilizar alguna variable o método estático de otra clase, normalmente importamos la clase y luego usamos el método/variable con el nombre de la clase.
import java.lang.Math;//inside classdouble test = Math.PI * 5;
Podemos hacer lo mismo importando solo el método o variable estático y luego usarlo en la clase como si perteneciera a ella.
import static java.lang.Math.PI;//no need to refer class nowdouble test = PI * 5;
El uso de la importación estática puede causar confusión, por lo que es mejor evitarlo. El uso excesivo de la importación estática puede hacer que su programa sea ilegible y difícil de mantener.
28. ¿Qué es try-with-resources en Java?
Una de las características de Java 7 es la sentencia try-with-resources para la gestión automática de recursos. Antes de Java 7, no existía la gestión automática de recursos y debíamos cerrar el recurso explícitamente. Por lo general, esto se hacía en el finallybloque de una sentencia try-catch. Este enfoque solía provocar fugas de memoria cuando olvidábamos cerrar el recurso.
A partir de Java 7, podemos crear recursos dentro del bloque try y usarlo. Java se encarga de cerrarlo tan pronto como finaliza el bloque try-catch. Lea más en Gestión automática de recursos de Java .
29. ¿Qué es un bloque multi-catch en Java?
Una de las mejoras de Java 7 fue un bloque multi-catch que nos permite capturar múltiples excepciones en un solo bloque catch. Esto hace que nuestro código sea más corto y más claro cuando cada bloque catch tiene un código similar.
Si un bloque de captura maneja múltiples excepciones, puedes separarlas usando una barra vertical (|) y, en este caso, el parámetro de excepción (ex) es final, por lo que no puedes cambiarlo.
Lea más en Bloque multi catch de Java .
30. ¿Qué es un bloque estático?
El bloque estático de Java es el grupo de instrucciones que se ejecutan cuando Java ClassLoader carga la clase en la memoria . Se utiliza para inicializar las variables estáticas de la clase. Se utiliza principalmente para crear recursos estáticos cuando se carga la clase.
31. ¿Qué es una interfaz?
Las interfaces son conceptos básicos del lenguaje de programación Java y se utilizan mucho no solo en JDK sino también en los patrones de diseño de Java, la mayoría de los marcos y herramientas. Las interfaces proporcionan una forma de lograr la abstracción en Java y se utilizan para definir el contrato que las subclases deben implementar.
Las interfaces son un buen punto de partida para definir el tipo y crear una jerarquía de nivel superior en nuestro código. Dado que una clase Java puede implementar múltiples interfaces, es mejor utilizar interfaces como superclase en la mayoría de los casos. Lea más en java interface .
32. ¿Qué es una clase abstracta?
Las clases abstractas se utilizan en Java para crear una clase con una implementación de método predeterminada para las subclases. Una clase abstracta puede tener un método abstracto sin el cuerpo y también puede tener métodos con implementación.
La palabra clave abstract se utiliza para crear una clase abstracta. Las clases abstractas no se pueden instanciar y se utilizan principalmente para proporcionar una base para que las subclases extiendan e implementen los métodos abstractos y anulen o utilicen los métodos implementados en la clase abstracta. Lea puntos importantes sobre las clases abstractas en java abstract class .
33. ¿Cuál es la diferencia entre clase abstracta e interfaz?
- La palabra clave abstracta se utiliza para crear clases abstractas, mientras que interfaz es la palabra clave para interfaces.
- Las clases abstractas pueden tener implementaciones de métodos mientras que las interfaces no.
- Una clase sólo puede extender una clase abstracta pero puede implementar múltiples interfaces.
- Podemos ejecutar una clase abstracta si tiene un método main() mientras que no podemos ejecutar una interfaz.
Algunas diferencias más detalladas se encuentran en Diferencia entre clase abstracta e interfaz .
34. ¿Puede una interfaz implementar o extender otra interfaz?
Las interfaces no implementan otra interfaz, sino que la extienden. Dado que las interfaces no pueden tener implementaciones de métodos, no existe el problema del diamante. Por eso tenemos herencias múltiples en las interfaces, es decir, una interfaz puede extender múltiples interfaces.
A partir de Java 8, las interfaces pueden tener implementaciones de métodos predeterminados. Por lo tanto, para solucionar el problema del diamante cuando un método predeterminado común está presente en varias interfaces, es obligatorio proporcionar la implementación del método en la clase que lo implementa. Para obtener más detalles con ejemplos, lea Cambios en la interfaz de Java 8 .
35. ¿Qué es una interfaz de marcador?
Una interfaz de marcador es una interfaz vacía sin ningún método, pero que se utiliza para forzar alguna funcionalidad en la implementación de clases mediante Java. Algunas de las interfaces de marcador más conocidas son Serializable y Cloneable.
36. ¿Qué son las clases Wrapper?
Las clases contenedoras de Java son la representación de objetos de ocho tipos primitivos en Java. Todas las clases contenedoras de Java son inmutables y finales. El autoboxing y unboxing de Java 5 permite una conversión sencilla entre tipos primitivos y sus clases contenedoras correspondientes.
Lea más en Clases Wrapper en Java .
37. ¿Qué es Enum en Java?
Enum se introdujo en Java 1.5 como un nuevo tipo cuyos campos consisten en un conjunto fijo de constantes. Por ejemplo, en Java, podemos crear Direction como un enum con campos fijos como EAST, WEST, NORTH, SOUTH.
enum es la palabra clave para crear un tipo de enumeración y es similar a la clase. Las constantes de enumeración son implícitamente estáticas y finales. Lea más en detalle en java enum .
38. ¿Qué son las anotaciones de Java?
Las anotaciones de Java proporcionan información sobre el código y no tienen un efecto directo en el código que anotan. Las anotaciones se introdujeron en Java 5. Las anotaciones son metadatos sobre el programa integrados en el propio programa. Pueden analizarse mediante la herramienta de análisis de anotaciones o el compilador. También podemos especificar la disponibilidad de las anotaciones solo en tiempo de compilación o hasta el tiempo de ejecución. Las anotaciones integradas de Java son @Override , @Deprecated y @SuppressWarnings . Obtenga más información en java annotations .
39. ¿Qué es Java Reflection API y por qué es tan importante?
La API de reflexión de Java ofrece la posibilidad de inspeccionar y modificar el comportamiento en tiempo de ejecución de una aplicación Java. Podemos inspeccionar una clase, una interfaz y una enumeración de Java y obtener sus métodos y detalles de campo. La API de reflexión es un tema avanzado y deberíamos evitarlo en la programación normal. El uso de la API de reflexión puede romper el patrón de diseño, como el patrón Singleton, al invocar el constructor privado, es decir, violar las reglas de los modificadores de acceso.
Aunque no utilizamos la API de Reflection en la programación normal, es muy importante tenerla. No podemos tener ningún framework como Spring, Hibernate o servidores como Tomcat, JBoss sin la API de Reflection. Invocan los métodos adecuados y crean instancias de clases a través de la API de Reflection y la utilizan mucho para otros procesos.
Lea el tutorial de Java Reflection para obtener un conocimiento profundo de la API de reflexión.
40. ¿Qué es la composición en Java?
La composición es la técnica de diseño para implementar la relación tiene-un en las clases. Podemos utilizar la composición de objetos para reutilizar el código.
La composición en Java se logra mediante el uso de variables de instancia que hacen referencia a otros objetos. El beneficio de usar la composición es que podemos controlar la visibilidad de otros objetos para las clases de cliente y reutilizar solo lo que necesitamos. Lea más con un ejemplo en Ejemplo de composición en Java .
41. ¿Cuál es el beneficio de la composición sobre la herencia?
Una de las mejores prácticas de programación en Java es “privilegiar la composición sobre la herencia”. Algunas de las posibles razones son:
- Cualquier cambio en la superclase puede afectar a la subclase aunque no estemos usando los métodos de la superclase. Por ejemplo, si tenemos un método test() en la subclase y de repente alguien introduce un método test() en la superclase, obtendremos errores de compilación en la subclase. La composición nunca enfrentará este problema porque estamos usando solo los métodos que necesitamos.
- La herencia expone todos los métodos y variables de la superclase al cliente y, si no tenemos control al diseñar la superclase, puede generar fallas de seguridad. La composición nos permite brindar acceso restringido a los métodos y, por lo tanto, más seguro.
- Podemos obtener enlaces en tiempo de ejecución en la composición, donde la herencia vincula las clases en tiempo de compilación. Por lo tanto, la composición brinda flexibilidad en la invocación de métodos.
Puede leer más sobre los beneficios mencionados anteriormente de la composición sobre la herencia en Composición vs herencia de Java .
42. ¿Cómo ordenar una colección de objetos personalizados en Java?
Necesitamos implementar la interfaz Comparable para admitir la clasificación de objetos personalizados en una colección. La interfaz Comparable tiene el método compareTo(T obj) que utilizan los métodos de clasificación y, al proporcionar esta implementación del método, podemos proporcionar una forma predeterminada de clasificar la colección de objetos personalizados.
Sin embargo, si desea ordenar en función de diferentes criterios, como ordenar una colección de empleados en función del salario o la edad, podemos crear instancias de Comparator y pasarlas como metodología de ordenación. Para obtener más detalles, lea Comparable y Comparator de Java .
43. ¿Qué es la clase interna en Java?
Podemos definir una clase dentro de una clase y se denominan clases anidadas. Cualquier clase anidada no estática se conoce como clase interna. Las clases internas están asociadas con el objeto de la clase y pueden acceder a todas las variables y métodos de la clase externa. Dado que las clases internas están asociadas con la instancia, no podemos tener ninguna variable estática en ellas.
Podemos tener una clase interna local o una clase interna anónima dentro de una clase. Para obtener más detalles, lea Clase interna de Java .
44. ¿Qué es la clase interna anónima?
Una clase interna local sin nombre se conoce como clase interna anónima. Una clase anónima se define y se instancia en una sola declaración. Las clases internas anónimas siempre extienden una clase o implementan una interfaz.
Dado que una clase anónima no tiene nombre, no es posible definir un constructor para una clase anónima. Las clases internas anónimas solo son accesibles en el punto en el que se definen.
45. ¿Qué es Classloader en Java?
Java Classloader es el programa que carga el código de bytes en la memoria cuando queremos acceder a una clase. Podemos crear nuestro propio cargador de clases ampliando la clase ClassLoader y anulando el método loadClass(String name). Obtenga más información en java classloader .
46. ¿Cuáles son los diferentes tipos de cargadores de clases?
Hay tres tipos de cargadores de clases integrados en Java.
- Bootstrap ClassLoader: carga clases internas de JDK, normalmente carga rt.jar y otras clases principales.
- Cargador de clases de extensiones: carga clases desde el directorio de extensiones JDK, generalmente el directorio $JAVA_HOME/lib/ext.
- Cargador de clases del sistema: carga clases desde la ruta de clases actual que se puede configurar al invocar un programa usando las opciones de línea de comandos -cp o -classpath.
47. ¿Qué es el operador ternario en Java?
El operador ternario de Java es el único operador condicional que acepta tres operandos. Es un reemplazo de una sola línea para la declaración if-then-else y se usa mucho en la programación Java. Podemos usar condiciones if-else del operador ternario o incluso condiciones de conmutación usando operadores ternarios anidados. Se puede encontrar un ejemplo en operador ternario de Java .
48. ¿Qué hace la palabra clave super?
La palabra clave super se puede utilizar para acceder al método de la superclase cuando se ha anulado el método en la clase secundaria.
Podemos usar la palabra clave super para invocar constructores de superclase en el constructor de la clase secundaria, pero en este caso, debería ser la primera declaración en el método constructor.
package com.journaldev.access;public class SuperClass {public SuperClass(){}public SuperClass(int i){}public void test(){System.out.println("super class test method");}}
El uso de la palabra clave super se puede ver en la implementación de la clase secundaria a continuación.
package com.journaldev.access;public class ChildClass extends SuperClass {public ChildClass(String str){//access super class constructor with super keywordsuper();//access child class methodtest();//use super to access super class methodsuper.test();}@Overridepublic void test(){System.out.println("child class test method");}}
49. ¿Qué es la declaración break y continue?
Podemos usar la sentencia break para finalizar un bucle for, while o do-while. Podemos usar una sentencia break en la sentencia switch para salir del caso switch. Puedes ver el ejemplo de sentencia break en java break . Podemos usar una sentencia break con la etiqueta para finalizar los bucles anidados.
La instrucción continue omite la iteración actual de un bucle for, while o do-while. Podemos usar la instrucción continue con la etiqueta para omitir la iteración actual del bucle más externo.
50. ¿Qué es esta palabra clave en Java?
Esta palabra clave proporciona la referencia al objeto actual y se utiliza principalmente para garantizar que se utilicen las variables del objeto, no las variables locales que tienen el mismo nombre.
//constructorpublic Point(int x, int y) { this.x = x; this.y = y;}
También podemos usar esta palabra clave para invocar otros constructores desde un constructor.
public Rectangle() { this(0, 0, 0, 0);}public Rectangle(int width, int height) { this(0, 0, width, height);}public Rectangle(int x, int y, int width, int height) { this.x = x; this.y = y; this.width = width; this.height = height;}
51. ¿Qué es el constructor predeterminado?
El constructor sin argumentos de una clase se conoce como constructor predeterminado. Cuando no definimos ningún constructor para la clase, el compilador de Java crea automáticamente el constructor sin argumentos predeterminado para la clase. Si hay otros constructores definidos, el compilador no creará el constructor predeterminado para nosotros.
52. ¿Podemos tener try sin bloque catch?
Sí, podemos tener una declaración try-finally y así evitar el bloque catch.
53. ¿Qué es la recolección de basura?
La recolección de basura es el proceso de examinar la memoria del montón, identificar qué objetos están en