preguntas de la entrevista común básica de Java

Java preguntas básicas comunes de la entrevista por primera vez para escribir un blog sobre el registro

1. ¿Cuál es la JVM? ¿Por qué Java es el lenguaje de programación multiplataforma?
Java Virtual Machine es una máquina virtual puede realizar el proceso de Java de código de bytes. Cada archivos fuente de Java se compilan en archivos de código de bytes que pueden ser ejecutadas por la máquina virtual de Java.
Java está diseñado para permitir que las aplicaciones se ejecuten en cualquier plataforma sin necesidad de programadores para reescribir cada plataforma individual o recompilación, JVM diferentes plataformas son diferentes. Pero estos JVM sigue los mismos criterios, a saber: el tiempo que el archivo .class estándar, puede ejecutarse en diferentes JVM, pero corriendo el mismo efecto. Por lo tanto, para lograr el llamado "uso programa de tiempo en todas partes."

2. ¿Cuál es la diferencia entre JRE y JDK?

JDK (Java Development Kit) es el Kit de Desarrollo de Java, contiene el compilador debe escribir programas Java y otras herramientas de desarrollo y ejecutar JRE. herramientas de desarrollo tales como: java para el comando javac para compilar el programa para el inicio de la JVM a la orden de marcha java java programa para el comando javadoc genera documentación para el paquete y el comando jar, etc.
JRE (Java Runtime Environment) es la ejecución de Java medio ambiente, ofrece una aplicación Java para ejecutar el software necesario incluye la máquina virtual Java (JVM) y un sistema de biblioteca de clases ricas. sistema de biblioteca de clases de Java es la clase funcional avance envasados, simplemente llevado directamente a, puede mejorar mucho la eficiencia del desarrollo.

3, "estática" palabra clave ¿Qué significa? Java si el método (anulación) de un privado o estática puede ser cubierto?
Variables miembro estáticas pueden ser modificadas palabras clave, se modifica la variable miembro de estructura de datos no pertenece al objeto, pero las variables pertenecen a la clase, por lo general para referirse a los miembros estáticos a través del nombre de la clase.
Cuando se crea un objeto, variables miembro se almacenan en el montón, y las variables miembro información estática y métodos de clase se almacenan en el área de juntas, en lugar de en el montón, variables miembros estáticos de una clase única "a" (almacenados en el área de método ), independientemente de cómo se crearon muchos objetos de esa clase.
El método de la java privado no puede ser reescrito, todo en Java predeterminado métodos privados son finales, es decir, no puede ser hereditaria, por lo que cuando los hereda de subclases de la clase padre, clase padre privada no pueden ser heredados, incluso si hay una subclase un método del mismo nombre, no es de reescribir la subclase de este método es el mismo nombre que sus propios métodos pertenecen a una subclase.
Java en el método estático no puede ser anulado porque el método de recubrimiento (reescritura) se basa en una dinámica en tiempo de ejecución vinculante y métodos estáticos tiempo de compilación de unión estática. métodos estáticos no están asociados con cualquier instancia de una clase de objeto, no se aplica el concepto.

4, se puede acceder no estático variables estáticas medio ambiente?

No, las variables estáticas son parte de la clase, cuando se carga la clase cuando la máquina virtual de Java en Java, se estáticas Las variables se inicializan área de memoria asignada, en el área de método, en lugar de las variables estáticas y métodos sólo cuando los nuevos objetos se asigna área de memoria, su asignación de tiempo no es lo mismo, esta vez a las variables de acceso no estáticos, el compilador se quejará, porque aún no se han creado estas variables, no asociada con cualquier instancia.

5, que cubre los métodos de Java (anulación) y la sobrecarga de métodos (Sobrecarga) ¿Qué significa?

La sobrecarga de métodos Java se produce el mismo que en los dos o más métodos de una clase nombres de método dentro de la caja, pero diferentes parámetros. Por otra parte, un método para cubrir dicha subclase redefine la clase padre. Métodos cubiertas deben tener el mismo nombre del método, la lista de parámetros y el tipo de retorno. Cubriendo no podría restringir el método de acceso que cubre.
Sobrecarga: tiempo de compilación de unión, de acuerdo con el tipo de los parámetros variables para determinar el método de invocación.
Reescritura: unión tiempo de ejecución, de acuerdo con el tipo real de puntos de tipo variable de referencia objeto para llamar a métodos.

