Pasado mañana iré a Samsung SDS para realizar el examen escrito de JAVA. ¿Hay algún experto que haya estado allí? ¿Hay algún examen escrito y preguntas de la entrevista después de eso?
Cuáles son las características de la orientación a objetos
1. Abstracción: La abstracción consiste en ignorar aquellos aspectos de un tema que son irrelevantes para el objetivo actual 2. con el fin de pagar más por completo. atención al objetivo actual. Objetivo 4. Aspectos relevantes. La abstracción no 5. pretende comprender todo el problema, sino 6. sólo selecciona una parte del mismo y 7. no utiliza algunos detalles por el momento. La abstracción incluye dos aspectos, 9. Uno es la abstracción de procesos, 10. El otro es la abstracción de datos.
11. Herencia: La herencia es un modelo jerárquico que conecta clases, 12. y permite y fomenta la reutilización de clases, 13. Proporciona una forma de expresar claramente la coherencia. Se puede derivar una nueva clase de un objeto a partir de una clase existente, 14. 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. Una clase derivada puede heredar métodos y variables de instancia de su clase base, 17. y la clase puede modificar o agregar nuevos métodos para hacerla más adecuada para necesidades especiales.
18. Encapsulación: La encapsulación consiste en rodear el proceso y los datos. 19. El acceso a los datos sólo puede ser a través de una interfaz definida. La informática orientada a objetos comienza con el concepto básico de que el mundo real se puede representar como una serie de objetos encapsulados y completamente autónomos que acceden a otros objetos a través de una interfaz protegida.
22. Polimorfismo: Polimorfismo significa 23. permitir que objetos de 24. diferentes clases respondan al mismo 25. mensaje. El polimorfismo incluye polimorfismo parametrizado y polimorfismo de contención. El lenguaje polimórfico tiene las ventajas de flexibilidad, abstracción, comportamiento compartido y código compartido. 26. Resuelve el problema del mismo 27. nombre de funciones de aplicación.
2. ¿Es String el tipo de datos más básico?
Los tipos de datos básicos incluyen byte, int, char, long, float, double, boolean y short.
La clase java.lang.String es de tipo final, por lo que esta clase no se puede heredar ni modificar. Para mejorar la eficiencia y ahorrar espacio, debemos utilizar la clase StringBuffer
3. ¿Cuál es la diferencia entre int e Integer?
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 clases contenedoras para cada tipo primitivo.
Clase de encapsulación de tipo primitivo booleanBoolean charCharacter byteByte shortShort intInteger longLong floatFloat doubleDouble
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: cuestiones de tamaño y velocidad, en qué tipo de estructura de datos se almacena este tipo, qué se especifica cuando los tipos de referencia y los tipos primitivos se utilizan como datos de instancia de una clase Valor predeterminado. El valor predeterminado para las variables de instancia de referencia de objetos es nulo, mientras que el valor predeterminado para las variables 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. La clase String proporciona cadenas numéricamente inmutables. Se modifica la cadena proporcionada por esta clase StringBuffer. Puede utilizar StringBuffer cuando sepa que los datos de los caracteres van a cambiar. Normalmente, utiliza StringBuffers para construir dinámicamente datos de caracteres.
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 encontrarse en el funcionamiento normal de una máquina virtual y son un error operativo común. El compilador de Java requiere que se declaren métodos para generar excepciones que no sean de tiempo de ejecución que puedan ocurrir, pero no es necesario que se declaren para generar excepciones de tiempo de ejecución no detectadas.
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 y, cuando llega la solicitud, ejecuta su método de servicio. El método de servicio envía automáticamente el método doXXX (doGet, doPost) correspondiente. la solicitud, etc., cuando el servidor decide Cuando se destruye la instancia, se llama a su método de destrucción.
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 subprocesos múltiples. Una instancia puede atender múltiples solicitudes y su instancia generalmente no se destruye, mientras que CGI no. Destruya cada instancia. Cada solicitud genera un nuevo proceso y el servicio se destruye una vez completado, por lo que la eficiencia es menor que la del servlet.
7. Cuéntanos sobre 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. más grandes que los datos almacenados reales para aumentar e insertar elementos, ambos permiten que los elementos se indexen directamente por número de serie, pero la inserción de elementos implica operaciones de memoria, como mover elementos de la matriz, por lo que la indexación de datos es rápida pero la inserción de datos es lenta. Por lo general, funciona mejor que ArrayList porque usa el método sincronizado (seguridad de subprocesos) Pobre, mientras que LinkedList usa una lista doblemente vinculada para el almacenamiento. La indexación de datos por número de serie requiere un recorrido hacia adelante o hacia atrás. elementos antes y después de este elemento, por lo que la velocidad de inserción es más rápida.
8. ¿En qué tecnologías se basa EJB? Y diga la diferencia entre SessionBean y EntityBean, y la diferencia entre StatefulBean y StatelessBean.
EJB incluye Session Bean, Entity Bean, Message Driven Bean y se implementa en base a JNDI, RMI, JAT y otras tecnologías.
SessionBean se utiliza en aplicaciones J2EE para completar algunas operaciones comerciales del lado del servidor, como acceder a bases de datos y llamar a otros componentes EJB. EntityBean se utiliza para representar datos utilizados en sistemas de aplicaciones.
Para los clientes, 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 un almacenamiento persistente o una entidad implementada por una aplicación empresarial existente.
Session Bean se puede subdividir en Stateful Session Bean y Stateless Session Bean. Ambos tipos de Session Bean pueden ejecutar la lógica del sistema en métodos. La diferencia es que Stateful Session Bean puede registrar las llamadas. , por lo que, en términos generales, un usuario tendrá una entidad Stateful Session Bean correspondiente. Aunque el Stateless Session Bean también es un componente lógico, no es responsable de registrar el estado del usuario. Es decir, cuando el usuario llama al Stateless Session Bean, el contenedor EJB no buscará una entidad específica del Stateless Session Bean para ejecutarlo. método.
En otras palabras, es muy probable que cuando varios usuarios ejecuten los métodos de un Stateless Session Bean, se ejecute la Instancia del mismo bean. Desde una perspectiva de memoria, en comparación con Stateless Session Bean, Stateful Session Bean consume más memoria del servidor J2EE. Sin embargo, la ventaja de Stateful Session Bean es que puede mantener el estado del usuario.
9. La diferencia entre Colección y Colecciones. Collection es la interfaz superior de la clase de colección, y las interfaces heredadas de ella incluyen principalmente Set y List.
Collections es una clase auxiliar para la clase de colección. Proporciona una serie de métodos estáticos para realizar la búsqueda. y recopilación de varias colecciones Clasificación, seguridad de subprocesos y otras operaciones.
10. La diferencia entre & y &&. & es un operador bit a bit, que representa la operación AND bit a bit, && es un operador lógico, que representa AND lógico (y).
11. La diferencia entre HashMap y Hashtable. HashMap es una implementación ligera de Hashtable (implementación no segura para subprocesos). La principal diferencia es que HashMap permite valores de clave vacíos (nulos) debido a la seguridad sin subprocesos. Tabla hash.
HashMap permite utilizar null como clave o valor de una entrada, pero Hashtable no.
HashMap elimina el método contiene de Hashtable y lo cambia a contiene valor y contiene clave. Porque el método contiene es fácilmente engañoso. Hashtable hereda de la clase Diccionario y HashMap es una implementación de la interfaz Map introducida en Java 1.2.
La mayor diferencia es que el método de Hashtable está sincronizado, pero HashMap no. Cuando varios subprocesos acceden a Hashtable, no necesita sincronizar sus métodos usted mismo, mientras que HashMap debe proporcionarle sincronización externa.
Los algoritmos hash/rehash utilizados por Hashtable y HashMap son más o menos los mismos, por lo que no habrá una gran diferencia en el rendimiento.
12. La diferencia entre final, finalmente y finalizar. final se usa para declarar propiedades, métodos y clases, lo que significa respectivamente 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 indica que siempre se ejecuta. finalize es un método de la clase Object. Este método del objeto reciclado se llamará cuando se ejecute el recolector de basura. Este método se puede anular para proporcionar otro reciclaje de recursos durante la recolección de basura, como cerrar archivos, etc.
13. ¿Cuál es la diferencia entre dormir() y esperar()? Dormir es un método de clase de subproceso (Thread), que hace que este subproceso suspenda la ejecución durante un tiempo específico y brinde oportunidades de ejecución a otros. subprocesos, pero el estado de monitoreo permanece, se recuperará automáticamente después de la fecha de vencimiento. Llamar al modo de suspensión no libera el bloqueo del objeto. esperar es un método de la clase Objeto. Llamar al método de espera en este objeto hace que este hilo abandone el bloqueo del objeto y entre al grupo de bloqueos de espera esperando este objeto Solo después de que se emita el método de notificación (o notificar a todos) para este objeto. , este hilo ingresa al grupo de bloqueo de objetos y se prepara para obtenerlo. El bloqueo de objetos ingresa al estado de ejecución.
14. La diferencia entre sobrecarga y anulación. ¿Puede un método sobrecargado cambiar el tipo de valor de retorno?
La anulación y la sobrecarga de métodos son manifestaciones diferentes del polimorfismo de Java.
La anulación es una manifestación de polimorfismo entre clases principales y subclases, y la sobrecarga es una manifestación de polimorfismo en una clase. Si un método definido en una subclase tiene el mismo nombre y parámetros que su clase principal, decimos que el método está anulando. Cuando un objeto de una subclase usa este método, llamará a la definición en la subclase. Por ello, la definición en la clase principal parece estar "protegida". Si se definen varios métodos con el mismo nombre en una clase y tienen diferente número de parámetros o diferentes tipos de parámetros, se denomina sobrecarga de métodos. El método sobrecargado puede cambiar el tipo de valor de retorno.
15. ¿Cuál es la diferencia entre error y excepción?
El error representa 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.
La excepción representa un problema de diseño o implementación. Es decir, representa una situación que nunca ocurriría si el programa se estuviera ejecutando normalmente.
16. ¿Cuáles son las similitudes y diferencias entre sincronización y asincronía, y bajo qué circunstancias deben usarse respectivamente? Dar ejemplos.
Si los datos se compartirán entre hilos. Por ejemplo, los datos que se escriben pueden ser leídos por otro subproceso en el futuro, o los datos que se leen pueden haber sido escritos por otro subproceso. Entonces, estos datos son datos compartidos y se debe acceder a ellos de forma sincrónica. Cuando una aplicación llama a un método en un objeto que tarda mucho en ejecutarse y no quiere que el programa espere el retorno del método, debe utilizar programación asincrónica. En muchos casos, el enfoque asincrónico suele ser más eficiente.
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 para crear una clase que incorpora ciertos comportamientos básicos. y declara un método para la clase, pero no se puede implementar en la clase. No se pueden crear instancias de clases abstractas. Sin embargo, puede crear una variable cuyo tipo sea una clase abstracta y hacer que apunte a una instancia de una subclase concreta. No puede haber constructores abstractos ni métodos estáticos abstractos. Las subclases de la clase abstracta proporcionan implementaciones para todos los métodos abstractos en su clase principal; de lo contrario, también serían clases abstractas. En su lugar, implemente el método en una subclase. Otras clases que conocen su comportamiento pueden implementar estos métodos en su clase. Una interfaz es una variante de una clase abstracta. En una interfaz, todos los métodos son abstractos. Se puede obtener herencia múltiple implementando dicha interfaz. Todos los métodos de la interfaz son abstractos y ninguno de ellos tiene un cuerpo de programa. Las interfaces solo pueden definir variables miembro finales estáticas. La implementación de una interfaz es similar a la creación de subclases, excepto que la clase implementadora 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 esta interfaz. Luego puede llamar a los métodos de la interfaz en cualquier objeto de la clase que implemente la interfaz. Dado que existen clases abstractas, permite utilizar el nombre de la interfaz como tipo de variable de referencia. La vinculación dinámica normal tendrá efecto. 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. . .
Deja tu correo electrónico y te lo enviaré.
Mi correo electrónico es: sunboy520555@sina.com
Mientras los domines, ganarás. No tengas miedo. . .
Te he enviado el email, ¿por qué no ha finalizado todavía?
. . . . . . . . . .