JavaRush /Blog Java /Random-ES /Pausa para el café #145. 90 preguntas y respuestas frecue...

Pausa para el café #145. 90 preguntas y respuestas frecuentes de la entrevista sobre Java

Publicado en el grupo Random-ES
Fuente: Usemynotes Esta publicación contiene una lista de preguntas que se encuentran a menudo en entrevistas con desarrolladores de Java de nivel básico e intermedio. Pausa para el café #145.  90 preguntas y respuestas frecuentes de la entrevista Java - 1

1. ¿Qué hace que Java sea un lenguaje independiente de la plataforma?

Java se denomina lenguaje independiente de la plataforma porque el código de bytes generado por el JDK (Java Development Kit) puede ser ejecutado por la JVM (Java Virtual Machine) en cualquier plataforma, independientemente del sistema operativo.

2. ¿Por qué Java no es un lenguaje totalmente orientado a objetos?

Java no es un lenguaje totalmente orientado a objetos porque utiliza ocho tipos de datos primitivos que no son objetos: booleano , byte , char , int , float , double , long y short .

3. ¿Por qué el método main() se vuelve estático en Java?

El método main() se declara estático para que pueda llamarse directamente desde la JVM sin crear un objeto o instancia de la clase en la que se declara.

4. ¿Qué son las clases contenedoras en Java?

En Java, cada tipo de datos primitivo como int , float tiene una clase correspondiente conocida como clases contenedoras. También se les llama contenedores porque envuelven o convierten un tipo de datos primitivo en objetos.

5. ¿Qué es un constructor en Java?

Los constructores en Java son métodos especiales que se llaman automáticamente cuando se crea un objeto o una instancia. Los nombres del constructor y de la clase deben coincidir.

6. ¿Cuáles son las diferencias entre matrices y ArrayList en Java?

matrices Lista de arreglo
Es una estructura de datos estática, lo que significa que su tamaño es fijo y no se puede cambiar. Es una matriz de longitud variable o de tamaño dinámico en una estructura de colección, lo que significa que su tamaño se puede cambiar según los requisitos.
Pueden almacenar tanto objetos como tipos primitivos. Sólo puede almacenar o contener objetos, pero no tipos primitivos.
Podemos acceder a un elemento especificando su índice entre corchetes []. Podemos acceder a un elemento especificando su número de índice dentro del método get() .

7. ¿Por qué Java no usa punteros?

Java no utiliza punteros porque no son seguros y además añaden complejidad al programa. Además, Java evita los punteros para evitar proporcionar acceso directo a la memoria al usuario.

8. ¿Qué tipos de modificadores de acceso existen en Java?

En Java, los modificadores de acceso son palabras clave que se utilizan para indicar el acceso a una clase y a métodos fuera de la clase o en otra clase. Hay cuatro tipos diferentes de modificadores de acceso en Java:
  • Por defecto
  • Público
  • Privado
  • Protegido

9. ¿Qué es JIT en Java?

JIT es un acrónimo de Compilador Just-In-Time en Java. En tiempo de ejecución, convierte el código de bytes en código de máquina nativo. El compilador JIT ayuda a mejorar el rendimiento de los programas Java.

10. ¿Cuál es la palabra clave final en Java?

La palabra clave final en Java se utiliza para representar constantes. Se puede utilizar con variables, clases y métodos.
  • Si la palabra clave final se usa con variables, no puede cambiar su valor.
  • Si la palabra clave final se usa con métodos, no puede anular ese método.
  • Si declara una clase final , entonces esa clase no puede ser extendida ni heredada por una subclase.

11. ¿Cuáles son los conceptos básicos de la POO o Programación Orientada a Objetos en Java?

La programación orientada a objetos u POO en Java utiliza 4 conceptos principales:
  • Encapsulación.
  • Abstracción.
  • Herencia.
  • Polimorfismo.

12. ¿Qué es una clase singleton en Java y cómo convertir una clase en un singleton?

En Java, una clase singleton es una clase que tiene solo una instancia u objeto. Al crear un constructor privado, podemos convertir la clase en un singleton.

13. ¿Cuál es la diferencia entre variables locales y variables de instancia en Java?

Una variable local se define dentro de un bloque o método. El alcance de una variable local está exclusivamente dentro del bloque. Una variable de instancia de clase es una variable que se define dentro de la clase pero fuera del método. Se accede a él creando un objeto de la clase y finaliza cuando se elimina el objeto.

14. ¿Qué es la POO o Programación Orientada a Objetos?

La programación orientada a objetos u OOP es un paradigma de programación utilizado para desarrollar programas o aplicaciones utilizando el concepto de objetos.