6, Java múltiple soporte de herencia que?
La clase Java no soporta herencia múltiple. Cada clase sólo puede heredar una clase, pero puede implementar múltiples interfaces. Sin embargo, la interfaz puede heredar múltiples interfaces

7, List, Set Mapa heredan Conllection él? ¿Cuáles son sus diferencias?
Lista, el Conjunto Shi, mapa no. Collection es el conjunto más básico de interfaces, una colección representa un grupo de objetos, es decir, elemento de la colección. Colección permite el mismo número de elementos y no otros. Algún tipo, mientras que otros no pueden. JDK de Java no proporciona directamente heredada de las clases de colección, Java JDK proporciona clases se heredan de la colección de los "sub-interfaces", tales como: Lista y Set.
Sin sucesor interfaz colección de mapa, mapa proporciona la clave de asignación de valores. Mapa no puede contener la misma clave, cada tecla puede asignar un valor. interfaz Map proporciona tres tipos de piscinas ver, el contenido del mapa puede ser utilizado como un grupo clave, un valor de ajuste de grupo, o un conjunto de asignaciones de valores clave.
Lista de funciones: los puntos ordenados se puede repetir
set incluye: trastorno elemento se repite
Mapa características: los elementos de valor par, pares de claves y valores clave, hay una secuencia en

8, el ciclo de vida del servlet?
Un total de cuatro etapas:
1. instancia: La primera vez que visita o arrancar Tomcat, Tomcat llama a esto el constructor por defecto para crear una instancia del servlet
2. Inicialización: Tomcat después de una instancia de este servlet, inmediatamente llamar al método init inicializa el servlet
3. listo: contenedor llama método de servicio del servlet para manejar la petición tras recibir la petición
4. destrucción: contenedor de servlets de borrar objetos en función de su algoritmo, llamará al método destruyen al borrar
el cual instantiate, initialize y destruir sólo se ejecutará tiempo, tiempos de ejecución de servicios método.

9. ¿Qué es una cookie? Diferencia entre sesión y la cookie?
Las cookies permiten que un servidor web para almacenar pequeñas cantidades de datos al navegador, o una tecnología para leer los datos desde el disco duro del cliente. Se puede grabar su nombre de usuario, contraseña, las páginas visitadas, el tiempo pasado y otra información. Cuando se llega a la página web de nuevo, la página web mediante la lectura de las galletas, conocer su información, podemos hacer la acción apropiada, tal como muestra la página de bienvenida de su lema, o al menos no se introduce el ID, contraseña, acceder directamente y así sucesivamente.
1, los datos de cookie se almacena en el navegador del cliente, datos de la sesión en el servidor.
2, cookie no es muy seguro, la gente puede analizar almacenado localmente la galleta engañar y
tener en cuenta la seguridad debe utilizar la sesión.
3, la sesión se almacenan en el servidor dentro de un cierto período de tiempo. Al acceder al incremento sería más tardar hasta el rendimiento de su servidor
toma en cuenta el rendimiento del servidor atenuante, se debe utilizar la galleta.
4, una sola galleta datos almacenados no pueden exceder 4K, muchos navegadores están limitados a un máximo de 20 sitios de cookies guardadas.

10, java y de igualesLa diferencia?
Comparación del tiempo cuando los datos son tipos equivalentes, más básicas, comparando el valor de referencia de comparación cuando la dirección del tipo de objeto es el mismo, si es el mismo objeto.
Método iguales se utiliza para comparar el contenido de dos objetos separados son los mismos, como es la misma proporción para comparar la aparición de dos personas, que compara dos objetos son independientes. Por ejemplo, el código siguiente:
String = new String ( "foo");
Cadena B = new String ( "foo");
dos declaraciones crean dos nuevos objetos, a continuación, a / b dos variables se dirigen en el que un objeto, que es de dos objetos diferentes, que son diferentes de la primera dirección, es decir, a y B los valores no se almacenan en la misma, por lo tanto, la expresión una
b devuelve falso, y el contenido de estos dos objetos son los mismos, por lo tanto, los a.equals de expresión (b) devuelve verdadero.
Después de la anulación es igual y
El mismo uso.

