preguntas de la entrevista de Java contó con tres

1, compare el Java y JavaSciprt.
Respuesta: JavaScript y Java son dos desarrollado dos productos diferentes. Java es un lenguaje de programación anterior orientado a objetos Sun Microsystems ha introducido, especialmente adecuado para el desarrollo de aplicaciones de Internet; y JavaScript son los productos de Netscape navegador Netscape con el fin de ampliar el desarrollo de una función puede ser embebido en páginas Web que se ejecuta basado en objetos y el lenguaje interpretativo orientado a eventos. JavaScript es el predecesor LiveScript, y el lenguaje Java, anteriormente conocido como roble.
A continuación, las similitudes y diferencias entre los dos idiomas para hacer la siguiente comparación:

  • basado en objetos y orientada a objetos: Java es un verdadero lenguaje orientado a objetos, incluso el desarrollo de procedimientos sencillos, debe diseñar objetos, JavaScript es una especie de lenguaje de script que puede ser utilizado para hacer la independencia de la red, la interacción del usuario con el complejo el software. Es un objeto (Object-Based) y con base (-Driven Event) lenguaje programación orientada a eventos, que a su vez proporciona un objeto interno muy rico para los diseñadores de usar.
  • Interpretación y compilación: el código fuente de Java antes de la ejecución, deben ser compilados. JavaScript es un lenguaje de programación interpretado, su necesidad de código fuente no compilado, interpretado por la ejecución del navegador. (Casi todos los navegadores utilizan actualmente la tecnología JIT (tiempo compilador) para mejorar la eficiencia operativa de JavaScript)
  • Totalmente de variables y tipos de variables débiles escrito: Java inflexible de tipos de cheques variable que todas las variables antes de compilar debe hacer una declaración; variables JavaScript se escriben débilmente, incluso antes de que el uso de variables puede silenciar Ming, JavaScript intérprete de los controles en tiempo de ejecución tipo de datos inferido.
  • formato de código no es lo mismo.

Añadido: cuatro puntos mencionados anteriormente se hacen circular en Internet llamada respuesta estándar. De hecho, Java y JavaScript, la diferencia más importante es que un lenguaje estático, es un lenguaje dinámico. Actual lenguaje de programación tendencias es un lenguajes funcionales y dinámicos. En Java clase (clase) es un ciudadano de primera clase en la función JavaScript (función) es un ciudadano de primera clase, por lo que JavaScript programación función de apoyo, y puede funcionar mediante un cierre de Lambda (cierre), por supuesto, han comenzado a apoyar Java. 8 funcional programa, proporciona soporte para expresiones lambda y la interfaz funcional. Para este tipo de problemas, durante la entrevista se responde mejor en su propio idioma será más complicado, no la llamada respuesta estándar de nuevo en línea.

2, cuándo usar afirmaciones (assert)?
R: Sí ejecución, ejecución antes de volver al método de la persona que llama.

3, cómo el lenguaje de manejo de excepciones de Java, palabra clave: lanza, tiro, try, catch , por último , respectivamente, cómo utilizar?
A: Java manejo de excepciones a través de enfoque orientado a objetos, para clasificar las diversas anomalías, y proporciona una buena interfaz. En Java, cada anomalía es un objeto que es una instancia de la clase Throwable o subclase. Cuando un método lanza una excepción se produce después de objeto de excepción, el método objeto contiene información de excepción, llamar a este objeto puede capturar la excepción y puede procesarlo. manejo de excepciones de Java se logra a través de cinco palabras clave: intento, captura, tiro, tiros, y finalmente. Es por lo general tratan de ejecutar un programa, si el sistema va a tirar (de banda) un objeto de excepción puede ser capturado (la captura), que por su tipo, o mediante la ejecución siempre bloque de código (el fin) tratada; intento con todas las excepciones para especificar un programa de prevención; cláusula catch inmediatamente después del bloque try, se utiliza para especificar el tipo de excepción que desea capturar; sentencia throw para lanzar una excepción explícita; lanza a declarar un método capaz de sembrar una variedad de anormalidades (por supuesto declarar una excepción que permite el alboroto); por último, una pieza de código para asegurarse de que no importa lo extraño sucedió deben llevarse a cabo; sentencias try se pueden anidar, siempre que encuentre una instrucción try, una estructura anormal será puesto la pila de excepción hasta que todas las sentencias try se han completado. Si intenta el siguiente nivel de algún tipo de declaración no trata de excepciones, la pila de excepción pop operaciones se ejecutarán hasta que se tiene que hacer frente a esta sentencia try anomalía encontrada o última excepción lanzada JVM.