15. ¿Qué hace que las cadenas de Java sean inmutables?

Las cadenas en Java son inmutables, lo que significa que una vez que se crea un objeto de cadena, no se puede actualizar, pero se crea un nuevo objeto de cadena. Esto se debe a que los objetos de cadena se almacenan en caché en el grupo de cadenas.

16. Describe las diferencias entre interfaz y clases abstractas en Java.

Interfaz Clase abstracta
Sólo puede tener métodos abstractos. Permite métodos tanto abstractos como no abstractos.
La subclase implementa la interfaz utilizando la palabra clave Implements . Una subclase o clase derivada hereda la abstracción mediante el uso de palabras clave para ampliar la implementación (extiende).
Una interfaz sólo puede tener métodos estáticos públicos sin implementación. Puede tener métodos sin implementación o con implementación.
Todos los métodos de una interfaz deben ser implementados por la clase que la implementa. Una clase que hereda de una clase abstracta no necesita implementar todos los métodos de su superclase.

17. ¿Qué quieres decir con polimorfismo y cuáles son sus tipos?

El polimorfismo en Java es la capacidad de un objeto de adoptar más de una forma. También se puede definir como una única tarea o actividad que se puede realizar de diferentes maneras. El polimorfismo se divide en dos tipos:
  1. Polimorfismo en tiempo de compilación.
  2. Polimorfismo en tiempo de ejecución.

18. ¿Cómo logra Java el polimorfismo en tiempo de compilación y tiempo de ejecución?

En Java, el polimorfismo en tiempo de compilación se logra mediante la sobrecarga de métodos, mientras que el polimorfismo en tiempo de ejecución se logra mediante la anulación de métodos.

19. ¿Qué quieres decir con abstracción y cómo se logra en Java?

La abstracción es el acto de representar información importante sin mostrar detalles internos o de implementación. En Java, esto se logra mediante el uso de clases e interfaces abstractas.

20. ¿Qué son las interfaces en Java?

Una interfaz en Java es un conjunto de métodos abstractos con solo declaraciones de funciones, pero sin implementación. No podemos crear objetos o instancias de una interfaz. Una interfaz no puede tener constructores. Una clase puede implementar múltiples interfaces usando la palabra clave Implements en Java.

21. ¿Qué tipos de herencia existen en Java?

En Java, utilizamos las palabras clave extends para heredar los atributos y métodos de una superclase o clase base. Hay cinco tipos de herencia:
  1. Herencia única.
  2. Herencia multinivel.
  3. Herencia jerárquica.
  4. Herencia múltiple a través de interfaz.
  5. Herencia híbrida.

22. ¿Por qué Java no admite la herencia múltiple?

Java no admite herencia múltiple para evitar ambigüedades. Por ejemplo, supongamos que hay dos superclases A y B, y una subclase C que hereda tanto A como B. Ambas clases A y B tienen un método show() . Si llamamos al método show() creando un objeto de clase C, entonces el compilador arroja un error porque no está claro qué clase del método show() debe ejecutarse.

23. ¿Cuál es la diferencia entre sobrecarga de métodos y anulación de métodos?

Sobrecarga de métodos Anulación del método
Polimorfismo en tiempo de compilación. Polimorfismo en tiempo de ejecución.
Dos o más métodos en la misma clase con la misma función o nombre de método pero firmas diferentes. Dos o más métodos que tienen la misma función o nombre de método y firma en diferentes clases.

24. ¿Es posible anular un método estático o privado en Java?

No se puede acceder a un método privado fuera de la clase, por lo que una subclase no lo anulará. Por lo tanto, no se puede anular. De manera similar, un método estático no se puede anular porque si creamos métodos estáticos con el mismo nombre de método y firma tanto en la clase base como en la derivada, la clase derivada ocultará los métodos en la clase base. Esto se conoce como método de ocultación.

25. ¿Qué es la sobrecarga del constructor en Java?

En Java, se considera que un constructor está sobrecargado si una clase tiene más de un constructor, pero con una lista diferente de parámetros.

26. ¿Podemos definir una clase abstracta incluso si no tiene métodos abstractos?

Sí, podemos crear una clase abstracta incluso si no tiene un método abstracto. Sin embargo, si una clase contiene al menos un método abstracto, debe definirse como abstracta; de lo contrario, se producirá un error.

27. ¿Para qué sirven las variables y métodos estáticos?

Usamos miembros estáticos (métodos y variables) cuando queremos usar un método o variable común para todos los objetos de una clase en lugar de crear múltiples copias de cada objeto. Por ejemplo, en la clase Empleado, el nombre de la empresa se puede hacer estático porque todos los objetos tendrán el mismo nombre de la empresa.

