Más de 130 preguntas y respuestas de entrevistas de Java en 2022

Publicado: 2021-01-01

Preguntas y respuestas de la entrevista de Java

En este artículo, hemos recopilado las preguntas de entrevista de Java más frecuentes. Estas preguntas le darán una idea del tipo de preguntas que un entrevistador podría hacerle durante su entrevista para Programación Java.

Como Fresher, acaba de asistir a una entrevista o planea asistir a una pronto. Un solicitante de empleo de nivel de entrada que busca hacer crecer su carrera en programación de software, puede estar nervioso por sus próximas entrevistas . Todos tenemos esos momentos de pánico en los que nos quedamos en blanco e incluso podemos olvidar qué es un hilo. Lo simplificaremos para usted, todo lo que necesita hacer es respirar hondo y verificar las preguntas que es más probable que le hagan.

No puede evitar entrar en pánico, pero definitivamente puede prepararse para cuando entre a la sala de entrevistas. Tienes confianza y sabes que puedes manejar cualquier cosa que el entrevistador pueda lanzarte.

Aprenda programas de ingeniería de software en línea de las mejores universidades del mundo. Obtenga programas Executive PG, programas de certificados avanzados o programas de maestría para acelerar su carrera.

Aquí hay una lista compilada de 24 preguntas completas de la entrevista de Java con respuestas (último 2022) que lo ayudarán a lograr esa confianza y garantizar que navegue a través de la entrevista.

1. ¿De qué se compone todo JVM?
Cualquier sistema requiere JVM, abreviatura de Java Virtual Machine para ejecutar programas Java. Su arquitectura se compone esencialmente de:
● Classloader: Es un subsistema de JVM y su función principal es cargar archivos de clase cada vez que se ejecuta un programa Java.
● Montón: son los datos de tiempo de ejecución que se utilizan para asignar objetos.
● Área de clase: contiene el nivel de clase de cada archivo de clase, como variables estáticas, metadatos y grupo de ejecución constante.
● Pila: se utiliza para almacenar variables temporales.
● Registro: el registro contiene la dirección de la instrucción JVM que se está ejecutando actualmente
● Motor de ejecución: el EE consta de un procesador virtual, un intérprete que ejecuta instrucciones después de leer el bytecode y un compilador JIT que mejora el rendimiento cuando la velocidad de ejecución es lenta.
● Java Native Interface: actúa como medio de comunicación para interactuar con otra aplicación desarrollada en C, C++, etc.

2. ¿Qué es la programación orientada a objetos? ¿Es Java un lenguaje orientado a objetos?
Esencialmente, la programación orientada a objetos es un paradigma de programación que trabaja sobre el concepto de objetos. En pocas palabras, los objetos son contenedores: contienen datos en forma de campos y código en forma de procedimientos. Siguiendo esa lógica, un lenguaje orientado a objetos es un lenguaje que trabaja sobre objetos y procedimientos.

Dado que Java utiliza 8 tipos de datos primitivos (boolean, byte, char, int, float, long, short, double) que no son objetos, Java no puede considerarse un lenguaje 100 % orientado a objetos.

3. ¿Qué entiendes por Agregación en el contexto de Java?
La agregación es una forma de asociación en la que a cada objeto se le asigna su propio ciclo de vida. Pero, hay propiedad en esto, y el objeto secundario no puede pertenecer a ningún otro objeto principal de ninguna manera.

4. Asigne un nombre a la superclase en Java.
Java.lang. Todos los diferentes no primitivos se heredan directa o indirectamente de esta clase.

5. Explique la diferencia entre 'finalmente' y 'finalizar' en Java.
Usado con el bloque try-catch, el bloque 'finally' se usa para garantizar que siempre se ejecute un fragmento de código en particular, incluso si la ejecución la lanza el bloque try-catch.

Por el contrario, finalizar() es un método especial en la clase de objeto. Por lo general, se anula para liberar los recursos del sistema cuando se recopila valor de basura del objeto.

6. ¿Qué es una clase interna anónima? ¿En qué se diferencia de una clase interna?
Cualquier clase interna local que no tenga nombre se conoce como clase interna anónima. Como no tiene ningún nombre, es imposible crear su constructor. Siempre extiende una clase o implementa una interfaz, y se define e instancia en una sola declaración.

Una clase anidada no estática se denomina clase interna. Las clases internas están asociadas con los objetos de la clase y pueden acceder a todos los métodos y variables de la clase externa.

7. ¿Qué es una clase de sistema?
Es una clase central en Java. Dado que la clase es final, no podemos anular su comportamiento a través de la herencia. Tampoco podemos instanciar esta clase ya que no proporciona constructores públicos. Por lo tanto, todos sus métodos son estáticos.

8. ¿Cómo crear un hilo daemon en Java?
Usamos la clase setDaemon(true) para crear este hilo. Llamamos a este método antes del método start(), de lo contrario obtenemos IllegalThreadStateException.

Perfil de trabajo para desarrollador de software

9. ¿Java admite variables globales? ¿Por qué por qué no?
No, Java no admite variables globales. Esto se debe principalmente a dos razones:
● Crean colisiones en el espacio de nombres.
● Rompen la transparencia referencial.

10. ¿Cómo se desarrolla un objeto RMI?
Se pueden seguir los siguientes pasos para desarrollar un objeto RMI:
● Definir la interfaz
● Implementar la interfaz
● Compile la interfaz y sus implementaciones con el compilador de Java.
● Compilación de la implementación del servidor con el compilador RMI
● Ejecutar registro RMI
● Ejecutar aplicación

11. Explique las diferencias entre la división de tiempo y la programación preventiva.
En el caso de la división de tiempo, una tarea se ejecuta durante un período de tiempo específico, también conocido como división. Después de eso, ingresa a la cola de tareas listas, un grupo de tareas 'listas'. Luego, el planificador elige la siguiente tarea que se ejecutará en función de la prioridad y otros factores.

Mientras que en la programación preventiva, la tarea con la prioridad más alta se ejecuta hasta que entra en estado muerto o de advertencia o si aparece otra tarea de mayor prioridad.

12. ¿Qué tipo de hilo es el hilo del recolector de basura?
Es un hilo demoníaco.

13. ¿Cuál es el ciclo de vida de un hilo en Java?
Cualquier subproceso en Java pasa por las siguientes etapas en su ciclo de vida:
● Nuevo
● Ejecutable
● Correr
● No ejecutable (bloqueado)
● rescindido

14. Indique los métodos utilizados durante el proceso de deserialización y serialización.
ObjetoInputStream.readObject
Lee el archivo y deserializa el objeto.

ObjectOuputStream.writeObject
Serialice el objeto y escriba el objeto serializado en un archivo.

15. ¿Qué son las variables volátiles y cuál es su propósito?
Las variables volátiles son variables que siempre leen de la memoria principal y no de la memoria caché del subproceso. Estos se utilizan generalmente durante la sincronización.

16. ¿Qué son las clases contenedoras en Java?
Todos los tipos de datos primitivos en Java tienen una clase asociada a ellos, conocida como clases contenedoras. Se conocen como clases contenedoras porque 'envuelven' el tipo de datos primitivo en un objeto para la clase. En resumen, convierten las primitivas de Java en objetos.

17. ¿Cómo podemos hacer una clase singleton?
Al hacer que su constructor sea privado.

18. ¿Cuáles son los métodos importantes de Exception Class en Java?
● cadena getMessage()
● cadena a Cadena()
● anular imprimirStackTrace()
● getCause() arrojable sincronizado
● StackTraceElement público[] getStackTrace()

19. ¿Cómo podemos hacer un hilo en Java?
Podemos seguir cualquiera de las dos formas de hacer un hilo en Java:
● Al extender Thread Class

La desventaja de este método es que no podemos extender ninguna otra clase ya que la clase hilo ya se ha extendido.
● Al implementar la interfaz Runnable

20. Explique las diferencias entre los métodos get() y load().
Los métodos get() y load() tienen las siguientes diferencias:
● get() devuelve un valor nulo si no se encuentra el objeto, mientras que load() lanza la excepción ObjectNotFound.
● get() siempre devuelve un objeto real, mientras que load() devuelve un objeto proxy.
● El método get() siempre llega a la base de datos mientras que load() no lo hace.
● get() debe usarse si no está seguro de la existencia de una instancia, mientras que load() debe usarse si está seguro de que la instancia existe.

21. ¿Cuál es el valor por defecto de las variables locales?
No se inicializan con ningún valor predeterminado. Tampoco lo son las primitivas ni las referencias a objetos.

22. ¿Qué es Singleton en Java?
Es una clase con una instancia en toda la aplicación Java. Por ejemplo, java.lang.Runtime es una clase Singleton. El objetivo principal de Singleton es controlar la creación de objetos manteniendo el constructor privado.

23. ¿Qué es el método estático?

Se puede invocar un método estático sin necesidad de crear una instancia de una clase. Un método estático pertenece a la clase en lugar de un objeto de una clase. Un método estático puede acceder a un miembro de datos estáticos y puede cambiar su valor.

24. ¿Cuál es la excepción?

Excepciones Condiciones inusuales durante el programa. Esto puede deberse a una lógica incorrecta escrita por un programador o una entrada de usuario incorrecta.

25. En términos simples, ¿cómo definiría Java?

Java es un portal de alto nivel, independiente de la plataforma y orientado a objetos, y ofrece soporte de alto rendimiento para crear programas, aplicaciones y sitios web sofisticados. Java es un lenguaje de programación de propósito general que permite a los desarrolladores crear aplicaciones ricas en funciones con su entorno de escritura única y ejecución en cualquier lugar (WORA). James Arthur Gosling, un informático de Canadá, desarrolló Java en 1991 y es conocido popularmente como 'Dr. Java'. Hoy, Java se ha convertido en una base esencial para la industria de TI moderna.

26 . ¿Qué es el conjunto de cadenas de Java?

Un grupo de cadenas en Java es un lugar distinto que tiene un grupo de cadenas almacenadas a través de la memoria del montón de Java. Aquí, String representa una clase especial en Java, y los objetos de cadena se pueden crear usando un operador nuevo o usando valores entre comillas dobles.
El String es inmutable en Java, por lo tanto, hace factible el grupo de String y luego la implementación adicional a través de los conceptos internos de String.

27. ¿Qué es una clase de colección en Java? ¿Enumere sus métodos e interfaces?

Las clases de colección de Java son clases especiales, que se utilizan exclusivamente con métodos estáticos que funcionan específicamente en colecciones de devolución. Java Collection por defecto hereda una clase y tiene dos características esenciales como:

  • Soportan y operan con algoritmos polimórficos que devuelven nuevas colecciones para cada colección específica.
  • Los métodos en la colección Java lanzan una excepción NullPointerException en caso de que los objetos de clase o las colecciones tengan un valor nulo.

Estos se representan y declaran como Java.util.Collectionclass.

Hay más de 60 métodos, modificadores y tipos de clases de la Colección Java. Aquí hay una lista de los métodos más importantes en Java Collection Class:

S. No. Modificador, método y tipo Descripción
1. <T> estático booleano addAll() Este método permite la adición de elementos específicos a una colección en particular.
2. Estático <T> Cola <T> asLifoQueue() Este método permite el listado de la colección como Último en entrar, primero en salir (LIFO) a la vista.
3. <T> estática int búsqueda binaria() Este método permite buscar un objeto específico y luego devolverlo en una lista ordenada.
4. Estático <E> Colección <E> Este método devuelve la vista dinámica de cualquier colección en particular.
5. <E> estático Lista <E> Este método da como resultado una vista dinámica con seguridad de tipos de una lista en particular.

Estos son algunos ejemplos de Java Collection:
Colección Java min() Ejemplo:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
 importar java.util.* ;  
 	Colecciones de clase pública Ejemplo {  
 	    public static void principal ( String a []){         
 	        Lista < Entero > lista = new ArrayList < Entero >();  
 	        lista sumar ( 90 );  
 	        lista suma ( 80 );  
 	        lista suma ( 76 );  
 	        lista suma ( 58 );  
 	        lista suma ( 12 );  
          sistema fuera _ println ( "Valor mínimo del elemento en la colección:" + Colecciones . min ( lista ));  
      }  
  } 

La salida será:

Elemento de valor mínimo en la colección: 12

Colección Java max() Ejemplo:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
 importar java.util.* ;  
  Colecciones de clase pública Ejemplo {  
      public static void principal ( String a []){         
          Lista < Entero > lista = new ArrayList < Entero >();  
          lista sumar ( 90 );  
          lista suma ( 80 );  
          lista suma ( 76 );  
          lista suma ( 58 );  
          lista suma ( 12 );  
          sistema fuera _ println ( "Valor máximo del elemento en la colección:" + Colecciones . max ( lista ));  
      }  
  }

La salida será:

Elemento de valor máximo en la colección: 90

28 . ¿Qué es un servlet?

Los servlets son componentes de software Java que agregan más capacidades a un servidor Java a través de tecnología, API, interfaz, clase o cualquier implementación web. Los servlets se ejecutan específicamente en servidores de aplicaciones web con tecnología Java y son capaces de manejar solicitudes complejas del servidor web. Los servlets agregan el beneficio de un mayor rendimiento, robustez, escalabilidad, portabilidad y garantizan la seguridad de las aplicaciones Java.

Proceso o ejecución del servlet:

  • Esto comienza cuando un usuario envía una solicitud desde un navegador web.
  • El servidor web recibe y luego pasa esta solicitud al servlet específico.
  • Luego, el servlet procesa esta solicitud para obtener una respuesta específica con salida.
  • Luego, el servlet envía esta respuesta al servidor web.
  • Luego, el servidor web obtiene la información que el navegador muestra en la pantalla.

Los Java Servlets vienen con múltiples clases e interfaces como GenericServlet, ServletRequest, Servlet API, HttpServlet, ServeResponse, etc.

29. ¿Qué es el Despachador de Solicitudes?

En Servlet, RequestDispatcher actúa como una interfaz para definir un objeto para recibir solicitudes de clientes en un lado y luego enviarlo a recursos particulares en el otro lado (que puede ser un servlet, HTML, JSP). Este RequestDispatcher tiene dos métodos en general:

void adelante (solicitud de ServletRequest, respuesta de ServletResponse) Eso permite y reenvía las solicitudes de cualquier servlet a los recursos del servidor en forma de servlet, archivo HTML o archivo JSP.
void include (solicitud de ServletRequest, respuesta de ServletResponse) Que tiene contenido para un recurso en particular en forma de respuesta, como un archivo HTML, una página JSP o un servlet.

30. ¿Cuál es el ciclo de vida de un servlet?

Servlet es un componente de software de Java que tiene la función principal de tomar primero la solicitud, luego procesarla y dar una respuesta al usuario en una página HTML. Aquí Servlet Container gestiona el ciclo de vida de un servlet. Estas son las etapas principales:

  • Cargando servlet.
  • Luego inicializando el Servlet.
  • Manejo de la Solicitud (método de invocación del servicio).
  • Luego destruyendo el Servlet.

Aquí hay un diagrama rápido que muestra el ciclo de vida de un servlet de Java:
Ciclo de vida del servlet

Fuente

  • Cargando Servlet

El ciclo de vida de Servlet comienza con la etapa de carga en el contenedor de Servlet. El servlet se carga de cualquiera de las dos formas con:

    • Establecer el servlet como un valor integral positivo o cero.
    • En segundo lugar, este proceso puede sufrir retrasos, ya que el contenedor selecciona el servlet correcto para manejar la solicitud.

Ahora los contenedores primero cargan la clase Servlet y luego construyen una instancia a través del constructor sin argumentos.

  • Inicializando Servlet

El siguiente paso es utilizar el método Servlet.init(ServletConfig) para inicializar el Servlet, por ejemplo, la fuente de datos JDBC.

  • Manejo de la solicitud (Método de invocación del servicio)

Aquí el Servlet toma las solicitudes del cliente y realiza la operación requerida utilizando el método service().

  • Destruyendo el Servlet

Ahora el contenedor Servlet destruye el servlet realizando y completando tareas específicas y llamando al método destroy() en la instancia.

31. ¿Cuáles son los diferentes métodos de gestión de sesiones en servlets?

Las sesiones rastrean la actividad del usuario después de iniciar sesión en el sitio. La gestión de sesiones proporciona el mecanismo para obtener información para cada usuario independiente. Estos son los cuatro métodos diferentes para la gestión de sesiones en los servlets:

  • Sesión Http
  • Galletas
  • Reescritura de URL
  • Campo oculto HTML

32. ¿Qué es un controlador JDBC?

Java Database Connectivity (JDBC) aquí actúa como un componente de software que permite que las aplicaciones Java se comuniquen con una base de datos.

Los controladores JDBC tienen los siguientes cuatro tipos en el entorno:

  • Controlador de puente JDBC-ODBC
  • Controlador de protocolo de red (controlador de software intermedio)
  • Controlador de protocolo de base de datos (controlador completamente Java)
  • Controlador de API nativo

33. ¿Qué es la interfaz de conexión JDBC?

Las conexiones definen las sesiones entre la base de datos y las aplicaciones Java. La interfaz de conexión JDBC es parte del paquete java.sql únicamente y proporciona información de sesión para una base de datos en particular. Estos representan múltiples sentencias SQL para ejecutar y resultados en el contexto de una única interfaz de conexión. Estos son los métodos principales para la interfaz de conexiones:

  • createStatement() : para crear un objeto de declaración específico para agregar declaraciones SQL a la base de datos en particular.
  • setAutoCommit(estado booleano) : Para definir la conexión de un modo de confirmación a una directiva falsa o verdadera.
  • commit() : Eso hace todas las modificaciones desde la última confirmación y libera cualquier base de datos actualmente en poder del objeto Connection específico.
  • rollback() : que deshace o revierte todos los cambios realizados en la transacción pasada o actual y también libera la base de datos actualmente en el objeto de conexión.
  • close() : Eso termina o cierra la conexión actual y también libera o borra los recursos JDBC al instante.

34. Nombre los diferentes módulos del framework Spring?

Hay varios módulos en el marco Spring:

  • módulo web
  • Módulo puntales
  • módulo de servlet
  • Módulo contenedor principal
  • Programación Orientada a Aspectos (AOP)
  • Módulo de contexto de aplicación
  • Módulo de marco MVC
  • Abstracción JDBC y módulo DAO
  • Módulo OXM
  • módulo lenguaje de expresión
  • Módulo de transacciones
  • Módulo de servicio de mensajería Java (JMS)
  • Módulo de integración ORM

Estos módulos están presentes en grupos:

módulos de resorte

Fuente

35. Explique Bean en Spring y enumere los diferentes alcances de Spring Bean.

Los beans son uno de los conceptos fundamentales del framework Spring en la gestión eficiente de estructuras. En una definición simple, Spring Bean representa los contenedores IoC que administran el objeto que forma la columna vertebral de las aplicaciones.

Alcances de Spring Bean:

Los ámbitos juegan un papel crucial en el uso efectivo de Spring beans en la aplicación. Scope nos ayuda a comprender el ciclo de vida de Spring Bean, y tienen los siguientes tipos .

S. No. Alcance y Descripción
1. Singleton : de forma predeterminada, el alcance de Spring Bean tiene un alcance de singleton que representa solo una instancia para el contenedor Spring IOC. Este mismo objeto se comparte para cada solicitud.
2. Prototipo : en esto, se llamará y creará una nueva instancia para cada definición de bean individual, cada vez que se realice una solicitud para un bean específico.
3. Solicitud : en este ámbito, se llamará y creará un solo bean para cada solicitud HTTP para ese bean específico.
4. Sesión : este alcance define el uso de un solo bean para un ciclo de vida en una sesión HTTP global particular.
5. Sesión global : este alcance permite un solo bean para el ciclo de vida particular para implementar en la sesión HTTP global.

Nota: Los últimos tres ámbitos son aplicables solo en Spring ApplicationContext compatible con la web.

Debe leer: ¿Por qué Java es tan popular entre los desarrolladores?

36. Explique la función de DispatcherServlet y ContextLoaderListener.

Al configurar Spring MVC basado en XML en el archivo web.xml, dos declaraciones de DispatcherServlet y ContextLoaderListener juegan un papel esencial para complementar el propósito del marco.

  • DispatcherServlet –

DispatcherServlet tiene el propósito principal de administrar solicitudes web entrantes para patrones de URI configurados coincidentes específicos. DispatcherServlet actúa como controlador frontal para el núcleo de la aplicación Spring MVC y carga específicamente el archivo de configuración y luego inicializa los beans correctos presentes en ese archivo. Y cuando las anotaciones están habilitadas, también puede verificar y escanear las configuraciones y paquetes para todos los anotados con @Repository, @Component, @Service o @Controller.

  • ContextLoaderListener –

ContextLoaderListener aquí actúa como escucha de solicitudes para iniciar y cerrar WebApplicationContext raíz. Por lo tanto, crea y comparte el contexto de la aplicación raíz con los contextos secundarios mediante los contextos de DispatcherServlet. Las aplicaciones solo pueden usar una entrada para ContextLoaderListener en web.xml.

37. Explique la arquitectura de Hibernate.

Hibernate define una arquitectura en capas que permite a los usuarios operar y desempeñarse sin conocer las API subyacentes, es decir, Hibernate actúa como un marco para construir y desarrollar una lógica de persistencia independiente del software de la base de datos.

La arquitectura de Hibernate tiene las cuatro capas principales con:

  • Capa de aplicación Java
  • Capa de base de datos
  • Capa de API de back-end
  • Capa de marco de hibernación

Elementos de la Arquitectura de Hibernate

Hay varios aspectos y alcances para la arquitectura de Hibernate. Para aprender más sobre ellos, debe conocer los elementos de la arquitectura de Hibernate.

  • SessionFactory: Sessionfactory proporciona el método para crear objetos de sesión que están presentes solo en el paquete org.hiberate. Es de naturaleza segura para subprocesos, inmutable y contiene y conserva la memoria caché de segundo nivel de los datos.
  • Sesión: los objetos de sesión proporcionan la interfaz para el software de conexión y base de datos a través del marco de hibernación.
  • Transacción: Interfaz que ayuda a la gestión de transacciones y permite un cambio en la base de datos.
  • ConnectiveProvider: parte de las conexiones JDBC, separa la aplicación principal del DataSource o DriverManager.
  • TransactionFactory: Representa la fábrica de la transacción.

38. ¿Qué es una jerarquía de excepciones en Java?

La excepción define los eventos no deseados que se presentan durante la ejecución o ejecución del programa. La excepción interrumpe el flujo regular del programa.
La jerarquía de excepciones es parte de la clase java.lang.Exception y solo se incluye en la clase principal Throwable. Otra subclase ' Error ' también representa la clase Throwable en Java. Aunque los errores son condiciones inusuales en caso de falla, aún no se manejan ni borran con los programas Java.
Hay dos subclases principales para la jerarquía excepcional en Java con la clase RuntimeException y la clase IOCException.

39. ¿Qué es la sincronización?

La sincronización en Java define la capacidad de administrar y controlar el acceso de múltiples subprocesos a un recurso en particular. De modo que, un subproceso puede acceder a un recurso específico en el momento actual. Aquí, Java permite el desarrollo de subprocesos y luego la sincronización de tareas a través de los bloques de sincronización.

Estos bloques sincronizados permiten solo la ejecución de un subproceso durante un tiempo determinado y bloquean los otros subprocesos hasta que el subproceso actual sale del bloque. Aquí el concepto de monitores es crucial para implementar la sincronización en Java. Una vez que el subproceso entra en una fase de bloqueo, se denomina para ingresar al monitor. Por lo tanto, bloquea todos los demás subprocesos a menos que el primer subproceso haya salido del monitor.

40. ¿Cuáles son las características que hacen de Java uno de los mejores lenguajes de programación?

Estas son las características principales que hacen que Java comience su curva de aprendizaje en el mundo de la programación:

  • Simplicidad: Java es bastante simple de aprender y escribir. La sintaxis de Java está en C ++ que permite a los desarrolladores escribir programas sin problemas.
  • OOPS: Java se basa en el sistema de programación orientado a objetos (OOPS), lo que permite crear código en múltiples tipos de objetos con diferentes datos y comportamiento.
  • Dinámico: Java es un lenguaje dinámico completo que admite la carga de clases dinámicas cuando y donde sea necesario. Y también tiene soporte completo para lenguaje de código nativo como C, C++, etc.
  • Independiente de la plataforma: Java también admite un lenguaje de programación exclusivo e independiente de la plataforma, lo que permite a los desarrolladores ejecutar su programa solo en su plataforma.
  • Portabilidad: Java tiene un enfoque de alcance una vez y escritura en cualquier lugar que permite que el código se ejecute en cualquier plataforma.
  • Seguridad: siguiendo el concepto de ByteCode, el manejo de excepciones y sin el uso de punteros explícitos, Java es un entorno altamente seguro.

Java también es un arquitecto neutral sin dependencia de ninguna arquitectura. La gestión sólida de la memoria y la recolección de basura automatizada agregan más solidez a su entorno.

41. ¿Qué hace que Java permita un alto rendimiento?

El uso del compilador Just in Time (JIT) en su arquitectura hace de Java uno de los lenguajes de programación de alto rendimiento, ya que transforma las instrucciones en bytecodes.

42. Nombre los IDE de Java más populares.

Hay muchos IDE disponibles en la industria para Java. Estos son los cinco mejores IDE de Java que puede usar para comenzar a aprender este lenguaje de programación hoy:

  • Eclipse
  • Frijoles netos
  • IntelliJ
  • JDeveloper
  • MiEclipse

43. ¿Define las principales diferencias entre Java y otras plataformas?

Dos diferencias principales que hacen que Java se destaque de otras plataformas son:

  • Java es principalmente una plataforma basada en software, mientras que otras pueden ser plataformas basadas en software o hardware.
  • Java se ejecuta o ejecuta en cualquier plataforma de hardware, mientras que otras requieren requisitos de hardware específicos.

44. ¿Qué hace que Java tenga su naturaleza de 'escribir una vez y ejecutar en cualquier lugar' (WORA)?

Bueno, la respuesta de una palabra es Bytecode. El compilador de Java convierte todos los programas de Java en un código de bytes específico que actúa como un lenguaje mediador entre el código de la máquina y el código fuente. ByteCode puede ejecutarse en cualquier computadora y no depende de la plataforma.

45. Explique los diferentes tipos de especificadores de acceso utilizados en Java.

En el lenguaje de programación Java, los especificadores de acceso representan el alcance exacto de una clase, una variable o un método. Hay cuatro especificadores de acceso principales:

  • Las variables, los métodos o las clases definidos públicamente son accesibles a través de cualquier método o clase.
  • El especificador de acceso protegido define el alcance de una clase, método y variable para el mismo paquete, dentro de la misma clase o para esa subclase particular de clase.
  • El alcance predeterminado está ahí para todas las clases, variables y métodos actuales con acceso solo al paquete.
  • El alcance privado mantiene el acceso de clase, variables y métodos solo a una clase en particular.

Leer: Proyecto Java Swing

46. ​​Explique el significado de los paquetes en Java junto con sus ventajas.

Los paquetes son un mecanismo de agrupación para tipos similares (interfaz, clases, anotaciones y enumeraciones) que garantizan la protección de los activos y la gestión integral de nombres.

Estas son las ventajas de los paquetes en Java:

  • Los paquetes nos ayudan a evitar conflictos de nombres cuando existen clases con el mismo nombre en dos paquetes diferentes.
  • Los paquetes ayudan a hacer que el control de acceso sea sistemático.
  • Cree clases ocultas para que las utilicen los paquetes.
  • Ayuda a localizar clases relacionadas para el paquete.

47. ¿Cómo definiría Constructor en Java?

Los constructores son un bloque especial de códigos que inicializa un objeto en el momento de la creación. Aunque tiene un parecido con el método de instancia, los constructores no son el método, ya que no tienen ningún tipo de retorno explícito. Entonces, cada vez que se crea un objeto en el sistema, se llama a un constructor para que se ejecute. Si no hay un constructor definido, el compilador usa un constructor predeterminado.

Aquí hay una presentación simple de Constructor en Java:

 1
2
3
4
5
6
 clase pública MiClase {
   //Este es el constructor
   Mi Clase (){
   }
   ..
}

48. ¿Cuáles son los diferentes tipos de constructores que se usan en Java?

Hay tres tipos de constructores utilizados en Java:

  • Constructor predeterminado: cuando un desarrollador no usa un constructor, el compilador de Java agrega un constructor predeterminado más específico que existe en el archivo .class.
  • Constructor sin argumentos: en este caso, no hay argumentos en el constructor y el compilador no acepta ningún parámetro, ya que el método de variable de instancia se inicializa con valores fijos específicos.
  • Constructor parametrizado: en este caso, uno o más parámetros están presentes en el constructor escrito dentro de los paréntesis del elemento principal únicamente.

49. ¿Cuáles son las diferencias entre constructores y métodos?

La principal diferencia en los constructores y métodos son:

  • Propósito: el objetivo de los constructores es inicializar el objeto de una clase, mientras que el método realiza tareas específicas en la ejecución del código.
  • El método tiene tipos de devolución mientras que los constructores no.
  • En Métodos, hay resumen, estático, final y sincronización, mientras que en los constructores, no puede realizar procedimientos específicos.

50. Explique el significado de variable local y variable de instancia.

  • Las variables locales están presentes en el método y el alcance existe solo dentro del método.
  • Las variables de instancia están presentes y definidas en la clase solo con su alcance en toda la clase.

51. ¿Explicar el significado de Clase en Java?

En Java, todos los códigos, variables y métodos se definen en la clase.

  • Las variables representan atributos que definen el estado de una clase en particular.
  • Los métodos representan dónde la lógica de negocios tiene su efecto. Los métodos incluyen un conjunto de declaraciones e instrucciones para cumplir con los requisitos.

Aquí hay un ejemplo simple para una clase en Java :

 1
2
3
4
5
6
7
 public class Addition { // Declaración de nombre de clase
int x = 10 ; //Declaración de variables
int y = 10 ;
public void add (){ //Declaración de método
int z = a + b ;
}
}

52. ¿Explicar el significado de Objeto en Java?

Los objetos se definen como una instancia de una clase solo con un estado y comportamiento específicos. Por ejemplo, un perro con un estado específico de nombre, raza y color, mientras que el comportamiento incluye ladrar, mover la cola, etc. Entonces, cada vez que JVM lea cualquier palabra clave new(), se creará una instancia correspondiente. Un objeto debe declararse primero, luego instanciarse y finalmente inicializarse para seguir funcionando.

53. Defina el valor predeterminado para el tipo de datos byte en lenguaje Java.

Para el tipo de datos Byte, el valor predeterminado es 0.

54. ¿Por qué el tipo de datos byte es más beneficioso en Java?

Como el tipo de datos de bytes es casi cuatro veces más pequeño que un número entero, puede almacenar más espacio para matrices grandes.

55. Explicar los conceptos de programación orientada a objetos en Java.

OOPs, son los conceptos fundamentales del lenguaje de programación Java. Estos incluyen abstracción, polimorfismo, herencia y encapsulación. Los conceptos de programación orientada a objetos de Java permiten a los desarrolladores crear variables, métodos y componentes que les permiten reutilizarlos de manera personalizada mientras mantienen la seguridad.

56. Explique el significado de Herencia.

En Java, la herencia es un mecanismo específico que permite que una clase adquiera las propiedades (con campos y métodos) de otra clase. La herencia es uno de los conceptos básicos de Java OOP.

La herencia hace posible construir nuevas clases, agregar más campos y métodos en las clases existentes para reutilizarlas de cualquier forma.

  • Una subclase es la que hereda las propiedades de la otra clase.
  • Superclase es aquella cuyas propiedades se heredan.

57. ¿Explicar los conceptos de Encapsulación en Java?

Como uno de los conceptos principales de Java OOP, la encapsulación permite envolver los datos y el código en una sola unidad. La encapsulación también se conoce como ocultación de datos, con variables de una clase específica ocultas de todas las demás clases y accesibles solo con los métodos de la clase existente.

Las dos cosas esenciales para lograr la encapsulación en Java son:

  • Declarar las variables de una clase específica como privadas.
  • Aprovechar los métodos públicos setter y getter para realizar cambios y ver los valores de las variables.

58. Explicar los conceptos de polimorfismo.

El polimorfismo en Java permite a los desarrolladores realizar una sola tarea de múltiples maneras. Hay dos tipos de polimorfismo en Java con tiempo de ejecución y tiempo de compilación. Puede usar métodos de anulación y sobrecarga para operar el polimorfismo en Java.

59. Explique el significado de interfaz.

En Java, no podemos lograr herencias múltiples. Aquí, la interfaz juega un papel crucial en la superación de este problema para lograr la abstracción, ayudar a las herencias múltiples y también admite el acoplamiento flexible. Ahora tenemos un método predeterminado, estático y privado en interfaz con las últimas actualizaciones de Java.

60. ¿Qué se entiende por clase abstracta?

Las clases abstractas se construyen con una palabra clave abstracta específica en Java. Representan tanto métodos abstractos como no abstractos.

61. ¿Explicar la clase de abstracción en Java?

La abstracción es una de las propiedades esenciales para ocultar la información de implementación del usuario y luego representar solo las funciones del usuario. For instance, when you send an SMS from one person to another person. The user gets to know only the message and number while the backend process remains hidden.

You can achieve abstraction in Java using the following two ways:

  • Abstract Class (0 to 100%)
  • Interface (100%)

62. Explain the difference between Abstraction and Encapsulation in Java.

Here are the main differences:

Abstracción Encapsulación
Abstraction aims to gain information. Encapsulation's main aim is to contain or procure information.
In the abstraction process, issues or problems are handled at the interface/ design level. In Encapsulation, problems are handled at a specific implementation level.
Abstraction aids in hiding unwanted information. Encapsulation method applies hiding data within a single unit.
Implemented with interfaces and abstract classes. Implemented with a particular access modifier (public, private, and protected).
Use abstract classes and interfaces to hide complexities. Use getters and setters to hide data.
Objects that extend to abstraction must be encapsulated. An object for encapsulation must not be abstracted.

63. Explain the differences between Abstract class and interface.

Abstract Class Interfaz
Abstract Class comes with a default constructor. The interface doesn't have a constructor. So, no further process.
Uses both Abstract and Non-Abstract methods. Only use Abstract methods.
Classes that must extend for Abstract class need only abstract methods throughout their sub-class. Classes that extend to interface must provide implementation across all the methods.
These include instance variables. The interface presents constants only.

64. Explain the main differences between Array and Array List.

Formación Array List
The size needs to be defined for the declaring array.

String[] name = new String[5]

No size requirements; and modifies dynamically.

ArrayList name = new ArrayList

You must specify an index for putting an object inside the array.

name[1] = “dog”

There are no index requirements.

name.add(“dog”)

Arrays are not parameterised. From Java 5.0 onwards, ArrayLists have a specific parameterised type.

65. Explain the difference between static method and instance method.

Static or Class Method Instance Method
You must declare a method static for a static method. All methods with declaration as static come under Instance method only.
No requirements for creating objects in the Static method. The object is a must for calling the instance method.
You cannot access Instance or Non-static methods in the static context. You can access both static and non-static in the instance method.

66. How to make Constructors static?

Constructors invoked with the object, and static context is part of the class, not the object. Hence, constructors cannot be static and show compiler error if run or executed.

67. Explain the use of 'this' keyword in Java?

In Java, 'this' keyword represents a specific reference on the current object. There are multiple uses for this keyword for referring to the current class properties from a variable, constructors, methods, and more. You can also pass this as an argument within constructors or methods. You can also fetch this as a return value from the current class instance. You can also refer to this as a static context.

Lea también: Cómo codificar, compilar y ejecutar proyectos Java

68. What is a classloader in Java? What are the different types of ClassLoaders in Java?

Java Classloader's main function is to dynamically load all classes into the Java Virtual Machine (JVM). ClassLoaders are part of the JRE only. So every time we run a Java program, classloader loads the classes to execute this program. A single ClassLoader loads only a specific class on requirements and uses getClassLoader() method to specify the class. These classes are loaded by calling their names, and in case these are not found then it retrieves or throws a ClassNotFoundException or NoClassDefFoundError.

Java ClassLoader uses three principles in performing tasks with delegation, uniqueness, and visibility.
There are three different types of Java ClassLoader:

  • BootStrap ClassLoader:

BootStrap ClassLoader represents the parent or superclass for extension classloader and all other classloaders. It has machine code that loads the pure first Java ClassLoader and takes classes from the rt.jar and also known as Primordial ClassLoader.

  • Extension ClassLoader:

Extension ClassLoader represents the child classloader for the superclass or BootStrap ClassLoader. It loads core java classes from jre/lib/ext , ie, JDK extension library.

  • System ClassLoader:

Application or System ClassLoader are further child classes of Extension ClassLoader. It takes and loads a file from the current directory for the program that you can customise with the 'classpath' switch.

69. Explain the meaning of Java Applet.

Java Applet is a program that executes or runs in the web browser only. Applets are specifically designed to function and embed with HTML web pages. Applets have the capability to function full Java applications with the entire use of Java API. JVM is a must requirement to view an applet on the browser. Applet extends with the use of java.applet.Applet class.

70. What are the types of Applets?

Based on location, there are two types of Java applets as Local Applets that are stored on the same computer or system. The Remote Applets that have files on remote systems.

71 What are immutable objects in Java?

En Java, los objetos inmutables son aquellos cuyo estado no cambia después de haber sido creados. Los objetos inmutables son ideales para aplicaciones de subprocesos múltiples que permiten compartir los subprocesos evitando la sincronización. Se prefieren los objetos inmutables para construir un código simple, sólido y confiable para que coincida con una estrategia efectiva.

72. ¿Qué quiere decir con JRE (Java Runtime Environment)?

Java Runtime Environment es la capa de software que brinda soporte para los requisitos mínimos para ejecutar programas Java en una máquina. Junto con JDK y JRE, estos tres constituyen los fundamentales para ejecutar y desarrollar programas Java en una máquina específica.

73. ¿De qué es parte un JDK?

Java Development Kit (JDK) es uno de los principales paquetes tecnológicos esenciales para ejecutar programas Java. Puede ser la implementación de cualquiera de las plataformas Java, Standard Edition, Micro o Enterprise Edition desarrolladas por Oracle para crear aplicaciones en Windows, Linux o macOS.

74. ¿Qué es una Máquina Virtual Java (JVM)?

Java Virtual Machine (JVM) es uno de los tres requisitos fundamentales para ejecutar y ejecutar programas Java junto con JDK y JRE. JVM tiene dos funciones principales; en primer lugar, potenciar los programas Java para que se ejecuten sin problemas en cualquier máquina o sistema y, en segundo lugar, optimizar la memoria para ofrecer rendimiento.

75.¿Cuáles son las diferencias entre JDK, JRE y JVM?

JVM
JRE
JDK
máquina virtual de Java Entorno de tiempo de ejecución de Java Kit de desarrollo de Java
Depende de la plataforma con varias opciones de software y hardware disponibles. Capa de software que brinda soporte a los requisitos mínimos para ejecutar programas Java en una máquina.

edición estándar

Edición de Empresa

Microedición

Tres nociones como:

  • Especificación
  • Implementación
  • Ejemplo
Conjunto de bibliotecas + archivos que potencian JVM en tiempo de ejecución. JRE + herramientas de desarrollo
Proporciona un entorno de tiempo de ejecución para la ejecución. JRE representa la implementación de JVM. Entorno de desarrollo de software.

76. ¿Cuántos tipos de áreas de memoria hay en JVM?

Hay varios tipos de áreas de memoria en JVM:

  • Área de clase: esta memoria almacena estructuras previas a la clase con el campo, el grupo, los datos del método y el código.
  • Heap significa memoria de tiempo de ejecución asignada específicamente a los objetos.
  • Stack representa la memoria del marco con una variable local, resultados parciales, un hilo y un marco para cada método.
  • Program Counter Register almacena la información para la instrucción actual con la ejecución de la máquina virtual Java.
  • El método nativo Stack almacena todos los métodos nativos actuales que se utilizan en las aplicaciones actuales.

77. ¿Qué es el enlace de datos en Java?

El enlace de datos representa las conexiones entre la clase y el método, el campo, la variable, los constructores o el cuerpo de un método. Java puede manejar el enlace de datos tanto estática como dinámicamente.

78. ¿Cuáles son los diferentes tipos de enlace de datos en Java?

Hay dos tipos cruciales de enlace de datos en Java.

  • El enlace estático ocurre en tiempo de compilación usando métodos estáticos, finales y privados; también conocido como unión anticipada.
  • El enlace dinámico se presenta en tiempo de ejecución sin información exacta conocida sobre el método correcto durante el tiempo de compilación.

79. ¿Qué es un zócalo de Java?

Los sockets ayudan a construir mecanismos de comunicación desde las dos computadoras a través de TCP. Idealmente, los enchufes son más suficientes y flexibles para las comunicaciones.

80. Explique la diferencia entre Path y Classpath.

Tanto la ruta como Classpath representan variables de entorno locales. La ruta proporciona el software para ubicar los archivos ejecutables, mientras que ClassPath especifica la ubicación de los archivos .class en el sistema.

81. ¿Existe un método abstracto sin el uso de una clase abstracta?

No, para que exista un método abstracto en una clase, debe ser una clase abstracta.

82. ¿Cuál es el proceso de creación de una clase de solo lectura en Java?

En Java, puede crear una clase de solo lectura manteniendo todos los campos privados. Esta clase específica de solo lectura solo tendrá métodos getter que devuelvan propiedad privada. No permite modificar o cambiar esta propiedad ya que no hay ningún método de establecimiento disponible.

 1
2
3
4
5
6
7
8
9
 // Una clase de solo lectura en Java
Estudiante de clase pública {    
//miembro de datos privados
Instituto privado de cadenas = "MKG" ;    
//método getter para instituto
cadena pública getInstitute (){    
instituto de retorno ;    
}    
}

83. ¿Cuál es el proceso para crear una clase de solo escritura en Java?

En Java, también puede crear una clase de solo escritura manteniendo todos los campos privados con la implementación de métodos de establecimiento únicamente.

 1
2
3
4
5
6
7
8
9
 // Una clase de solo escritura en Java
Estudiante de clase pública {    
//miembro de datos privados
instituto privado de cuerdas ;    
//método setter para instituto
public void setInstitute ( Instituto de cadenas ){    
esto _ instituto = instituto ;    
}    
}

84. ¿Explicar la forma de acceder a una clase en otra clase en Java?

En Java, hay dos formas de acceder a una clase en otra clase como:

  • Usando el nombre específico: Podemos acceder a una clase en particular desde un paquete diferente usando el nombre calificado o importar ese paquete que contiene una clase específica.
  • Usando la ruta relativa: De manera similar, también podemos usar la ruta relativa para ese paquete con una clase específica.

85. ¿Qué es el manejo de excepciones?

El manejo de excepciones representa el mecanismo para manejar la excepción o condiciones anormales durante los errores de tiempo de ejecución para mantener el flujo normal de la aplicación. Hay tres tipos diferentes de excepciones de Java con excepción comprobada, excepción no comprobada y error.

86. Explique la diferencia entre Excepción marcada y Excepción no marcada.

  • Las excepciones marcadas son clases que amplían aún más las clases arrojables, excepto RuntimeException, como SQLException, IOException, etc. Las excepciones marcadas se manejan solo durante el tiempo de compilación.
  • Las excepciones no verificadas son clases que amplían RuntimeException, como NullPointerException, ArithmeticException, etc., y no se manejan durante el tiempo de compilación.

87. ¿Cuál es la clase base para Excepción y Error?

Aquí, la clase Throwable representa la clase base para Excepción y Error.

88. Mencione la palabra clave Manejo de excepciones en Java.

Hay cinco palabras clave para manejar excepciones en Java :

Palabra clave Descripción
tratar Este bloque de prueba define el bloque para colocar el código de ejecución. Este bloque try generalmente es seguido por el uso de catch o finalmente. Por lo tanto, no se pueden usar solos.
atrapar El objetivo principal del bloque Catch es manejar la excepción. Debe usar esto en combinación con el bloque de prueba y luego finalmente en la etapa posterior.
finalmente Finalmente, el bloque verifica el código importante del programa que verifica si la ejecución se realiza o no.
lanzar El objetivo principal de la palabra clave throw es lanzar una excepción del programa.
lanza La palabra clave throws se usa principalmente para declarar excepciones y no para lanzar una excepción. Proporciona información sobre la ocurrencia de excepciones y se aplica con una firma de método.

89. Explique la importancia del bloque finalmente.

Aquí, el bloque finalmente tiene una importancia crucial en el buen funcionamiento del programa. Siempre se ejecuta tanto si se maneja la excepción como si no. Finalmente, el bloque viene después del bloque try or catch. En la JVM, el sistema siempre ejecutará el bloque finalmente antes de finalizar o cerrar un archivo. Para cada bloque de prueba presente, puede haber cero o múltiples bloques de captura, aún así solo puede haber un bloque finalmente.

90. ¿Es posible ejecutar un bloque finalmente sin un bloque catch?

Sí, se puede ejecutar un bloque finalmente seguido de un bloque try o catch, respectivamente.

91. ¿Existen supuestos para no existir bloque final?

Finalmente el bloque no se ejecuta o ejecuta en caso de que el programa ya exista o traiga un error fatal por abortar el proceso.

92. Explica las principales diferencias entre throw y throws.

lanzar palabra clave

lanza palabra clave

Lanza una excepción. Declara una excepción.
Las excepciones marcadas no se pueden propagar solo con throw. Las excepciones marcadas pueden propagarse con lanzamientos.
Le sigue una instancia. Le sigue una clase.
Se utiliza en el método solamente. Se utiliza con una firma de método específica.
No hay posibilidades de múltiples excepciones. Mientras que en este procedimiento, se pueden declarar múltiples excepciones.

93. ¿Existe la posibilidad de que se vuelva a lanzar una excepción?

Sí, si existe una excepción, se puede volver a generar.

94. Explique acerca de la propagación de excepciones.

El proceso de excepción dentro del procedimiento de manejo se conoce como propagación de excepción. Por ejemplo, una excepción se maneja primero en la parte superior de la pila y luego, si no se detecta, la excepción cae al método anterior y, si no, desciende aún más hasta que la excepción se detecta o llega al final. de la pila Las excepciones marcadas por defecto no tienen propagación.

95. Explique el significado de hilo en Java.

En Java, la forma o el flujo de la ejecución se conoce como hilo. Por lo tanto, cada programa contiene un subproceso denominado subproceso principal creado por la JVM. Los desarrolladores tienen el poder de definir sus subprocesos personalizados agregando y ampliando la clase Subproceso mediante la interfaz.

96. Explique el significado del grupo de subprocesos.

El grupo de subprocesos de Java es un grupo de varios subprocesos que esperan continuamente las tareas asignadas. Aquí, los grupos de subprocesos funcionan bajo el proveedor de servicios que extrae un subproceso de este grupo y luego les asigna la tarea para un trabajo específico. El grupo de subprocesos agrega más rendimiento y estabilidad al sistema.

97. Explique la diferencia entre String y StringBuffer.

Cuerda

StringBuffer

La clase de cadena es de naturaleza inmutable. La clase StringBuffer, por otro lado, es mutable.
Las cuerdas son lentas. De lo contrario, StringBuffer es bastante rápido.
Estos consumen más memoria para crear una nueva instancia. Estos consumen menos memoria con cadenas concat.
Las cadenas permiten la comparación de su contenido, ya que anula el método equals() de la clase Object. Mientras que la clase StringBuffer no puede anular el método equals() de la clase Object.

98. Explique la diferencia entre StringBuffer y StringBuilder.

StringBuffer

Constructor de cadenas

Se sincroniza con seguridad a hilos. No está sincronizado sin seguridad para los subprocesos.
En esto, dos hilos no tienen método de llamada. En esto, dos subprocesos pueden tener métodos de llamada sin problemas.
Más bajo o menos eficiente que StringBuilder. Más eficiente que StringBuffer.

99. ¿Cuál es la forma de crear una clase inmutable en Java?

En Java, puede crear una clase inmutable declarando una clase final con todos sus miembros como finales. Pongamos un ejemplo para entender esto:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
 Empleado de clase final pública {  
 	cadena final numero de seguridad ;  
 	  
 	Empleado publico ( String numeroSeguridad ){  
 	esto _ númeroSeguridad = númeroSeguridad ;  
 	}  
 	  
 	Cadena pública getSecurityNumber (){  
 	return numeroSeguridad ;  
  }  
    
  }

99. ¿Qué son las clases internas?

Las clases internas de Java se definen y declaran dentro de una interfaz o clase. Las clases internas permiten que el sistema agrupe clases e interfaces de forma lógica haciéndolas más legibles y fáciles de mantener. Además, estas clases pueden acceder a todos los miembros de la clase externa con métodos, así como a miembros de datos privados.

100. ¿Cuáles son las principales ventajas y desventajas de usar las clases internas de Java?

Las principales ventajas de las clases internas de Java incluyen:

  • Accesibilidad a todos los miembros de las clases externas.
  • Menos código para escribir.
  • Más mantenimiento y código legible.

Las principales desventajas de las clases internas de Java incluyen:

  • Menos soporte del IDE.
  • Un elevado número de clases totales.

101. ¿Define los tipos de clases internas en el lenguaje de programación Java?

Las clases internas tienen tres tipos principales:

  • Miembro Clase interna que especifica una clase dentro de la clase usando el método externo.
  • Clase interna anónima para ampliar la clase o especificar la implementación de una interfaz.
  • Clase interna local para crear una clase dentro del método.

102. Defina una clase anidada.

Las clases anidadas se definen o declaran solo dentro de una clase o interfaz. Una clase anidada puede acceder específicamente a todos los miembros de la clase externa con métodos y miembros de datos privados también. Aquí hay una sintaxis simple de una clase anidada:

 1
2
3
4
5
6
 clase Java_Outer_class {    
 	 //código
 	 clase Java_Nested_class {    
 	  //código
 	 }    
 	}

103. ¿Puede explicar la diferencia entre clases internas y clases anidadas?

Todas las clases internas se definen como clases anidadas no estáticas. Por lo tanto, las clases internas son solo parte de las clases anidadas.

104. ¿Cómo definirías el significado de Colecciones en Java?

Las colecciones en Java son un grupo de múltiples objetos que se presentan como una unidad; conocido principalmente como Colecciones de los objetos. También se denominan Collection Framework o arquitectura que proporciona espacio de almacenamiento para objetos y manipula aún más el diseño para cambios.

Estas son las principales funciones realizadas por las colecciones de Java:

  • Clasificación
  • buscando
  • Inserción
  • Manipulación
  • Supresión

Hay muchas interfaces y clases que forman parte de las colecciones.

105. ¿Qué interfaces y clases están disponibles en las colecciones?

Aquí está la lista de las interfaces y clases que están disponibles con las colecciones en Java.

  • Interfaces: colección, cola, conjunto ordenado, mapa ordenado, lista, conjunto, mapa
  • Clases: Listas, Vector, Lista de matriz, Lista enlazada
  • Conjuntos: conjunto de hash, conjunto de árbol, conjunto de hash vinculado
  • Mapas: mapa hash, tabla hash, TreeMap, mapa hash vinculado
  • Cola: cola de prioridad

106. ¿Explica ordenado y ordenado en relación con las colecciones en Java?

  • Ordenado: la ordenación permite que el grupo de objetos se aplique interna o externamente para ordenarlos en una colección particular, en función de sus diferentes propiedades.
  • Ordenado: define los valores que se ordenan en función de los valores agregados en la colección y los itera en un orden particular.

107. ¿Cuáles son las diferentes listas disponibles en la colección?

Enumera los valores de la tienda en función de su posición de índice con la duplicación permitida. Estos son los principales tipos de listas:
Listas de arreglos: utiliza la interfaz de acceso aleatorio, proporciona una recopilación de pedidos por índice, no ordenada, y ofrece una iteración rápida. Aquí hay un ejemplo para entender esto:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
 Frutas de clase pública {
public static void main ( String [ ] args ){
ArrayList < String > nombres = new ArrayList < String >();
nombres añadir ( " manzana " );
nombres añadir ( " aguacate " );
nombres agregar ( " cereza " );
nombres añadir ( " kiwi " );
nombres añadir ( " naranjas " );
nombres añadir ( " plátano " );
nombres añadir ( " kiwi " );
sistema fuera _ println ( nombres );
}
}

La salida es la siguiente:

[Manzana, aguacate, cereza, kiwi, naranjas, plátano, kiwi]

Con la salida, puede verificar que Array List mantiene el orden de inserción original y también permite duplicados. Aunque no ordenado.

Vector: también utiliza el método de acceso aleatorio, está sincronizado y ofrece compatibilidad con la seguridad de subprocesos.

Entendamos esto con un ejemplo:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
 Frutas de clase pública {
public static void main ( String [ ] args ){
ArrayList < String > nombres = nuevo vector < String >();
nombres añadir ( " kiwi " );
nombres añadir ( " naranjas " );
nombres añadir ( " plátano " );
nombres añadir ( " manzana " );
nombres añadir ( " aguacate " );
nombres agregar ( " cereza " );
nombres añadir ( " kiwi " );
sistema fuera _ println ( nombres );
}
}

La salida es la siguiente:

[kiwi, naranjas, plátano, manzana, aguacate, cereza, kiwi]

Las listas de vectores siguen el orden de inserción original y también admiten los duplicados.

Lista enlazada: también es una opción ideal para la eliminación y la inserción, los elementos tienen enlaces dobles, pero su rendimiento es lento.

Ejemplo de lista enlazada:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
 Frutas de clase pública {
public static void main ( String [ ] args ){
ArrayList < String > nombres = nuevo vector < String >();
nombres añadir ( " kiwi " );
nombres añadir ( " naranjas " );
nombres añadir ( " plátano " );
nombres añadir ( " manzana " );
nombres añadir ( " aguacate " );
nombres agregar ( " cereza " );
nombres añadir ( " kiwi " );
sistema fuera _ println ( nombres );
}
}

La salida es la siguiente:

[Manzana, aguacate, cereza, kiwi, naranjas, plátano, kiwi]

También sigue el orden de inserción original y acepta duplicados.

108. ¿Cuáles son las principales diferencias entre colección y colecciones en Java?

Las principales diferencias son las siguientes:

  • La colección representa una interfaz, mientras que las Colecciones son particularmente solo de clase.
  • La interfaz de colección proporciona múltiples funcionalidades para estructurar datos como Lista, Conjunto y Cola. Mientras que el objetivo principal de la clase Collection se limita a ordenar y sincronizar los elementos de la colección.

109. Explique la cola de prioridad.

Priority Queue define la interfaz de la cola para manejar listas enlazadas con el propósito de Prioridad de entrada y Prioridad de salida. La cola generalmente sigue un algoritmo de primero en entrar, primero en salir (FIFO), aún así puede poner en cola elementos en función de requisitos específicos, y luego podemos implementar PriorityQueue para la personalización. Con Priority Queue, depende del montón de prioridad de forma natural o a través del comparador en su prioridad relativa.

110. ¿Cuándo es ideal usar y comparar la interfaz Runnable en Java?

Cuando necesitamos extender una clase con otras clases y no con los subprocesos, las interfaces ejecutables son una opción ideal.

111. ¿Cuál es la diferencia entre el método start() y run() de la clase thread?

El método start() agrega y crea un nuevo hilo. Y el código en el método run() se ejecuta solo en el nuevo hilo. Mientras que el método run() ejecutará el código solo en el hilo actual.

112. ¿Qué es multihilo?

En Java, podemos ejecutar múltiples subprocesos simultáneamente, lo que se conoce como Multithreading. Ayuda al programa a realizar múltiples tareas mientras ocupa menos memoria y brinda un mayor rendimiento. En Multithreading, los hilos son livianos, comparten el mismo espacio y son bastante asequibles en todos los aspectos.

113. Explique la diferencia entre proceso e hilos.

Aquí las principales diferencias son:

  • Un programa Java en ejecución se denomina proceso, mientras que un subproceso representa solo un subconjunto del proceso.
  • Los procesos representan diferentes espacios en la memoria, mientras que los hilos tienen la misma dirección.
  • Los procesos son completamente independientes, mientras que los hilos son solo parte del proceso.
  • Comunicación lenta entre procesos internos, mientras que la comunicación entre subprocesos es rápida.

114. Explique el significado de la comunicación entre hilos.

La comunicación entre subprocesos se define como el proceso que permite la comunicación entre múltiples subprocesos sincronizados. Su objetivo principal es evitar la agrupación de subprocesos en Java. La comunicación se logra a través de los métodos de esperar (), notificar () y notificar a todos ().

115. Explique el método wait().

Con el método wait(), puede permitir que el subproceso esté en la etapa de espera mientras el otro subproceso está bloqueado en el objeto. Por lo tanto, el método wait() puede agregar una duración de espera significativa para los subprocesos.

Aquí hay una sintaxis para representar esto:

 1
2
3
4
5
6
 public static void main ( String [] args ){
Subproceso t = nuevo Subproceso ();
t . inicio ();
Sincronizado ( t ) {
Espera ();
}

116. ¿Cuál es la principal diferencia entre los métodos de notificación() y de notificación a todos() en Java?

El método de notificación () envía una señal para activar solo un subproceso en particular en el grupo de espera, mientras que el método de notificación () activa todos los subprocesos en la etapa de espera del grupo.

117. Defina las principales diferencias entre dormir() y esperar().

Sleep() pausa o detiene el progreso del subproceso actual al suspender la ejecución durante un período determinado sin liberar el bloqueo. Mientras que wait() provoca una duración de espera para un subproceso después de invocar un método de notificación() para despertar más tarde.

118. Explique el método join() en relación con el hilo en Java.

El método join() permite combinar un hilo con uno de los hilos continuos. Aquí hay una sintaxis para el método join():

 1
2
3
4
5
 public static void main ( String [] args ){
Subproceso t = nuevo Subproceso ();
t . inicio ();
t . unirse ();
}

119. Explique el método de rendimiento de Thread.

El método de rendimiento es un método estático y no libera ningún bloqueo en los subprocesos. Aquí, un método Yield() permite que el subproceso actual se convierta en un subproceso más ejecutable mientras permite que los otros subprocesos mantengan la ejecución. Por lo tanto, los subprocesos de igual prioridad de subprocesos pueden ejecutarse regularmente.

120. ¿Qué es la etapa de inanición?

El hambre es una fase en la que un subproceso no puede obtener acceso a los recursos compartidos y no puede hacer ningún progreso.

121. ¿Qué es Deadlock para un hilo?

Deadlock define una etapa en la que dos o varios subprocesos se bloquean para siempre en espera el uno del otro.

122. ¿Definir serialización y deserialización en Java?

La serialización es el proceso para transformar el estado de un objeto en un flujo de bytes particular ideal para las tecnologías JPA, JMS, RMI, JPA e Hibernate. Mientras que el proceso opuesto de convertir un flujo de bytes en un objeto se denomina deserialización. Ambos procesos son independientes de la plataforma, por lo que le permiten serializar en una plataforma y deserializar en una plataforma completamente diferente de manera eficiente.

123. ¿Cuál es la importancia de las variables transitorias?

La importancia de las variables transitorias radica en la deserialización que se establece en las variables predeterminadas y no se utiliza con las variables estáticas.

124. ¿Qué son las variables volátiles?

Las variables volátiles juegan un papel crucial en la sincronización y lectura de la memoria principal mientras evitan la memoria caché de subprocesos.

125. ¿Qué es SerialVersionUID?

En el proceso serializado, un objeto se marca con un número de ID de versión específico para la clase de objeto respectiva. Este número se denomina SerialVersionUID y juega un papel crucial en la verificación durante el proceso de deserialización para verificar la compatibilidad en el remitente y el receptor, respectivamente.

126. ¿Cuál es el proceso para clonar un objeto en Java?

Con la clonación de objetos, puede crear una copia exacta del objeto original. Para que la clonación sea posible, una clase debe tener soporte para la clonación con la interfaz java.lang.Cloneable y permitir anular el método clone() de la clase de objeto original.

Aquí una sintaxis simple para el método clone():

Objeto protegido clone () lanza CloneNotSupportedException

En caso de que el clon no lo implemente, generalmente genera una excepción con la excepción 'CloneNotSupportedException'.

127. ¿Defina la clase que queda como superclase para cada clase?

Clase de objeto.

128. ¿Define si una clase de cadena es mutable o inmutable?

La clase String representa un estado inmutable. Entonces, una vez que se crea un objeto, esto no puede cambiar más.

129. ¿Cómo se diferencia entre la clase StringBuffer y StringBuilder?

  • StringBuilder es más rápido que StringBuffer.
  • StringBuffer está sincronizado mientras que StringBuilder no está sincronizado.
  • StringBuffer ofrece un entorno seguro para subprocesos, mientras que StringBuilder no tiene capacidad de seguridad para subprocesos.

130. ¿Cuál es el uso del método toString() en Java?

En Java, toString() recupera o devuelve la representación de cadena de cualquier objeto.

131. ¿Qué es una recolección de basura en Java?

A medida que los objetos se asignan dinámicamente a través del operador, el sistema Java también maneja la desasignación de la memoria utilizada automáticamente en caso de que no haya referencias para el objeto que permanece durante un período significativo. Este proceso de mantener el sistema libre de objetos que no tienen uso se conoce como Garbage Collection en Java. El objetivo principal de la recolección de elementos no utilizados es hacer que la gestión de la memoria sea más eficiente.

132. ¿Cuál es la cantidad de veces que un recolector de basura llama al método finalize() para un objeto específico?

Puede llamar al método finalize() en la recolección de basura solo una vez.

133. Defina las formas de llamar a la recolección de basura.

Hay dos formas de llamar a la recolección de basura:

  • Sistema.gc()
  • Tiempo de ejecución.getRuntime().gc()

134. ¿Podemos forzar la recolección de basura?

No, este es un proceso automático. Puede llamar al método de recolección de basura, pero no puede forzarlo. Aún así, no garantiza que estaría completo.

135. ¿Cuáles son los diferentes tipos de datos en Java? Explicar.

Aquí hay una lista corta para ayudarlo con los tipos de datos:

  • byte – 8 bits
  • corto - 16 bits
  • char – Unicode de 16 bits
  • int – 32 bits (número entero)
  • float – 32 bits (número real)
  • largo: 64 bits (precisión simple)
  • doble - 64 bits (doble precisión)

136. Defina el Unicode.

Unicodes es una forma de definir caracteres internacionales en lenguajes humanos, y Java usa esta estructura Unicode para simbolizar los caracteres.

137. Defina literal.

Un literal es un valor constante asignado a una variable particular

// Aquí 105 es un literal

numero int = 105

138. ¿Define el tipo de casting en Java?

En el caso de asignar un valor de un tipo de datos a otro tipo de datos, estos dos pueden o no ser compatibles y requieren conversión. Java se convertirá automáticamente en caso de tipos de datos compatibles. Mientras que si los tipos de datos no son compatibles, estos deben convertirse para una conversión exitosa. Casting tiene dos tipos básicos: implícito y explícito.

139. Explique los dos tipos diferentes de encasillamiento.

  • Implícito: define el almacenamiento de valores de tipos de datos más pequeños en tipos de datos más grandes, realizado solo por el compilador.
  • Explícito: define el almacenamiento de valores de tipos de datos más grandes en tipos de datos más pequeños que pueden provocar la pérdida de información.

Conclusión

Las preguntas de la entrevista de Java anteriores proporcionarán un buen comienzo para prepararse para la entrevista. Sin embargo, también practique sus habilidades de codificación y asegúrese de ser minucioso en estas preguntas y sus conceptos relacionados para que cuando el entrevistador dispare una Q, esté listo para ganar la ronda con su A. Ah, y no olvide 3 respiraciones (discretas) cuando te presentas ante el entrevistador.

Si está interesado en obtener más información sobre Java, desarrollo de software de pila completa, consulte el programa Executive PG de upGrad & IIIT-B en desarrollo de software: especialización en desarrollo de pila completa, que está diseñado para profesionales que trabajan y ofrece más de 500 horas de formación rigurosa. , más de 9 proyectos y asignaciones, estado de exalumno de IIIT-B, proyectos finales prácticos prácticos y asistencia laboral con las mejores empresas.

¡Todo lo mejor! ¡Espero que rompas tus entrevistas!

Aterrice en el trabajo de sus sueños

Solicite la certificación PG vinculada al trabajo de upGrad en ingeniería de software