11, la diferencia entre el final, por último, finalice el.
declaración final de propiedades, métodos y clases, atributos no puede ser cambiado, respectivamente, el método no puede ser sobrescrito, la clase no puede ser heredada.
Para acceder a las variables de clase internas locales, las variables locales deben definirse como un tipo final, por ejemplo, un código de ......
la finalmente controlador de excepciones es parte de una estructura declaración representa siempre realizado.
finalize es un método de la clase Object, en el momento de ejecución del colector de basura llama a este enfoque es objeto de colección, puede reemplazar este método para proporcionar recursos adicionales cuando se recicla la recolección de basura, tales como archivos de cierre. JVM no siempre garantiza que se invoca este método.

12, la diferencia entre el tiro y la lanza?
Throw está dentro de un bloque de código que utilizan la excepción y el tiro en el método de captura, es necesario capturar propias anomalías asociadas del usuario, a continuación, en su embalaje relacionada, en la final después de lanzar el paquete de información de excepción
TS contra el método, está a punto de tirar métodos información de excepción para captar por lo general no muestran anormalidades, anormal automáticamente por el sistema capturará toda la información arrojada al método superior;
puede entenderse como un tiro está activo (en el método de contenido donde estamos activos y lanzar la captura), y lanza pasiva (en el método para procesar una excepción no se detecta, directa lanza de)
ejemplo:
pública str2int vacío (String str) throws Exception {// aquí una excepción recibirá tirar
el try {
System.out.println (el Integer.parseInt (STR));

La captura} (un NumberFormatException E) {
// hacer algo de procesamiento del TODO aquí, el proceso se completa después del mensaje anormal, la información de anomalía puede ser obtenida de manera que el exterior
tiro nueva excepción ( "Formato de Excepción");
}

13, la serialización explicación y deserialización?
Para convertir el objeto se denomina secuencia de proceso de serialización objeto de bytes.
El proceso para la secuencia diana de recuperación de bytes denominadas objeto deserialización.
La serialización es el proceso de convertir el estado del objeto se puede mantener durante el transporte o el formato. secuencia relativa se deserializa, fluirá en un objeto. , Se pueden almacenar y transferir datos a combinar los dos procesos.

? 14, varios interfaces y clases abstractas
Diferencia continuación comparar los dos:
clase abstracta 1. Una puede tener un constructor no puede tener interfaz de constructor.
2. clase abstracta puede tener un variables miembro ordinarias, la interfaz no es una variables miembro ordinarios
3. clase abstracta puede contener métodos ordinarios no abstractos, todos los métodos de interfaz son obligada resumen no tiene método ordinario no abstracta.
4. Métodos abstractos acceso de tipo clase abstracta pueden ser públicos, protegidos, y (tipo por defecto, aunque
no se le da el eclipse, ni debería), pero el método abstracto único tipo de interfaz pública, y el valor predeterminado es el tipo abstracto pública.
La clase abstracta puede contener métodos estáticos, métodos estáticos no puede contener una interfaz de
variables de 6. Las clases abstractas y las interfaces pueden contener variables miembro estáticas, estática variable miembro de tipo de acceso clase abstracta puede ser cualquier, pero sólo se define en la interfaz tipo public static final puede ser, y es el tipo public static final predeterminado.
7. Una clase puede implementar múltiples interfaces, pero sólo puede heredar una clase abstracta.

15, un ".java" archivos de origen puede incluir una pluralidad de si la clase (no una clase interna)? ¿Cuáles son los límites?
No puede haber varias clases, pero sólo una clase pública, y el nombre de la clase pública debe ser coherente con el nombre de archivo.

16, Java no tiene Goto?
Las palabras reservadas en Java, no hay uso en java.

17, s1 corto = 1; s1 = s1 + 1; no hay nada de malo en corto s1 = 1 ;? S1 + = 1; hay mal algo?
Por sus siglas en s1 = 1; s1 = s1 + 1; debido s1 + 1 operación de la voluntad tipo de actualización automática de la expresión, por lo que el resultado es un entero, entonces asignado a la s1 tipo short, el compilador informa necesidad de tipos elenco de errores.
Por sus siglas en s1 = 1; s1 + = 1; a = + Desde hace predeterminados operadores lenguaje Java, será el compilador Java tratamiento especial, es posible traducción correcta.

18, cómo saltar fuera de la corriente múltiples bucles anidados en JAVA?
En Java, a multi-salida de bucle, una etiqueta puede ser definido antes de que el bucle exterior, con la etiqueta declaración descanso y luego utilizar el código en la capa de cuerpo de bucle, al cabo de bucle exterior.

19, cuando se modifica una variable con la palabra clave final, una referencia no se puede cambiar, un objeto o una referencia no se puede cambiar?
Al modificar una variable con la palabra clave final, referirse a variables de referencia no puede ser cambiado, los puntos variables referencia de objeto de contenido de la lata definitivo todavía cambiar otro método modificado no puede ser reescrita, clase modificado no puede ser heredado, variable miembro modificado no se puede cambiar.

20, la gestión de memoria?
aplicación de la memoria JVM lógicamente dividido en tres áreas: la pila, pila, el área de método. Estas tres regiones se utilizan para almacenar datos diferente.
Montón: almacenamiento para objetos creados usando la nueva palabra clave.
Pila: memoria para todas las variables locales declaradas en el proceso de ejecución.
Método Area: almacenar diversas categorías de información (incluyendo los métodos) se almacenan en el área de método.

21, la especificación de Java Bean?
Para seguir Java Specification frijol cuando se crea una categoría:
1) implementar la interfaz serializable.
2) Propiedad privada (variables miembro) y métodos públicos.
3) No hay argumento del constructor.
4) métodos GET y SET.
En la que: a lo largo del atributo Atrás y métodos set son las propiedades del bean, tales como: getNombre / setName el nombre.