3. ¿Cuál es las excepciones de tiempo de ejecución y los sujetos anormales similitudes y diferencias?
R: Los espectáculos de anormalidad un programa se está ejecutando estado anormal que puedan surgir anomalía espectáculos runtime excepciones por lo general una máquina virtual que se pueden encontrar, es un error de ejecución común, siempre que la programación se ha realizado ningún problema por lo general no se produce. Los sujetos con contexto anormal ejecutando alrededor, incluso si la programación es correcta, ya que el problema todavía puede ser usada y arrojada. compilador de Java debe solicitar una declaración de lanza se pueden producir anomalías de los sujetos, pero no es necesario cuando se ejecuta excepciones no capturadas de tiro deben ser declarados. Anomalías y heredada, es orientado a objetos de programación en lo que se abusa con frecuencia en Java eficaz en el uso de la excepción da las siguientes pautas:

  • No utilice la dirección para el flujo normal de control de excepciones (API bien diseñado no debe ser forzado a su llamador para controlar el flujo de uso normal y anormal)
  • Uso somete situación anormal puede ser restaurada, una excepción a la utilización de los errores de programación en tiempo de ejecución
  • Sujeto a evitar el uso innecesario de la excepción (a través de unos medios de detección de estado para prevenir la aparición de la anomalía)
  • Prioridad en el uso de excepciones estándar
  • Cada método produce una excepción debe tener la documentación
  • atomicidad anormalidad
  • No ignore excepción capturada en la captura

4, una lista de algunos de su excepción de ejecución común?
Respuesta:

  • ArithmeticException (excepción aritmética)
  • Un ClassCastException (clase fundido excepción)
  • IllegalArgumentException (argumento excepción ilegal)
  • IndexOutOfBoundsException (subíndice límites excepción)
  • A NullPointerException (null puntero excepción)
  • SecurityException (Excepción de Seguridad)

5, se explica la diferencia entre el final, por último, finalice el.
Respuesta:

  • definitiva: modificador (palabra clave) Hay tres uso: si una clase se declara final, lo que significa que no puede enviar otra nueva subclase inesperada que no puede ser hereditaria, por lo que es abstracto y antónimos. La variable declarada como final, puede garantizar que no se encuentran en el cambio de uso, se ha declarado como variables finales se debe dar en la declaración inicial, y en las referencias posteriores sólo puede leer no puede ser modificado. Se declaró aproximación final también utilizan solamente, no puede ser anulado en una subclase.
  • Por último: el código se coloca generalmente detrás del try ... catch ... siempre ejecutar la estructura de bloque de código, lo que significa que el programa independientemente de se produce la ejecución normal o anormal, el código no se cierra aquí el tiempo que la JVM puede ejecutar, se puede escribir en la liberación de recursos externos finally.
  • Finalizar: métodos de objetos definidos en la clase, Java permitió método finalize () para usar para quitar el objeto de hacer el trabajo de limpieza necesaria antes de salir de la memoria en el recolector de basura. Este método es llamado por el recolector de basura cuando el objeto es destruido, se puede poner en orden los recursos del sistema reemplazando el método finalize () o realizar otras tareas de limpieza.

6, ExampleA clase de excepciones hereda, ExampleB clase ExampleA hereda.
El siguiente fragmento de código:

try {
    throw new ExampleB("b")
} catch(ExampleA e){
    System.out.println("ExampleA");
} catch(Exception e){
    System.out.println("Exception");
}

Pregunta lo que se ejecuta la salida de este código?
R: Salida: ExampleA. (Según principio de sustitución Richter [supertipo se puede utilizar donde se pueden utilizar unos ciertos subtipos], tipo ExampleA grab de anomalía puede captar ExampleB bloque catch tipo bloque try de excepción lanzada)

preguntas de la entrevista - dicen que el funcionamiento del código siguiente. (El origen de este problema es la de "ideas de programación Java", un libro)

class Annoyance extends Exception {}
class Sneeze extends Annoyance {}

class Human {

    public static void main(String[] args) 
        throws Exception {
        try {
            try {
                throw new Sneeze();
            } 
            catch ( Annoyance a ) {
                System.out.println("Caught Annoyance");
                throw a;
            }
        } 
        catch ( Sneeze s ) {
            System.out.println("Caught Sneeze");
            return ;
        }
        finally {
            System.out.println("Hello World!");
        }
    }
}

Respuesta:

