Descargar PDF
Hemos recopilado las preguntas y respuestas de la entrevista Java más frecuentes que lo ayudarán a prepararse para las preguntas de la entrevista Java básica que un entrevistador podría hacerle durante su entrevista. En esta lista de preguntas de la entrevista básica de Java, hemos cubierto todas las preguntas de la entrevista básica y avanzada de Core Java más frecuentes con respuestas detalladas para ayudarlo a superar la entrevista de trabajo.
La siguiente lista contiene 100 preguntas importantes de la entrevista Core Java para principiantes, así como preguntas y respuestas de la entrevista Java para programadores experimentados para ayudarlos a prepararse para la entrevista. Esta guía detallada de preguntas de la entrevista para la programación Java le ayudará a resolver su entrevista de trabajo fácilmente.
Preguntas y respuestas básicas de la entrevista de Java para principiantes y experimentados
Q1. ¿Cuál es la diferencia entre una clase interior y una subclase?
Respuesta: Una clase interna es una clase que está anidada dentro de otra clase. Una clase interna tiene derechos de acceso para la clase que la anida y puede acceder a todas las variables y métodos definidos en la clase externa.
Una subclase es una clase que hereda de otra clase llamada superclase. La subclase puede acceder a todos los métodos y campos públicos y protegidos de su superclase.
Q2. ¿Cuáles son los distintos especificadores de acceso para las clases de Java?
Respuesta: En Java, los especificadores de acceso son las palabras clave utilizadas antes de un nombre de clase que define el alcance del acceso. Los tipos de especificadores de acceso para clases son:
1. Público: Clase, Método, Campo es accesible desde cualquier lugar.
2. Protegido: Se puede acceder al Método, Campo desde la misma clase a la que pertenecen o desde las subclases, y desde la clase del mismo paquete, pero no desde fuera.
3. Predeterminado: Método, Campo, clase solo se puede acceder desde el mismo paquete y no desde fuera de su paquete nativo.
4. Privado: Método, se puede acceder al campo desde la misma clase a la que pertenecen.
Q3. ¿Cuál es el propósito de los métodos estáticos y las variables estáticas?
Respuesta: Cuando existe el requisito de compartir un método o una variable entre varios objetos de una clase en lugar de crear copias separadas para cada objeto, usamos una palabra clave estática para hacer que un método o una variable se comparta para todos los objetos.
Q4. ¿Qué es la encapsulación de datos y cuál es su importancia?
Respuesta: La encapsulación es un concepto en la programación orientada a objetos para combinar propiedades y métodos en una sola unidad.
La encapsulación ayuda a los programadores a seguir un enfoque modular para el desarrollo de software, ya que cada objeto tiene su propio conjunto de métodos y variables y cumple sus funciones independientemente de otros objetos. La encapsulación también sirve para ocultar datos.
Q5. ¿Qué es una clase singleton? Dé un ejemplo práctico de su uso.
Una clase singleton en java puede tener solo una instancia y, por lo tanto, todos sus métodos y variables pertenecen a una sola instancia. El concepto de clase Singleton es útil para situaciones en las que es necesario limitar el número de objetos de una clase.
El mejor ejemplo de escenario de uso de singleton es cuando existe el límite de tener solo una conexión a una base de datos debido a algunas limitaciones del controlador o debido a problemas de licencia.
Q6. ¿Qué son los bucles en Java? ¿Cuáles son los tres tipos de bucles?
Respuesta: El bucle se usa en programación para ejecutar una declaración o un bloque de declaración repetidamente. Hay tres tipos de bucles en Java:
1) Para bucles
Los bucles for se utilizan en java para ejecutar sentencias repetidamente durante un número determinado de veces. Los bucles for se utilizan cuando el programador conoce el número de veces que se ejecutan las sentencias.
2) Mientras bucles
Mientras que el bucle se usa cuando ciertas declaraciones deben ejecutarse repetidamente hasta que se cumpla una condición. En los bucles while, la condición se comprueba primero antes de la ejecución de las declaraciones.
3) Hacer bucles while
Do While Loop es lo mismo que While con la única diferencia de que la condición se comprueba después de la ejecución del bloque de declaraciones. Por lo tanto, en el caso del bucle do while, las declaraciones se ejecutan al menos una vez.
P7: ¿Qué es un bucle infinito? ¿Cómo se declara el bucle infinito?
Respuesta: Un bucle infinito se ejecuta sin ninguna condición y se ejecuta infinitamente. Un bucle infinito se puede romper definiendo cualquier lógica de ruptura en el cuerpo de los bloques de instrucciones.
El bucle infinito se declara de la siguiente manera:
for (;;){// Statements to execute// Add any loop breaking logic}
Q8. ¿Cuál es la diferencia entre continuar y romper declaración?
Respuesta: romper y continuar son dos palabras clave importantes que se utilizan en bucles. Cuando se usa una palabra clave break en un bucle, el bucle se interrumpe instantáneamente, mientras que cuando se usa la palabra clave continue, la iteración actual se rompe y el bucle continúa con la siguiente iteración.
En el siguiente ejemplo, el bucle se rompe cuando el contador llega a 4.
for (counter = 0; counter & lt; 10; counter++)system.out.println(counter);if (counter == 4) {break;}}
En el siguiente ejemplo, cuando el contador llega a 4, el bucle salta a la siguiente iteración y cualquier declaración después de la palabra clave continue se omite para la iteración actual.
for (counter = 0; counter < 10; counter++)system.out.println(counter);if (counter == 4) {continue;}system.out.println("This will not get printed when counter is 4");}
Q9. ¿Cuál es la diferencia entre variables dobles y flotantes en Java?
Respuesta: En Java, float ocupa 4 bytes en la memoria, mientras que Double ocupa 8 bytes en la memoria. Float es un número decimal de punto flotante de precisión simple, mientras que Double es un número decimal de precisión doble.
Q10. ¿Qué es la palabra clave final en Java? Dar un ejemplo.
Respuesta: En Java, una constante se declara utilizando la palabra clave Final. El valor se puede asignar solo una vez y, después de la asignación, el valor de una constante no se puede cambiar.
En el siguiente ejemplo, se declara una constante con el nombre const_val y se le asigna un valor:
Final privado int const_val = 100
Cuando un método se declara como final, NO puede ser anulado por las subclases. Este método es más rápido que cualquier otro método, porque se resuelve en el momento de cumplimiento.
Cuando una clase se declara final, no se puede subclasificar. Ejemplo String, Integer y otras clases contenedoras.
Q11. ¿Qué es el operador ternario? Dar un ejemplo.
Respuesta: El operador ternario, también llamado operador condicional, se utiliza para decidir qué valor asignar a una variable en función de una evaluación de valor booleano. ¿Se denota como?
En el siguiente ejemplo, si el rango es 1, al estado se le asigna un valor de "Listo" o "Pendiente".
public class conditionTest {public static void main(String args[]) {String status;int rank = 3;status = (rank == 1) ? "Done" : "Pending";System.out.println(status);}}
P12: ¿Cómo se pueden generar números aleatorios en Java?
Respuesta:
- Usando Math.random () puede generar números aleatorios en el rango mayor o igual a 0.1 y menor a 1.0
- Usando la clase aleatoria en el paquete java.util
Q13. ¿Qué es el caso de interruptor predeterminado? Da un ejemplo.
Respuesta: En una declaración de cambio, el caso predeterminado se ejecuta cuando no coincide ninguna otra condición de cambio. El caso predeterminado es un caso opcional. Se puede declarar solo una vez que se hayan codificado todos los demás casos de interruptores.
En el siguiente ejemplo, cuando la puntuación no es 1 o 2, se usa el caso predeterminado.
public class switchExample {int score = 4;public static void main(String args[]) {switch (score) {case 1:system.out.println("Score is 1");break;case 2:system.out.println("Score is 2");break;default:system.out.println("Default Case");}}}
Q14. ¿Cuál es la clase base en Java de la que se derivan todas las clases?
Respuesta: java.lang.object
Q15. ¿Puede el método main () en Java devolver cualquier dato?
Respuesta: En java, el método main () no puede devolver ningún dato y, por lo tanto, siempre se declara con un tipo de retorno vacío.
Q16. ¿Qué son los paquetes de Java? ¿Cuál es el significado de los paquetes?
Respuesta: En Java, el paquete es una colección de clases e interfaces que se empaquetan juntas ya que están relacionadas entre sí. El uso de paquetes ayuda a los desarrolladores a modularizar el código y agrupar el código para su correcta reutilización. Una vez que el código se ha empaquetado en paquetes, se puede importar y utilizar en otras clases.
Q17. ¿Podemos declarar una clase como abstracta sin tener ningún método abstracto?
Respuesta: Sí, podemos crear una clase abstracta usando una palabra clave abstracta antes del nombre de la clase, incluso si no tiene ningún método abstracto. Sin embargo, si una clase tiene incluso un método abstracto, debe declararse como abstracto, de lo contrario, dará un error.
Q18. ¿Cuál es la diferencia entre una clase abstracta y una interfaz en Java?
Respuesta: La principal diferencia entre una clase abstracta y una interfaz es que una interfaz solo puede poseer una declaración de métodos estáticos públicos sin implementación concreta, mientras que una clase abstracta puede tener miembros con cualquier especificador de acceso (público, privado, etc.) con o sin implementación concreta.
Otra diferencia clave en el uso de clases e interfaces abstractas es que una clase que implementa una interfaz debe implementar todos los métodos de la interfaz, mientras que una clase que hereda de una clase abstracta no requiere la implementación de todos los métodos de su superclase.
Una clase puede implementar múltiples interfaces pero solo puede extender una clase abstracta.
Q19. ¿Cuáles son las implicaciones de rendimiento de las interfaces sobre las clases abstractas?
Respuesta: Las interfaces tienen un rendimiento más lento en comparación con las clases abstractas, ya que se requieren indirecciones adicionales para las interfaces. Otro factor clave que los desarrolladores deben tener en cuenta es que cualquier clase puede extender solo una clase abstracta, mientras que una clase puede implementar muchas interfaces.
El uso de interfaces también supone una carga adicional para los desarrolladores, ya que cada vez que se implementa una interfaz en una clase; El desarrollador se ve obligado a implementar todos y cada uno de los métodos de interfaz.
Q20. ¿Importar un paquete también importa sus subpaquetes en Java?
Respuesta: En Java, cuando se importa un paquete, sus subpaquetes no se importan y el desarrollador debe importarlos por separado si es necesario.
Por ejemplo, si un desarrollador importa un paquete university. *, Se cargan todas las clases del paquete llamado university, pero no se carga ninguna clase del subpaquete. Para cargar las clases desde su subpaquete (digamos departamento), el desarrollador debe importarlo explícitamente de la siguiente manera:
Importar departamento universitario. *
Q21. ¿Podemos declarar el método principal de nuestra clase como privado?
Respuesta: En Java, el método principal debe ser público estático para ejecutar cualquier aplicación correctamente. Si el método principal se declara como privado, el desarrollador no obtendrá ningún error de compilación, sin embargo, no se ejecutará y dará un error de tiempo de ejecución.
Q22. ¿Cómo podemos pasar un argumento a una función por referencia en lugar de pasar por valor?
Respuesta: En Java, podemos pasar argumentos a una función solo por valor y no por referencia.
Q23. ¿Cómo se serializa un objeto en Java?
Respuesta: En Java, para convertir un objeto en un flujo de bytes por serialización, la clase implementa una interfaz con el nombre Serializable. Todos los objetos de una clase que implementa una interfaz serializable se serializan y su estado se guarda en un flujo de bytes.
Q24. ¿Cuándo deberíamos usar la serialización?
Respuesta: La serialización se utiliza cuando es necesario transmitir datos a través de la red. Mediante la serialización, el estado del objeto se guarda y se convierte en un flujo de bytes. El flujo de bytes se transfiere a través de la red y el objeto se vuelve a crear en el destino.
Q25. ¿Es obligatorio que un bloque de prueba vaya seguido de un bloque de captura en Java para el manejo de excepciones?
Respuesta: El bloque de prueba debe ser seguido por el bloque Catch o el bloque Finalmente o ambos. Cualquier excepción lanzada desde el bloque try debe quedar atrapada en el bloque catch o, de lo contrario, cualquier tarea específica que deba realizarse antes de que el aborto del código se coloque en el bloque Finalmente.
Q26. ¿Hay alguna forma de omitir el bloque de excepción de Finalmente, incluso si ocurre alguna excepción en el bloque de excepción?
Respuesta: Si se genera una excepción en el bloque Try, el control pasa al bloque catch si existe, de lo contrario, se bloquea finalmente. El bloque finalmente se ejecuta siempre cuando ocurre una excepción y la única forma de evitar la ejecución de cualquier instrucción en el bloque finalmente es abortar el código por la fuerza escribiendo la siguiente línea de código al final del bloque try:
System.exit(0);
Q27. ¿Cuándo se invoca el constructor de una clase?
Respuesta: El constructor de una clase se invoca cada vez que se crea un objeto con una nueva palabra clave.
Por ejemplo, en la siguiente clase, se crean dos objetos con la palabra clave nueva y, por lo tanto, se invoca al constructor dos veces.
public class const_example {const_example() {system.out.println("Inside constructor");}public static void main(String args[]) {const_example c1 = new const_example();const_example c2 = new const_example();}}
Q28. ¿Puede una clase tener varios constructores?
Respuesta: Sí, una clase puede tener varios constructores con diferentes parámetros. El constructor que se utilice para la creación de objetos depende de los argumentos que se pasen al crear los objetos.
Q29. ¿Podemos anular los métodos estáticos de una clase?
Respuesta: No podemos anular los métodos estáticos. Los métodos estáticos pertenecen a una clase y no a objetos individuales y se resuelven en el momento de la compilación (no en el tiempo de ejecución) .Incluso si intentamos anular el método estático, no obtendremos un error de complemento, ni el impacto de anular al ejecutar el código.
Q30. En el siguiente ejemplo, ¿cuál será la salida?
public class superclass {public void displayResult() {system.out.println("Printing from superclass");}}public class subclass extends superclass {public void displayResult() {system.out.println("Displaying from subClass");super.displayResult();}public static void main(String args[]) {subclass obj = new subclass();obj.displayResult();}}
Respuesta : La salida será:
Visualización de subclase
Visualización de superclase
Q31. ¿Es String un tipo de datos en Java?
Respuesta: String no es un tipo de datos primitivo en Java. Cuando se crea una cadena en Java, en realidad es un objeto de la clase Java.Lang.String que se crea. Después de la creación de este objeto de cadena, todos los métodos integrados de la clase String se pueden utilizar en el objeto de cadena.
Q32. En el siguiente ejemplo, ¿cuántos objetos de cadena se crean?
String s1="I am Java Expert";String s2="I am C Expert";String s3="I am Java Expert";
Respuesta: En el ejemplo anterior, se crean dos objetos de la clase Java.Lang.String. s1 y s3 son referencias al mismo objeto.
Q33. ¿Por qué las cadenas en Java se denominan inmutables?
Respuesta: En Java, los objetos de cadena se denominan inmutables, ya que una vez que se ha asignado un valor a una cadena, no se puede cambiar y, si se cambia, se crea un nuevo objeto.
En el siguiente ejemplo, la cadena de referencia se refiere a un objeto de cadena que tiene el valor "Valor uno".
String str="Value One";
Cuando se le asigna un nuevo valor, se crea un nuevo objeto String y la referencia se mueve al nuevo objeto.
str="New Value";
Q34. ¿Cuál es la diferencia entre una matriz y un vector?
Respuesta: Una matriz agrupa datos del mismo tipo primitivo y es de naturaleza estática, mientras que los vectores son de naturaleza dinámica y pueden contener datos de diferentes tipos de datos.
Q35. ¿Qué es el multihilo?
Respuesta: El subproceso múltiple es un concepto de programación para ejecutar múltiples tareas de manera concurrente dentro de un solo programa. Los subprocesos comparten la misma pila de procesos y se ejecutan en paralelo. Ayuda a mejorar el rendimiento de cualquier programa.
Q36. ¿Por qué se utiliza Runnable Interface en Java?
Respuesta: La interfaz ejecutable se utiliza en Java para implementar aplicaciones de subprocesos múltiples. La interfaz Java.Lang.Runnable es implementada por una clase para admitir subprocesos múltiples.
Q37. ¿Cuáles son las dos formas de implementar subprocesos múltiples en Java?
Respuesta: Las aplicaciones de subprocesos múltiples se pueden desarrollar en Java utilizando cualquiera de las dos metodologías siguientes:
1. Mediante el uso de la interfaz Java.Lang.Runnable. Las clases implementan esta interfaz para habilitar múltiples subprocesos. Hay un método Run () en esta interfaz que está implementado.
2. Escribiendo una clase que amplíe la clase Java.Lang.Thread.
Q38. Cuando se requieren muchos cambios en los datos, ¿cuál debería ser una preferencia para usar? String o StringBuffer?
Respuesta: Dado que StringBuffers son de naturaleza dinámica y podemos cambiar los valores de los objetos StringBuffer a diferencia de String que es inmutable, siempre es una buena opción usar StringBuffer cuando los datos se cambian demasiado. Si usamos String en tal caso, por cada cambio de datos se creará un nuevo objeto String que será una sobrecarga adicional.
Q39. ¿Cuál es el propósito de usar Break en cada caso de Switch Statement?
Respuesta: Break se usa después de cada caso (excepto el último) en un interruptor para que el código se rompa después del caso válido y no fluya también en los casos siguientes.
Si no se usa break después de cada caso, todos los casos posteriores al caso válido también se ejecutan, lo que da como resultado resultados incorrectos.
Q40. ¿Cómo se realiza la recolección de basura en Java?
Respuesta: En Java, cuando ya no se hace referencia a un objeto, se realiza la recolección de basura y el objeto se destruye automáticamente. Para la recolección automática de basura, Java llama al método System.gc () o al método Runtime.gc ().
Q41. ¿Cómo podemos ejecutar cualquier código incluso antes del método principal?
Respuesta: Si queremos ejecutar alguna declaración incluso antes de la creación de objetos en el momento de la carga de la clase, podemos usar un bloque de código estático en la clase. Cualquier declaración dentro de este bloque de código estático se ejecutará una vez en el momento de cargar la clase, incluso antes de la creación de objetos en el método principal.
Q42. ¿Puede una clase ser una superclase y una subclase al mismo tiempo? Da un ejemplo.
Respuesta: Si se usa una jerarquía de herencia, una clase puede ser una superclase para otra clase y una subclase para otra al mismo tiempo.
En el siguiente ejemplo, la clase continente es una subclase de clase mundial y es una superclase de clase país.
public class world {… .}public class continenet extends world {… }public class country extends continent {… .}
Q43. ¿Cómo se crean los objetos de una clase si no se define ningún constructor en la clase?
Respuesta: Incluso si no se define ningún constructor explícito en una clase java, los objetos se crean correctamente ya que un constructor predeterminado se utiliza implícitamente para la creación de objetos. Este constructor no tiene parámetros.
Q44. En el subproceso múltiple, ¿cómo podemos asegurarnos de que un recurso no sea utilizado por varios subprocesos simultáneamente?
Respuesta: En el subproceso múltiple, el acceso a los recursos que se comparten entre varios subprocesos se puede controlar mediante el concepto de sincronización. Al usar palabras clave sincronizadas, podemos asegurarnos de que solo un hilo pueda usar un recurso compartido a la vez y que otros puedan obtener el control del recurso solo una vez que se haya liberado del otro que lo usa.
Q45. ¿Podemos llamar al constructor de una clase más de una vez para un objeto?
Respuesta: El constructor se llama automáticamente cuando creamos un objeto usando una nueva palabra clave. Se llama solo una vez para un objeto en el momento de la creación del objeto y, por lo tanto, no podemos invocar al constructor nuevamente para un objeto después de su creación.
Q46. Hay dos clases denominadas classA y classB. Ambas clases están en el mismo paquete. ¿Se puede acceder a un miembro privado de classA mediante un objeto de classB?
Respuesta: Los miembros privados de una clase no son accesibles fuera del alcance de esa clase y cualquier otra clase, incluso en el mismo paquete, no puede acceder a ellos.
Q47. ¿Podemos tener dos métodos en una clase con el mismo nombre?
Respuesta: Podemos definir dos métodos en una clase con el mismo nombre pero con diferente número / tipo de parámetros. El método que se invocará dependerá de los parámetros pasados.
Por ejemplo, en la clase siguiente tenemos dos métodos de impresión con el mismo nombre pero con diferentes parámetros. Dependiendo de los parámetros, se llamará al apropiado:
public class methodExample {public void print() {system.out.println("Print method without parameters.");}public void print(String name) {system.out.println("Print method with parameter");}public static void main(String args[]) {methodExample obj1 = new methodExample();obj1.print();obj1.print("xx");}}
Q48. ¿Cómo podemos hacer una copia de un objeto java?
Respuesta: Podemos usar el concepto de clonación para crear una copia de un objeto. Usando clon, creamos copias con el estado real de un objeto.
Clone () es un método de interfaz Cloneable y, por lo tanto, la interfaz Cloneable debe implementarse para realizar copias de objetos.
Q49. ¿Cuál es el beneficio de usar la herencia?
Respuesta: El beneficio clave de usar la herencia es la reutilización del código, ya que la herencia permite que las subclases reutilicen el código de su superclase. El polimorfismo (extensibilidad) es otro gran beneficio que permite introducir nuevas funciones sin afectar las clases derivadas existentes.
Q50. ¿Cuál es el especificador de acceso predeterminado para variables y métodos de una clase?
Respuesta: El especificador de acceso predeterminado para las variables y el método está protegido por el paquete, es decir, las variables y la clase están disponibles para cualquier otra clase pero en el mismo paquete, no fuera del paquete.
Q51. Dé un ejemplo de uso de Pointers en la clase Java.
Respuesta: No hay punteros en Java. Entonces no podemos usar el concepto de punteros en Java.
Q52. ¿Cómo podemos restringir la herencia de una clase para que ninguna clase pueda heredarse de ella?
Respuesta: Si queremos que una clase no se extienda más por ninguna clase, podemos usar la palabra clave Final con el nombre de la clase.
En el siguiente ejemplo, la clase Stone es Final y no se puede extender
public Final Class Stone {// Class methods and Variables}
Q53. ¿Cuál es el alcance de acceso del especificador de acceso protegido?
Respuesta: Cuando un método o una variable se declara con el especificador de acceso protegido, se vuelve accesible en la misma clase, cualquier otra clase del mismo paquete y una subclase.
Modificador |
Clase |
Paquete |
Subclase |
Mundo |
público |
Y |
Y |
Y |
Y |
protegido |
Y |
Y |
Y |
norte |
sin modificador |
Y |
Y |
norte |
norte |
privado |
Y |
norte |
norte |
norte |
Q54. ¿Cuál es la diferencia entre Stack y Queue?
Respuesta: Tanto la pila como la cola se utilizan como marcador de posición para una recopilación de datos. La principal diferencia entre una pila y una cola es que la pila se basa en el principio Último en entrar, primero en salir (LIFO), mientras que una cola se basa en el principio FIFO (Primero en entrar, primero en salir).
Q55. En Java, ¿cómo podemos rechazar la serialización de variables?
Respuesta: Si queremos que ciertas variables de una clase no sean serializadas, podemos usar la palabra clave transitoria mientras las declaramos. Por ejemplo, la variable trans_var a continuación es una variable transitoria y no se puede serializar:
public class transientExample {private transient trans_var;// rest of the code}
Q56. ¿Cómo podemos usar tipos de datos primitivos como objetos?
Respuesta: Los tipos de datos primitivos como int se pueden manejar como objetos mediante el uso de sus respectivas clases contenedoras. Por ejemplo, Integer es una clase contenedora para el tipo de datos primitivo int. Podemos aplicar diferentes métodos a una clase contenedora, como cualquier otro objeto.
Q57. ¿Qué tipos de excepciones se detectan en tiempo de compilación?
Respuesta: Las excepciones marcadas pueden detectarse en el momento de la compilación del programa. Las excepciones marcadas deben manejarse utilizando el bloque try catch en el código para compilar el código correctamente.
Q58. Describe diferentes estados de un hilo.
Respuesta: Un hilo en Java puede estar en cualquiera de los siguientes estados:
- Listo: cuando se crea un hilo, está en estado Listo.
- En ejecución: un subproceso que se está ejecutando actualmente está en estado de ejecución.
- En espera: un subproceso que espera a que otro subproceso libere ciertos recursos está en estado de espera.
- Muerto: un subproceso que se ha muerto después de la ejecución está en estado muerto.
Q59. ¿Podemos usar un constructor predeterminado de una clase incluso si se define un constructor explícito?
Respuesta: Java proporciona un constructor sin argumentos predeterminado si no se define un constructor explícito en una clase Java. Pero si se ha definido un constructor explícito, el constructor predeterminado no se puede invocar y el desarrollador puede usar solo los constructores que están definidos en la clase.
Q60. ¿Podemos anular un método usando el mismo nombre de método y argumentos pero diferentes tipos de retorno?
Respuesta: La condición básica de la invalidación del método es que el nombre del método, los argumentos y el tipo de retorno deben ser exactamente iguales a los del método que se invalida. Por lo tanto, el uso de un tipo de retorno diferente no anula un método.
P61.¿Cuál será el resultado del siguiente código?
public class operatorExample {public static void main(String args[]) {int x = 4;system.out.println(x++);}}
Respuesta: En este caso, se usa el operador postfix ++ que primero devuelve el valor y luego lo incrementa. Por lo tanto, su salida será 4.
Q61. ¿Una persona dice que compiló una clase Java con éxito sin siquiera tener un método principal en ella? ¿Es posible?
Respuesta: el método principal es un punto de entrada de la clase Java y, sin embargo, es necesario para la ejecución del programa; una clase se compila con éxito incluso si no tiene un método principal. Sin embargo, no se puede ejecutar.
Q62. ¿Podemos llamar a un método no estático desde dentro de un método estático?
Respuesta: Los métodos no estáticos son propiedad de los objetos de una clase y tienen un alcance a nivel de objeto y para llamar a los métodos no estáticos desde un bloque estático (como desde un método principal estático), es necesario crear un objeto de la clase. primero. Luego, utilizando la referencia de objeto, se pueden invocar estos métodos.
Q63. ¿Cuáles son las dos variables de entorno que deben establecerse para ejecutar cualquier programa Java?
Respuesta: Los programas Java se pueden ejecutar en una máquina solo una vez que se hayan configurado correctamente las siguientes dos variables de entorno:
- Variable PATH
- Variable CLASSPATH
Q64. ¿Se pueden usar variables en Java sin inicialización?
Respuesta: En Java, si una variable se usa en un código sin inicialización previa por un valor válido, el programa no se compila y da un error ya que no se asigna ningún valor predeterminado a las variables en Java.
Q65. ¿Se puede heredar una clase en Java de más de una clase?
Respuesta: En Java, una clase puede derivarse de una sola clase y no de varias clases. Java no admite herencias múltiples.
Q66. ¿Puede un constructor tener un nombre diferente al de una clase en Java?
Respuesta: El constructor en Java debe tener el mismo nombre que el nombre de la clase y si el nombre es diferente, no actúa como un constructor y el compilador lo considera un método normal.
Q67. ¿Cuál será la salida de Round (3.7) y Ceil (3.7)?
Respuesta: Round (3.7) devuelve 4 y Ceil (3.7) devuelve 4.
P68: ¿Podemos usar goto en Java para ir a una línea en particular?
Respuesta: En Java, no existe la palabra clave goto y java no admite esta función de ir a una línea etiquetada en particular.
Q69. ¿Se puede volver a iniciar un hilo muerto?
Respuesta: En Java, un hilo que está en estado muerto no se puede iniciar de nuevo. No hay forma de reiniciar un hilo muerto.
Q70. ¿Es correcta la siguiente declaración de clase?
Respuesta:
public abstract final class testClass {// Class methods and variables}
Respuesta: La declaración de clase anterior es incorrecta ya que una clase abstracta no se puede declarar como Final.
Q71. ¿Se requiere JDK en cada máquina para ejecutar un programa Java?
Respuesta: JDK es un kit de desarrollo de Java y se requiere solo para el desarrollo y para ejecutar un programa Java en una máquina, no se requiere JDK. Solo se requiere JRE.
Q72. ¿Cuál es la diferencia entre la comparación realizada por el método equals y el operador ==?
Respuesta: En Java, el método equals () se utiliza para comparar el contenido de dos objetos de cadena y devuelve verdadero si los dos tienen el mismo valor, mientras que el operador == compara las referencias de dos objetos de cadena.
En el siguiente ejemplo, equals () devuelve verdadero ya que los dos objetos de cadena tienen los mismos valores. Sin embargo, el operador == devuelve falso ya que ambos objetos de cadena hacen referencia a objetos diferentes:
public class equalsTest {public static void main(String args[]) {String str1 = new String("Hello World");String str2 = new String("Hello World");if (str1.equals(str2)){ // this condition is trueSystem.out.println("str1 and str2 are equal in terms of values");}if (str1 == str2) {//This condition is trueSystem.out.println("Both strings are referencing same object");} else{// This condition is NOT trueSystem.out.println("Both strings are referencing different objects");}}}
Q73. ¿Es posible definir un método en la clase Java pero proporcionar su implementación en el código de otro lenguaje como C?
Respuesta: Sí, podemos hacer esto mediante el uso de métodos nativos. En el caso del desarrollo basado en métodos nativos, definimos métodos estáticos públicos en nuestra clase Java sin su implementación y luego la implementación se realiza en otro lenguaje como C por separado.
Q74. ¿Cómo se definen los destructores en Java?
Respuesta: En Java, no hay destructores definidos en la clase, ya que no es necesario hacerlo. Java tiene su propio mecanismo de recolección de basura que hace el trabajo automáticamente al destruir los objetos cuando ya no se hace referencia a ellos.
Q75. ¿Puede una variable ser local y estática al mismo tiempo?
Respuesta: No, una variable no puede ser estática y local al mismo tiempo. Definir una variable local como estática produce un error de compilación.
Q76. ¿Podemos tener métodos estáticos en una interfaz?
Respuesta: Los métodos estáticos no se pueden anular en ninguna clase, mientras que los métodos en una interfaz son abstractos por defecto y se supone que deben implementarse en las clases que están implementando la interfaz. Entonces no tiene sentido tener métodos estáticos en una interfaz en Java.
Q77. En una clase que implementa una interfaz, ¿podemos cambiar el valor de cualquier variable definida en la interfaz?
Respuesta: No, no podemos cambiar el valor de ninguna variable de una interfaz en la clase de implementación, ya que todas las variables definidas en la interfaz son por defecto públicas, estáticas y las variables final y final son como constantes que no se pueden cambiar más adelante.
Q78. ¿Es correcto decir que debido a la función de recolección de basura en Java, un programa java nunca se queda sin memoria?
Respuesta: Aunque Java proporciona la recolección automática de basura, no garantiza que un programa Java no se quede sin memoria, ya que existe la posibilidad de que la creación de objetos Java se realice a un ritmo más rápido en comparación con la recolección de basura que resulta en llenado de todos los recursos de memoria disponibles.
Por lo tanto, la recolección de basura ayuda a reducir las posibilidades de que un programa se quede sin memoria, pero no garantiza eso.
Q79. ¿Podemos tener algún otro tipo de devolución que no sea void para el método principal?
Respuesta: No, el método principal de la clase Java solo puede tener un tipo de retorno nulo para que el programa se ejecute correctamente.
No obstante, si es absolutamente necesario devolver un valor a al completar el método principal, puede usar System.exit (int status)
Q80. Quiero volver a alcanzar y usar un objeto una vez que se haya recolectado la basura. ¿Como es posible?
Respuesta: Una vez que un recolector de basura ha destruido un objeto, ya no existe en el montón y no se puede volver a acceder a él. No hay forma de volver a hacer referencia a él.
Q81. En la programación de subprocesos de Java, ¿qué método es una implementación obligatoria para todos los subprocesos?
Respuesta: Run () es un método de interfaz Runnable que deben implementar todos los subprocesos.
Q82. Quiero controlar las conexiones de la base de datos en mi programa y quiero que solo un hilo pueda realizar la conexión a la base de datos a la vez. ¿Cómo puedo implementar esta lógica?
Respuesta: Esto se puede implementar mediante el uso del concepto de sincronización. El código relacionado con la base de datos se puede colocar en un método que tenga una palabra clave sincronizada para que solo un hilo pueda acceder a él a la vez.
Q83. ¿Cómo puede un programador lanzar una excepción manualmente?
Respuesta: Para lanzar una excepción en un bloque de código manualmente, se usa la palabra clave throw . Entonces esta excepción se captura y se maneja en el bloque de captura.
public void topMethod() {try {excMethod();} catch (ManualException e) {}}public void excMethod {String name = null;if (name == null) {throw (new ManualException("Exception thrown manually ");}}
Q84. Quiero que mi clase se desarrolle de tal manera que ninguna otra clase (incluso la clase derivada) pueda crear sus objetos. ¿Como lo puedo hacer?
Respuesta: Si declaramos el constructor de una clase como privado, ninguna otra clase podrá acceder a él y, por lo tanto, ninguna otra clase podrá instanciarlo y la formación de su objeto se limitará solo a sí mismo.
Q85. ¿Cómo se almacenan los objetos en Java?
Respuesta: En Java, cada objeto cuando se crea obtiene un espacio de memoria de un montón. Cuando un recolector de basura destruye un objeto, el espacio que se le asigna desde el montón se reasigna al montón y está disponible para cualquier objeto nuevo.
Q86. ¿Cómo podemos encontrar el tamaño real de un objeto en el montón?
Respuesta: En Java, no hay forma de averiguar el tamaño exacto de un objeto en el montón.
Q87. ¿Cuál de las siguientes clases tendrá más memoria asignada?
Clase A: tres métodos, cuatro variables, sin objeto
Clase B: cinco métodos, tres variables, sin objeto
Respuesta: la memoria no se asigna antes de la creación de objetos. Dado que para ambas clases, no se crean objetos, por lo que no se asigna memoria en el montón para ninguna clase.
Q88. ¿Qué sucede si una excepción no se maneja en un programa?
Respuesta: Si una excepción no se maneja en un programa usando bloques try catch, el programa se aborta y no se ejecuta ninguna instrucción después de la instrucción que causó el lanzamiento de la excepción.
Q89. Tengo varios constructores definidos en una clase. ¿Es posible llamar a un constructor desde el cuerpo de otro constructor?
Respuesta: Si una clase tiene varios constructores, es posible llamar a un constructor desde el cuerpo de otro usando this () .
Q90. ¿Qué se entiende por clase anónima?
Respuesta: Una clase anónima es una clase definida sin ningún nombre en una sola línea de código utilizando una nueva palabra clave.
Por ejemplo, en el siguiente código hemos definido una clase anónima en una línea de código:
public java.util.Enumeration testMethod(){return new java.util.Enumeration(){@Overridepublic boolean hasMoreElements(){// TODO Auto-generated method stubreturn false;}@Overridepublic Object nextElement(){// TODO Auto-generated method stubreturn null;}}
Q91. ¿Hay alguna forma de aumentar el tamaño de una matriz después de su declaración?
Respuesta: Las matrices son estáticas y una vez que hemos especificado su tamaño, no podemos cambiarlo. Si queremos usar colecciones de este tipo donde podemos requerir un cambio de tamaño (no de elementos), deberíamos preferir el vector sobre la matriz.
Q92. Si una aplicación tiene varias clases, ¿está bien tener un método principal en más de una clase?
Respuesta: Si hay un método principal en más de una clase en una aplicación java, no causará ningún problema ya que el punto de entrada para cualquier aplicación será una clase específica y el código comenzará solo desde el método principal de esa clase en particular.
Q93. Quiero conservar los datos de los objetos para su uso posterior. ¿Cuál es el mejor enfoque para hacerlo?
Respuesta: La mejor manera de conservar los datos para uso futuro es utilizar el concepto de serialización.
Q94. ¿Qué es una clase local en Java?
Respuesta: En Java, si definimos una nueva clase dentro de un bloque en particular, se llama clase local. Dicha clase tiene un alcance local y no se puede usar fuera del bloque donde está definida.
Q95. String y StringBuffer representan objetos String. ¿Podemos comparar String y StringBuffer en Java?
Respuesta: Aunque String y StringBuffer representan objetos String, no podemos compararlos entre sí y si intentamos compararlos, obtenemos un error.
Q96. ¿Qué API proporciona Java para operaciones en un conjunto de objetos?
Respuesta: Java proporciona una API de colección que proporciona muchos métodos útiles que se pueden aplicar en un conjunto de objetos. Algunas de las clases importantes proporcionadas por Collection API incluyen ArrayList, HashMap, TreeSet y TreeMap.
Q97. ¿Podemos convertir cualquier otro tipo a tipo booleano con conversión de tipos?
Respuesta: No, no podemos convertir ningún otro tipo primitivo a un tipo de datos booleano ni podemos convertir un tipo de datos booleano a ningún otro tipo de datos primitivo.
Q98. ¿Podemos utilizar diferentes tipos de devolución para los métodos cuando se anulan?
Respuesta: El requisito básico de la anulación de métodos en Java es que el método anulado debe tener el mismo nombre y parámetros, pero un método puede anularse con un tipo de retorno diferente siempre que el nuevo tipo de retorno se extienda al original.
Por ejemplo, el método devuelve un tipo de referencia.
Class B extends A {A method(int x) {//original method}B method(int x) {//overridden method}}
Q99. ¿Cuál es la clase base de todas las clases de excepción?
Respuesta: En Java, Java.lang.Throwable es la superclase de todas las clases de excepción y todas las clases de excepción se derivan de esta clase base.
Q100. ¿Cuál es el orden de llamada de los constructores en herencia?
Respuesta: En caso de herencia, cuando se crea un nuevo objeto de una clase derivada, primero se invoca el constructor de la superclase y luego se invoca el constructor de la clase derivada.
¡Prepárate para tu entrevista de trabajo! Siga el Tutorial de Java para estar mejor preparado.
Este pdf detallado de preguntas de la entrevista de Java lo ayudará a aclarar las dudas sobre las preguntas de la entrevista de Java y también lo ayudará a resolver la entrevista.