22, los miembros y las variables locales, así como las propiedades del bean Java Specification Bean?
Las variables locales:

  1. En el método definido;
  2. No hay ningún defecto, el valor inicial se debe establecer en sí;
  3. Cuando se llama al método, hay una pila, las variables locales al final de la llamada al método se borran de la pila;
    variable miembro:
  4. Definidos en la clase, fuera de los métodos;
  5. Defecto fijado valor inicial por el sistema, no puede inicializarse de forma explícita;
  6. Cuando se crea una instancia de la clase, la presencia de la pila, el objeto se recupera, el fracaso variable miembro;
    propiedades Bean:
    métodos GET y conjunto, seguido por el atributo get / set es posterior propiedades Bean, tales como: getName / setName el Nombre.

23, ponerse en forma?
Las referencias a los objetos de la clase padre subclase.

24, características orientadas a objetos.
Encapsulación, herencia, polimorfismo, abstracto.

25, las clases internas pueden hacer referencia a la clase que contiene los miembros hacen? ¿Hay alguna restricción?
Por completo. Si se trata de las clases internas no estáticos, que no hay límite!
Si se pone una clase anidada estática dentro de la clase como un caso especial, y que en este caso no se puede acceder fuera de la clase de miembros ordinarios de la variable, y sólo se puede acceder fuera del miembro estático clase.

26, cadena es el tipo de datos más básico?
No pertenece a los tipos de datos básicos incluyen byte, int, char, long, float, double, boolean y corto.
clase java.lang.String es final, y por lo tanto no pueden heredar esta clase, la clase no puede ser modificado. Con el fin de mejorar la eficiencia para ahorrar espacio, debemos utilizar la clase StringBuffer.

27, ¿cuál es la clase interna? Estática anidada clase y clase interna es diferente.
clase interna que no se puede definir miembros estáticos en clase, las clases internas definidas dentro de una clase, clase interna puede tener acceso a las variables miembro fuera de la clase directamente, clases internas pueden definirse fuera del método fuera de la clase también puede ser definido en una clase externa el cuerpo del método.

28, caja de embalaje entrada automática?
cuadro de entrada automática es una nueva característica JDK1.5 más tarde:
tipos básicos a clase de contenedor llamado de envasado automático, tales como int entero convertido en
envases convierten automáticamente desembalaje llamados tipos básicos, tales como entero convertido int.