28. ¿Cuántos tipos diferentes de constructores existen en Java?

Hay 2 tipos de constructores en Java:
  1. El constructor predeterminado no acepta ningún parámetro.
  2. Constructor parametrizado: toma al menos un parámetro.

29. ¿Java utiliza un constructor de copias?

No, Java no tiene un constructor de copias como C++.

30. Indique las diferencias entre constructor y métodos en Java.

Constructor Método
Es obligatorio que el nombre del constructor y el nombre de la clase coincidan. El nombre del método puede ser o no el mismo que el nombre de la clase.
No puede tener un tipo de devolución. Requerido tener un tipo de devolución.
Los constructores no pueden ser estáticos. El método puede ser estático o no.
Se invoca o llama automáticamente cuando se crea un objeto o instancia de una clase. Se invoca o aplica utilizando el nombre del objeto junto con un punto (.).
Se utiliza para inicializar el estado de un objeto. Se utiliza para definir el comportamiento de un objeto.

31. ¿Es posible ejecutar un programa sin utilizar el método main()?

No, un programa no se puede ejecutar sin el método main() en Java porque la ejecución del programa comienza desde el método main() .

32. ¿Qué significa esta palabra clave en Java?

La palabra clave this en Java es una variable de referencia que se utiliza para hacer referencia al objeto actual que llama a un método o variable.

33. ¿Es posible utilizar la palabra clave this en Java para hacer referencia a miembros estáticos?

Sí, dado que es una variable de referencia para el objeto actual, podemos usar la palabra clave this para referirnos a miembros estáticos.

34. ¿Podemos hacer que el método main() en Java sea privado en lugar de público?

Podemos hacer que el método main() sea privado, pero luego obtendremos un error de tiempo de ejecución y, por lo tanto, el programa no se ejecutará.

35. ¿Qué significa la palabra clave super en Java?

En Java, la palabra clave super es una variable de referencia que se utiliza para hacer referencia a un objeto de la clase principal inmediata.

36. Indique las diferencias entre un vector y una matriz.

Vector Formación
Esta es una matriz de tamaño dinámico. Es una estructura de datos de tamaño fijo.
El vector está sincronizado. La matriz no está sincronizada.
Es más lento en comparación con una matriz. Es más rápido en comparación con el vector.
Sólo puede contener o almacenar objetos Java. Se utiliza para almacenar tanto tipos primitivos como objetos Java.
Podemos usar el método size() para averiguar la longitud del vector. Podemos usar la propiedad de longitud para averiguar la longitud de la matriz.

37. ¿Qué es el subproceso múltiple en Java?

Multithreading es el proceso de ejecutar múltiples tareas simultáneamente dentro de un solo programa. Esto se hace para lograr la carga máxima del procesador.

38. ¿Cuáles son las formas de implementar subprocesos múltiples en Java?

El multiproceso en Java se puede implementar de dos formas:
  1. Implementando la interfaz Runnable en java.lang.Runnable .
  2. Ampliando la clase Thread en java.lang.Thread .

39. Indique algunas diferencias entre las palabras clave super y this en Java.

Súper Este
Se utiliza para referirse a objetos de la clase principal. Se utiliza para referirse al objeto de clase actual.
Se utiliza para acceder a métodos de una clase principal o base. Se utiliza para acceder a un método de la clase actual.
Llama al constructor predeterminado de la clase base. Llama al constructor predeterminado de la clase actual.

40. ¿Cuáles son las diferencias entre una subclase y una clase interna?

Subclase clase interna
Esta es una clase que hereda las propiedades y métodos de una clase base o principal. Esta es una clase anidada dentro de otra clase.
Puede acceder a todos los miembros públicos y protegidos de una superclase o clase base. Tiene acceso a todos los miembros de la clase externa.

41. ​​¿Qué es un cargador de clases en Java?

El cargador de clases Java es un componente de Java Runtime Environment o JRE que se utiliza para cargar clases Java en la máquina virtual Java (JVM) en tiempo de ejecución.

42. ¿Es necesario que a un bloque Try le siga el manejo de excepciones de Java en un bloque Catch?

Sí, es obligatorio utilizar un bloque catch porque cualquier excepción lanzada por un bloque try debe quedar atrapada en el bloque catch .

43. Nombra los tipos de excepciones en Java.

Las excepciones en Java son de dos tipos:
  1. excepción no marcada
  2. excepción marcada

44. ¿Cuáles son los estados del hilo?

Hay 4 estados de subprocesos en Java:
  1. Nueva corriente.
  2. Ejecutable.
  3. No ejecutable.
  4. Muerto o Terminado.