La molestia Atrapados
Atrapados estornudo
Mundo Hola!
Creo que la primera y tercera filas no tenemos ninguna duda, la clave está en la segunda línea, debe estar fuera de ella? No es una subclase de captura que los padres excepción hacer?
Después de añadir puntos de interrupción, se encontró que a pesar de
la captura (molestia a)
Esta frase es una referencia a la utilización de la clase padre, pero en realidad es una subclase del objeto, que es una manifestación clásica del polimorfismo java. En el
retén (estornudo s)
cuando el curso puede capturar su propia tirado por la anomalía.

7, List, Set de Mapa si heredado de la interfaz Collection?
A: Lista, Conjunto Shi, no mapa. Mapa contenedores de mapeo de valores clave, y Set Lista con una clara distinción, el fragmentó y se almacena Conjunto de elementos no permite duplicados (matemáticas establecen también), el recipiente es una lista de estructuras lineal para-valor elementos de acceso caso índice.
Aquí Insertar imagen Descripción
8, juego de ArrayList sucesivamente, Vector, el rendimiento del almacenamiento LinkedList y características.
A: datos ArrayList y Vector 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 para insertar los elementos elemento de matriz que participan en las operaciones de memoria como movimiento, por lo datos de índice de datos de inserción lentos rápido y, los métodos de Vector son modificados por la adición de sincronizada, de modo vectorial es contenedor thread-safe, pero el bajo rendimiento de ArrayList, y por lo tanto tiene un recipiente legado en Java. LinkedList implementa utilizando una lista doblemente enlazada se almacena (en la memoria por la celda de memoria de referencia asociado dispersado añadido juntos para formar una estructura lineal puede ser indexado por el número de serie, que en comparación con un almacenamiento de la cadena de almacenamiento de matrices continua, utilización de la memoria superior), indexada por el número de serie antes de que las necesidades de datos para 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. Vector pertenecen contenedor de herencia (las versiones anteriores de Java contenedor indicarse además, Hashtable, diccionario, BitSet, Montón , propiedades son el recipiente de herencia), ya no se recomienda, pero debido a la ArrayList y se LinkedListed no seguro para subprocesos, Si la escena con un recipiente de experiencia en la operación de múltiples hilos, puede synchronizedList herramientas metodológicas categoría Colecciones lo convertirá en un contenedor seguro para subprocesos antes de su uso (esta es la aplicación para el modo de decoración, objetos existentes pasarán otra el constructor de una clase de objetos para crear una nueva aplicación mejora).

NOTA: buque de clase Properties izquierda y clases Stack tener graves problemas en el diseño, propiedades es una clave especial y valores clave se asignan cadena, el diseño debe estar asociado con uno y dos que Hashtable parámetro de tipo genérico se establece en cadena, pero en el API de Java directamente heredada Propiedades Hashtable, lo que obviamente es la herencia de abuso. Aquí la multiplexación de código de modo debe Has-Una relación en lugar de la relación es-un, en los otros contenedores de mano son todas las herramientas, herramientas de clase heredada en sí es un enfoque equivocado, la mejor manera de utilizar herramientas es ha-Una relación (asociación) o Use-Una relación (dependencia). Del mismo modo, la clase Pila extiende vectorial también es incorrecto. Los ingenieros de Sun también han cometido un error tan estúpido, la gente se maravilla.

9, Recogida y Colecciones de la diferencia?
A: La colección es una interfaz, que es el padre de la interfaz conjunto, List y otros recipientes; Collections es una clase de utilidad que proporciona una serie de métodos estáticos para ayudar a las operaciones de contenedores, estos métodos incluyen la búsqueda de los contenedores, la clasificación, el hilo de seguridad, etc. y así sucesivamente.

10, Lista, mapa, establezca tres interfaces, mientras que los elementos de acceso, ¿cuáles son las diferencias?
A: Lista de un determinado índice accede a los elementos, puede haber elementos duplicados. SET no almacenar elementos duplicados (método con el objeto es igual a () para distinguir si se debe repetir elementos). Un mapa Save asignación de clave y valor de par (par clave-valor), la relación de correspondencia puede ser uno o muchos. Cuando el recipiente se ha fijado Mapa versión implementación basada en dos almacenamiento de hash árbol y clasificación complejidad del tiempo de acceso es O (1) basado en la versión teórica hash almacenado, la versión del árbol de ordenación en función de inserción o borrado de elementos constituiría un árbol tipo de acuerdo con el elemento o elementos (clave) y de reordenación para lograr el efecto clave.

Publicados 444 artículos originales · elogios ganado 15 · Vistas a 10000 +

Supongo que te gusta

Origin blog.csdn.net/zt2650693774/article/details/105022804
Recomendado
Clasificación