29, la diferencia entre el entero y el int?
int es uno de los ocho tipos de datos en bruto proporcionados por el java. Proporcionar clase Java para cada paquete de tipo primitivo, Entero int es proporcionar un paquete de clases de Java. int El valor predeterminado es 0, y el valor predeterminado de número entero nula, es decir, número entero se puede distinguir la diferencia entre el valor 0 y no asignado, int no puede expresar el caso de sin asignar.

30, errores y excepciones ¿Cuál es la diferencia?
Error representa un problema grave en el caso de la recuperación no es imposible, pero muy difícil. Por ejemplo, desbordamiento de la memoria. Programa no se puede esperar para manejar una situación de este tipo. excepción de que un diseño o implementación cuestiones. En otras palabras, esto significa que si se ejecuta correctamente, la situación nunca ocurrió.

? 31 es, Lista y mapa distinguen
un único conjunto de datos almacenado es la clave de almacenamiento y el otro es un conjunto de valores como doble fila de datos, los datos almacenados en la lista es una secuencia, y permite a repetirse; Mapa datos no se almacenan en el secuencia, lo que no se repite clave, su valor puede ser duplicado.

32, List, Set de Mapa si heredados de la interfaz Collection?
Lista, el Conjunto Shi, mapa no.

33, decir ArrayList, Vector, y características de rendimiento de almacenamiento LinkedList
ArrayList y datos vectoriales se almacena usando una matriz, el número de elemento de la matriz es mayor que los datos reales se almacenan a fin de aumentar y el inserto de elementos, que permiten el elemento directamente indexado por el número de serie, pero inserto elementos elemento de matriz implicadas mover otras operaciones de la memoria, los datos de índice rápidos y Insertar datos lentos, Vector desde un método sincronizado (thread-safe), típicamente en el rendimiento que diferencia ArrayList y LinkedList bidireccional vinculado aplicación lista almacenada, indexadas por los datos de número de serie ante la necesidad de atravesar o después, pero sólo antes y después del registro de esta puede insertar el elemento de datos, la velocidad de inserción.
LinkedList es seguro hilo, LinkedList proporciona un número de métodos que pueden ser utilizados como pila LinkedList y cola de usar.

34, Recogida y Colecciones de la diferencia.
Colección es un conjunto de clases interfaces de los padres, la herencia y su principal interfaz conjunto y lista.
Los Collections es ayuda para un conjunto de clases de clases, que ofrece una serie de métodos estáticos para lograr una variedad de colección de búsqueda, clasificación, y así las operaciones seguras para subprocesos .

35, conjunto de los elementos que no se repite, entonces el método utilizado para distinguir si o no repetirlo? Is(Iguales)? ¿Cuál es la diferencia entre ellos?
El conjunto, los elementos no se repiten, repiten o no el elemento es el uso del método equals () para juzgar.
equals () y
valor Método en el punto de decisión de los mismos iguales de objetos () está cubierto en la clase, y el tipo del contenido cuando dos objetos separados que coincida devuelve un valor verdadero.

36, GC recolección de basura
recolector de basura (recolección de basura, GC) que lleva un hilo es JVM (programa que se ejecuta de forma automática), para la recuperación de ninguna referencia de objeto está dirigida.
hilo GC comenzará el seguimiento de las variables de referencia de la pila, con el fin de determinar que la memoria está siendo utilizado, si el GC no se puede remontar a un trozo de memoria de pila, el GC considerado que la memoria ya no está en uso, que es reciclable. Sin embargo, java los programadores no tienen que preocuparse por la gestión de memoria, ya que el recolector de basura de forma automática será administrado.
recuperación GC es transparente para el programador, no necesariamente una referencia a la presencia o ausencia de un objeto encontrado recuperó inmediatamente. En circunstancias normales, cuando necesitamos hilos GC recuperación inmediata de objetos inútiles, se puede llamar al método System.gc (). Este método se recomienda para el envío inmediato JVM GC recuperación de recursos hilo.