45. ¿Qué es una excepción NullPointerException?

Cuando un usuario intenta acceder o cambiar los valores de un objeto nulo, se lanza una NullPointerException .

46. ​​​​¿Qué tipos de palabras clave se utilizan en el manejo de excepciones de Java?

  1. intentar

  2. atrapar

  3. finalmente

  4. tirar

  5. lanza

47. ¿Es posible sobrecargar el método main() en Java?

Sí, el método main() se puede sobrecargar, pero la JVM o la máquina virtual Java solo llama al método main() original .

48. ¿Es posible anular el método main() en Java?

No, porque el método main() es un método estático y los métodos estáticos no se pueden anular.

49. ¿Cuáles son las diferencias entre iguales() y ==?

En Java, equals() es un método utilizado para comparar los valores de dos objetos o variables, mientras que == es un operador de comparación utilizado para comparar las direcciones o ubicaciones de memoria de dos objetos o variables más.

50. ¿Puede un constructor de clase devolver algún valor?

No, el constructor no tiene un tipo de retorno, por lo que no puede devolver ningún valor.

51. Definir agregación

La agregación es una forma de asociación que se define como una relación entre dos clases. Esto se hace para la reutilización del código. Esta es una relación unidireccional o unidireccional entre dos clases.

52. ¿Qué es una asociación?

Una asociación define una relación entre dos clases utilizando objetos. La relación o asociación puede ser uno a uno, uno a muchos, muchos a muchos o muchos a uno. La agregación y la composición son dos formas de asociación.

53. ¿Qué es la composición?

La composición es una forma de asociación en la que dos clases dependen una de otra.

54. ¿Cuál es la diferencia entre vinculación dinámica y estática?

Con el enlace dinámico, la decisión de vincular un método a un objeto se toma en tiempo de ejecución. El enlace tardío es otro nombre para el enlace dinámico. Con el enlace estático, la decisión de vincular un método a un objeto se toma en tiempo de compilación. El enlace estático es otro nombre para el enlace anticipado.

55. Indique la diferencia entre encapsulación y abstracción.

En la encapsulación, los datos y métodos se empaquetan o agrupan en una única unidad conocida como clase. La abstracción muestra solo información importante y oculta detalles internos o de implementación.

56. ¿Qué es una clase abstracta en Java?

Una clase abstracta es una clase de la que no se puede crear una instancia, pero podemos crear una variable de referencia. Una clase se declara abstracta utilizando la palabra clave abstracta. Incluye métodos tanto abstractos como no abstractos.

57. ¿Podemos utilizar palabras clave finales y abstractas en un método?

No, no podemos usar métodos finales y estáticos junto con abstractos porque una subclase debe anular un método abstracto y un método final no se puede anular.

58. ¿Podemos declarar un método como final en una interfaz?

No, no podemos declarar un método como final porque todos los métodos en una interfaz son abstractos, por lo que debe ser implementado por una subclase y un método final no se puede anular.

59. Nombra la clase base de todas las clases de excepción de Java.

La clase base para todas las excepciones es java.lang.Throwable .

60. ¿Es posible crear varios bloques catch en un bloque try?

Sí, podemos crear varios bloques catch para un bloque try .

61. Defina dos variables de entorno que deben especificarse para ejecutar cualquier programa Java.

  1. Variable de ruta.
  2. Variable de ruta de clase.

62. ¿Es posible utilizar un destructor en Java?

No, no podemos usar destructores en Java.

63. ¿Qué quieres decir con clase anónima?

Una clase interna anónima en Java no tiene nombre y crea un solo objeto.

64. Nombra un método Java que debe implementarse para todos los subprocesos.

Método ejecutar() .

65. ¿Cuál es la diferencia entre interrumpir y continuar en Java?

Romper Continuar
Se utiliza para terminar o finalizar un bucle si se cumple una determinada condición. Se utiliza para omitir la ejecución del bucle de la iteración actual en función de alguna condición.
Se puede utilizar dentro de un bucle y un interruptor. Sólo se utiliza dentro de un bucle.

66. ¿Qué son los grupos de cadenas en Java?

Un grupo de cadenas en Java es una colección de cadenas almacenadas en la memoria del montón.

67. ¿Cuál es la diferencia entre las palabras clave throw y throws en Java?

Tirar Lanza
Se utiliza para lanzar explícitamente una excepción. Se utiliza para declarar una excepción que puede generar un método en tiempo de ejecución.
Se utiliza dentro del cuerpo del método. Usando las palabras clave throws , podemos declarar múltiples excepciones.
A Throw le sigue una instancia de la clase Exception . Va seguido del nombre de la clase de excepción que se va a lanzar.

