Preguntas de programación en el examen universitario de Java
1. Abstracción: La abstracción es ignorar aquellos aspectos de un tema que no están relacionados con el objetivo actual 2. 3. Para prestar más atención a los aspectos relacionados con el objetivo actual 4. La abstracción no es 5. Tratando de entender todos los problemas, pero 6. Simplemente elige algunos de ellos, 7. Aún no, 8. Aprovecha algunos detalles. La abstracción incluye dos aspectos9. Uno es la abstracción de procesos, 10. Otra es la abstracción de datos.
11. Herencia: La herencia es un modelo jerárquico de clases conectadas, 12. Permite y fomenta la reutilización de clases,13. Proporciona una expresión clara * * *. Se pueden derivar nuevas clases de objetos a partir de clases existentes14. Este proceso se llama herencia de clases. La nueva clase hereda las características de la clase original. 15. La nueva clase se denomina clase derivada (subclase) de la clase original, y 16. La clase original se denomina clase base (clase principal) de la nueva clase. Las clases derivadas pueden heredar métodos y variables de instancia de sus clases base17. Y las clases se pueden modificar o agregar nuevos métodos para hacerlas más adecuadas para necesidades especiales.
18. Encapsulación: Encapsulación es encapsular procesos y datos, 19. Solo se puede acceder a los datos a través de interfaces definidas. La computación orientada a objetos parte del concepto básico de que el mundo real puede describirse como una serie de objetos completamente autónomos y encapsulados21. Estos objetos acceden a otros objetos a través de interfaces protegidas.
22. Polimorfismo: El polimorfismo se refiere a 23. Se permiten 24 diferentes. objeto de clase para responder a los mismos mensajes 25.1. El polimorfismo incluye polimorfismo paramétrico y polimorfismo de inclusión. Los lenguajes polimórficos tienen las ventajas de flexibilidad, abstracción, disfrute del comportamiento y disfrute del código. 26. La aplicación presenta los mismos problemas que 27. Nombre 28. Es muy fácil de resolver.
2. ¿Es la cadena el tipo de datos más básico?
Los tipos de datos básicos incluyen byte, entero, carácter, largo, punto flotante, doble, booleano y corto.
La clase java.lang.String es un tipo final y por lo tanto no se puede heredar ni modificar. Para mejorar la eficiencia y ahorrar espacio, deberíamos utilizar la clase StringBuffer.
3. ¿Cuál es la diferencia entre int y entero?
Java proporciona dos tipos diferentes: tipos de referencia y tipos primitivos (o tipos integrados). Int es el tipo de datos primitivo de Java e Integer es la clase de encapsulación proporcionada por Java para int. Java proporciona una clase contenedora para cada tipo primitivo.
Clase de encapsulación de tipo primitivo booleano carácter booleano byte entero corto punto flotante doble
Los tipos de referencia y los tipos primitivos se comportan de manera completamente diferente y tienen una semántica diferente. Los tipos de referencia y los tipos primitivos tienen diferentes características y usos, que incluyen: tamaño y velocidad, en qué estructura de datos se almacena el tipo y los valores predeterminados especificados cuando los tipos de referencia y los tipos primitivos se utilizan como datos de instancia de una clase. El valor predeterminado de una variable de instancia de referencia de objeto es nulo, mientras que el valor predeterminado de una variable de instancia de tipo primitivo depende de su tipo.
4. La diferencia entre String y StringBuffer
La plataforma JAVA proporciona dos clases: String y StringBuffer, que pueden almacenar y operar cadenas, es decir, datos de caracteres que contienen varios caracteres. Esta clase String proporciona una cadena cuyo valor no se puede cambiar. Y modifique la cadena proporcionada por esta clase StringBuffer. Utilice StringBuffer cuando sepa que los datos de los caracteres van a cambiar. Normalmente, los datos de caracteres se pueden construir dinámicamente utilizando StringBuffers.
5. ¿Cuáles son las similitudes y diferencias entre las excepciones de tiempo de ejecución y las excepciones generales?
Las excepciones representan condiciones anormales que pueden ocurrir durante la ejecución del programa. Las excepciones en tiempo de ejecución representan excepciones que pueden ocurrir cuando la máquina virtual se ejecuta normalmente. El compilador de Java requiere que un método declare que genera una posible excepción que no es de tiempo de ejecución, pero no requiere que declare que genera una excepción de tiempo de ejecución no detectada.
6. Cuente el ciclo de vida de Servlet y la diferencia entre Servlet y CGI.
Después de que el servidor crea una instancia del servlet, el contenedor ejecuta su método init. Cuando llega la solicitud, ejecuta su método de servicio. El método de servicio programa automáticamente el método doXXX (doGet, doPost) correspondiente a la solicitud en ejecución y llama a su método de destrucción cuando el servidor decide destruir la instancia.
La diferencia con cgi es que el servlet está en el proceso del servidor y ejecuta su método de servicio a través de múltiples subprocesos. Una instancia puede atender varias solicitudes y, por lo general, sus instancias no se destruyen. CGI genera un nuevo proceso para cada solicitud y lo destruye una vez que se completa el servicio, por lo que no es tan eficiente como el servlet.
7. Describir el rendimiento del almacenamiento y las características de ArrayList, Vector y LinkedList.
Tanto ArrayList como Vector utilizan matrices para almacenar datos. La cantidad de elementos en esta matriz es mayor que los datos realmente almacenados para agregar e insertar elementos. Ambos permiten la indexación directa de elementos por número de secuencia, pero la inserción de elementos implica operaciones de memoria como el movimiento de elementos de la matriz, por lo que la indexación de datos es rápida y la inserción de datos es lenta. Vector utiliza métodos sincronizados (seguros para subprocesos). Generalmente, el rendimiento es peor que el de ArrayList, mientras que LinkedList utiliza una lista doblemente enlazada para almacenar datos. Requiere un recorrido hacia adelante o hacia atrás para indexar los datos por número de serie y, al insertar datos, solo es necesario registrar los dos elementos antes y después del elemento, por lo que la velocidad de inserción es más rápida.
8.¿En qué tecnología se basa EJB? Y diga la diferencia entre SessionBean y EntityBean, StatefulBean y StatelessBean.
EJB incluye beans de sesión, beans de entidad y beans controlados por mensajes, y se implementa en base a JNDI, RMI, JAT y otras tecnologías.
SessionBean se utiliza para completar algunas operaciones comerciales del lado del servidor en aplicaciones J2EE, como acceder a bases de datos y llamar a otros componentes EJB. EntityBean se utiliza para representar datos utilizados en sistemas de aplicaciones.
Para el cliente, SessionBean es un objeto no persistente que implementa cierta lógica empresarial que se ejecuta en el servidor.
Para el cliente, un EntityBean es un objeto persistente que representa una vista de objeto de una entidad almacenada en la memoria persistente o una entidad implementada por una aplicación empresarial existente.
Los beans de sesión se pueden subdividir en beans de sesión con estado y beans de sesión sin estado, los cuales pueden ejecutar la lógica del sistema en métodos. La diferencia es que los beans de sesión con estado pueden registrar el estado de la persona que llama, por lo que, en términos generales, un usuario tendrá una entidad de bean de sesión con estado correspondiente. Aunque el bean de sesión sin estado también es un componente lógico, no es responsable de registrar el estado del usuario. Es decir, cuando el usuario llama al bean de sesión sin estado, el contenedor EJB no encontrará la entidad específica del bean de sesión sin estado. ejecutar este método. En otras palabras, cuando varios usuarios ejecutan un método de un bean de sesión sin estado, pueden ejecutar la misma instancia del bean. En términos de memoria, en comparación con los beans de sesión sin estado, los beans de sesión con estado consumen más memoria del servidor J2EE, pero la ventaja de los beans de sesión con estado es que pueden mantener el estado del usuario.
9. La diferencia entre conjuntos y colecciones. Colección es la interfaz superior de la clase de colección, y las interfaces heredadas de ella incluyen principalmente colecciones y listas.
Colecciones es una clase auxiliar para la clase de colección. Proporciona una serie de métodos estáticos para buscar, ordenar, proteger subprocesos y otras operaciones en varias colecciones.
10. Diferencias con el amplificador. amp es un operador bit a bit, lo que significa operación AND bit a bit. amp es un operador lógico, es decir, lógico y.
11. La diferencia entre HashMap y Hashtable.
HashMap es una implementación ligera de Hashtable (no segura para subprocesos)
La principal diferencia es que HashMap permite claves nulas, que pueden ser más eficientes que Hashtable debido a que no es segura para subprocesos.
HashMap permite null como clave o valor de la entrada, Hashtable no lo permite.
HashMap eliminó el método contiene de Hashtable y lo cambió a contiene valor y contiene clave porque Hashtable hereda de la clase Diccionario. , HashMap Es una implementación de la interfaz Map introducida en Java 1.2.
La mayor diferencia es que los métodos de Hashtable están sincronizados, pero HashMap no es necesario cuando varios subprocesos acceden a Hashtable. sincronice sus propios métodos, pero HashMap debe proporcionar sincronización externa.
Hashtable y HashMap utilizan aproximadamente el mismo algoritmo hash/rehash, por lo que no habrá una gran diferencia en el rendimiento. La diferencia entre final y finalizar. Para declarar propiedades, métodos y clases, significa que las propiedades son inmutables, los métodos no se pueden anular y las clases no se pueden heredar. Finalmente es parte de la estructura de la declaración de manejo de excepciones, lo que significa que Finalize siempre se ejecuta cuando. recolección de basura. Este método de reciclaje del objeto se llamará cuando se ejecute el procesador, lo que puede anular el reciclaje de otros recursos cuando este método proporciona recolección de basura, como cerrar el archivo.
13. entre sleep() y wait() ? Sleep es un método similar a un subproceso que suspende la ejecución de este subproceso durante un período de tiempo específico y brinda la oportunidad de ejecución a otros subprocesos, pero el estado de monitoreo permanece sin cambios y se reanudará automáticamente después. llamar a sleep Wait. Es un método de la clase Object. Llamar al método de espera en este objeto hará que el subproceso abandone el bloqueo del objeto y entre al grupo de bloqueo de espera para esperar este objeto. después de emitir el método de notificación (o notificar a todos) para este objeto, el grupo adquiere el bloqueo del objeto y entra en el estado de ejecución.
14. La diferencia entre sobrecargar y anular puede cambiar el tipo de valor de retorno.
¿Anulación y sobrecarga de métodos? ¿Son diferentes manifestaciones de polimorfismo en Java? La anulación es una manifestación de polimorfismo entre una clase principal y una subclase, y la sobrecarga es una manifestación de polimorfismo en una clase si el método se define en. la subclase tiene el mismo valor que su clase principal, nombre y parámetros, decimos que el método se anula. Cuando un objeto en la subclase usa este método, llamará a la definición en la subclase. La clase parece estar "protegida". Si se definen varios métodos con el mismo nombre en una clase, tienen diferentes números de parámetros o diferentes tipos de parámetros, lo que se denomina sobrecarga de métodos. El método de sobrecarga consiste en cambiar el tipo de valor de retorno.
15. ¿Cuál es la diferencia entre errores y excepciones?
El error indica que la recuperación es un problema grave cuando la recuperación no es imposible sino difícil. Por ejemplo, desbordamiento de memoria. Es imposible esperar que un programa pueda manejar tal situación.
Las excepciones indican problemas de diseño o implementación. En otras palabras, si el programa se ejecuta normalmente, esto nunca sucederá.
16. ¿Cuáles son las similitudes y diferencias entre sincrónico y asincrónico? ¿En qué circunstancias se utilizan por separado? Dar ejemplos.
Si los datos se compartirán entre hilos. Por ejemplo, los datos que se escriben pueden ser leídos más tarde por otro subproceso, o los datos que se leen pueden haber sido escritos por otro subproceso, por lo que estos datos son datos exclusivos y se debe acceder a ellos de forma sincrónica. La programación asincrónica debe usarse cuando una aplicación llama a un método que tarda mucho en ejecutarse en un objeto y no quiere que el programa espere el regreso del método. En muchos casos, los métodos asincrónicos suelen ser más eficientes.
17. ¿Cuál es la diferencia entre clase abstracta e interfaz? Una clase que declara la existencia de un método sin implementarlo se llama clase abstracta. Se utiliza cuando desea crear una clase que incorpore algún comportamiento básico y declarar un método para esta clase, pero no puede implementar esta clase en esta clase. No se pueden crear instancias de clases abstractas. Sin embargo, puede crear una variable de tipo clase abstracta y apuntarla a una instancia de una subclase concreta. No puede haber constructores abstractos ni métodos estáticos abstractos. Las subclases de una clase abstracta proporcionan implementaciones para todos los métodos abstractos en su clase principal; de lo contrario, también son clases abstractas. En su lugar, implemente este método en una subclase. Otras clases que conozcan su comportamiento pueden implementar estos métodos en su clase. Las interfaces son variaciones de clases abstractas. En una interfaz, todos los métodos son abstractos. La herencia múltiple se logra implementando dicha interfaz. Todos los métodos de una interfaz son abstractos y no tienen cuerpo de programa. Las interfaces solo pueden definir variables miembro finales estáticas. La implementación de una interfaz es similar a la implementación de una subclase, excepto que la clase de implementación no puede heredar el comportamiento de la definición de la interfaz. Cuando una clase implementa una interfaz particular, define (es decir, le da el cuerpo del programa) todos los métodos de dicha interfaz. Luego puede llamar a los métodos de la interfaz en cualquier objeto de la clase que implemente la interfaz. Debido a la clase abstracta, permite usar el nombre de la interfaz como tipo de variable de referencia. El enlace dinámico habitual entrará en vigor. Las referencias se pueden convertir hacia y desde tipos de interfaz, y el operador instancia de se puede utilizar para determinar si la clase de un objeto implementa la interfaz.
Hay algunos más. . .
Déjanos tu dirección de correo electrónico y te lo enviaré.
Mi dirección de correo electrónico es: sunboy520555@sina.com.
Mientras los domines, no tendrás miedo. . .
Te envié todos los correos electrónicos. ¿Por qué no ha terminado todavía?
. . . . . . . . . .