pérdida de memoria programa 37.Java
pérdidas de memoria medios ya no está siendo usado de la memoria no se recupera en el tiempo, graves pérdidas de memoria debido a la huella de memoria excesiva y llevar al colapso del programa. En el programa debe tratar de evitar el derroche innecesario de memoria.
hilo GC dependiendo de si el objeto se puede determinar si el objeto está recuperado para tener un punto de referencia, y por lo tanto, cuando se determina que el objeto ya no está en uso, debe hacerse referencia establecido oportuna a null, así, es decir, el objeto ya no se hace referencia, perteneciente gama reciclable.

38, comienzan se ejecuta un hilo () o Inicio () ?.
iniciar un hilo que llama al método start (), el hilo está listo, entonces usted puede ser programado para el estado de ejecución, un hilo debe estar asociado con un poco de la ejecución de código específica, corrida () método ejecuta el código asociado con el hilo.

39, el sueño () y wait () ¿Cuál es la diferencia?
El sueño es un método de la clase Thread (Tema), lo que lleva a este hilo para suspender el tiempo especificado para entrar en la iniciativa estado bloqueado a la CPU, la CPU a otros hilos para ejecutar en el tiempo sleep especificado después, la CPU volverá a seguir por este hilo, llamar al sueño no va a liberar el bloqueo de objeto.
espera es un método de la clase Object, objeto llama a este método conduce a esperar este hilo para dar el bloqueo de objeto, a la espera de entrar en la piscina a la espera de una cerradura para este objeto, y sólo emite después de notificar método (o notifyAll) para este hilo para bloquear este objeto antes de entrar en el grupo de destino para estar listo cerradura objeto en funcionamiento.

40, Java pase interior de referencia y por el valor de lo que es la diferencia?
La respuesta: por referencia se refiere a la transferencia de la dirección, en lugar del valor en sí, los valores tradicionales es una copia del valor de transferencia.

41, el patrón de diseño Singleton?
Modo de realización individual es un patrones de diseño de software común. En su estructura núcleo contiene sólo la clase especial llamada Singleton. Ejemplo asegura sistemas de modo único sólo una instancia de una clase.
Hablando de Singleton, el primer pensamiento es que hay una clase propia, o referencias nulas, y modificado el modificador privada, otras clases no se puede acceder directamente. Además, la clase de patrón Singleton también es necesario tener un constructor privado, que no es difícil de entender, si el constructor es público, entonces fuera de la clase puede llamar al constructor de la clase directamente, de esta manera no tienen una sola un ejemplo característico.
cómo obtener una instancia única de la clase que? Esto requiere un adquirente pública, el tipo de valor devuelve el método es singleton clase, el resultado devuelto es naturalmente sólo ejemplos de esta clase.
Caso: Por favor asegúrese de escribir el siguiente código de dominio (preguntas pluma)
public class Singleton {

// singleton inicializa en NULL la
estática privado Singleton sola = null;

// constructor privado es
Singleton privada () {

}

// obtentor pública
pública getSingleton el Singleton la estática () {
// si se crea la instancia del objeto corriente nula
SI (SOLO == null) {
SOLO los nuevos Singleton nuevos = ();
}
declaración individual;
}
}

42, Servlet Http solicitudes de manera que tiene varios? ¿Cuál es la diferencia?
peticiones GET y colocar dos maneras de que el protocolo http:
dos Request esencialmente diferente, se pasan a través del parámetro de ruta, el parámetro se añade a la URL, el número y el tamaño pueden ser estrictamente cadena, diferencia privacidad limitada.
parámetros de correos se transmiten a través de un parámetro físico, no a través de url, buena privacidad, parámetros de transmisión no está limitado.
Si la solicitud no se establece en el caso del modo por defecto es el método GET solicitud, llama al método doGet () para realizar la solicitud.
Si la solicitud es determinada forma para publicar, se llevará a cabo el método llamado doPost solicitado.

Transferencia Autor: likaihai918: https://blog.csdn.net/lixiaohai_918/article/details/79950369

Liberadas dos artículos originales · ganado elogios 0 · Vistas 268

Supongo que te gusta

Origin blog.csdn.net/weixin_43682921/article/details/94634276
Recomendado
Clasificación