68. ¿Es posible llamar a un constructor dentro de otro constructor de la misma clase?

Sí, podemos llamar a un constructor de la misma clase dentro de otro constructor usando this() como primera línea.

69. ¿Es posible comparar String Buffer y la clase String en Java?

No, no podemos comparar objetos String Buffer y String . Porque obtendremos un error.

70. ¿En qué secuencia se llaman los constructores durante la herencia?

Primero se llama al constructor de la clase principal o base y luego al constructor de la clase derivada.

71. ¿Podemos nombrar un constructor que no sea el nombre de la clase?

No, el constructor y el nombre de la clase deben ser iguales.

72. ¿Qué son los paquetes Java?

Un paquete es una colección de clases e interfaces agrupadas.

73. ¿Cuál es la diferencia entre las clases String y StringBuffer?

Cadena búfer de cadena
La clase String es inmutable. La clase StringBuffer es mutable.
Más lento que StringBuffer . Más rápido que String .
Utiliza más memoria al concatenar muchas cadenas. Utiliza menos memoria al concatenar muchas cadenas.

74. ¿Es posible sobrecargar métodos estáticos en Java?

Sí, podemos sobrecargar métodos estáticos en Java pasando diferentes firmas de funciones.

75. ¿Qué componente de la memoria, la pila o el montón, se limpia durante la recolección de basura?

Montón.

76. ¿Cuál de las siguientes clases de cadenas se debe utilizar cuando los datos deben actualizarse con frecuencia?

La clase StringBuffer debe usarse en caso de actualizaciones frecuentes, ya que es mutable y, por lo tanto, el grupo de cadenas no se sobrecargará.

77. ¿Qué sucede si la palabra clave estática no se usa con el método main() en Java?

No habrá ningún error de compilación, pero en tiempo de ejecución obtendremos un error NoSuchMethodError .

78. ¿Se ejecutará un bloque finalmente si se coloca una declaración de retorno al final de los bloques try y catch?

Sí, el bloque finalmente siempre se ejecutará independientemente de si hay una excepción.

79. ¿Es posible tener muchas clases públicas en un archivo fuente Java?

No, sólo podemos tener una clase pública en un archivo fuente de Java.

80. ¿Puede una interfaz extender otra interfaz?

Sí, una interfaz puede extender otra interfaz usando la palabra clave extends en Java.

81. Nombra los diferentes tipos de cargadores de clases en Java.

  1. Cargador de clases Bootstrap

  2. Cargador de clases de extensiones

  3. Cargador de clases del sistema

82. ¿Qué hace el operador ternario en Java?

El operador ternario se utiliza como reemplazo del operador if-else en Java. Este es el único operador condicional que contiene tres operandos.

83. ¿Qué hace la recolección de basura en Java?

La recolección de basura de Java es un método mediante el cual las aplicaciones Java conservan automáticamente su memoria eliminando o limpiando objetos y paquetes no utilizados en la memoria.

84. ¿Cómo se utiliza el constructor predeterminado en Java?

En Java, el constructor predeterminado se utiliza para inicializar los miembros de datos o las variables miembro de un objeto con sus valores predeterminados. El compilador lo genera automáticamente cuando no hay otros constructores en el programa.

85. ¿Cuál es la diferencia entre ruta y classpath en Java?

  1. El classpath define la ubicación de los archivos de código de bytes, es decir, archivos .class.
  2. La ruta especifica la ubicación de los archivos .exe.

86. ¿Cuáles son los tipos de datos en Java?

Hay 8 tipos de datos en Java:
  1. corto

  2. byte

  3. carbonizarse

  4. En t

  5. flotar

  6. doble

  7. largo

  8. booleano

87. ¿Cuáles son los cuatro conceptos de programación orientada a objetos en Java?

  1. Encapsulación.
  2. Abstracción.
  3. Polimorfismo.
  4. Herencia.

88. ¿Podemos asignar un valor nulo a esta palabra clave en Java?

No.

89. ¿Qué quieres decir con bloque estático en Java?

El bloque estático en Java se utiliza para inicializar variables estáticas de una clase. Se ejecuta solo una vez: cuando la clase se carga por primera vez en la memoria.

90. ¿Qué es una excepción? ¿Qué paquete contiene todas las definiciones de clases de excepción en Java?

Las excepciones son situaciones anormales que ocurren durante la ejecución del programa. Pueden ocurrir como resultado de una entrada incorrecta del usuario o una lógica de codificador incorrecta. El paquete java.lang.Exception contiene todas las definiciones de clases de excepción en Java.
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION