Capacitación en Java de Beida Jade Bird: ¿Preguntas y respuestas comunes en las entrevistas sobre desarrollo de software?
En una clase externa, varias clases internas pueden implementar la misma interfaz de diferentes maneras o heredar la misma clase.
El momento en que se crea el objeto de clase interna no depende de la creación del objeto de clase externa.
Una clase interna no tiene una relación is-is confusa; es una entidad independiente.
Las clases internas proporcionan una mejor encapsulación. A excepción de la clase periférica, ninguna otra clase puede acceder a si la clase secundaria puede anular el método estático de la clase principal. Los métodos estáticos pertenecen a clases, mientras que la herencia y la anulación son relativas a objetos.
Si la clase principal de la subclase tiene un método estático, solo se puede decir que oculta el método estático de la clase principal. Si se va a ejecutar un lenguaje de alto nivel de propósito general en diferentes plataformas, es necesario compilarlo en diferentes códigos de destino. Después de la introducción de la máquina virtual Java, no es necesario volver a compilar el código Java cuando se ejecuta en diferentes plataformas. ¿En qué circunstancias el mecanismo de recolección de basura eliminará el objeto? La práctica más básica del mecanismo de recolección de basura de Java es la recolección generacional. Las áreas de la memoria se dividen en diferentes generaciones, jóvenes, viejas y permanentes. Cuando un objeto sobrevive el tiempo suficiente, se copiará a la generación anterior. Se pueden utilizar diferentes algoritmos de recolección de basura para diferentes generaciones.
El punto de partida de la división generacional es la ley estadística obtenida tras estudiar el tiempo de supervivencia del objeto en la aplicación.
En términos generales, la mayoría de los objetos de una aplicación tienen una vida útil corta.
Por ejemplo, las variables locales viven sólo durante la ejecución del método.
En base a esto, los algoritmos de recolección de basura para la generación más joven pueden ser muy específicos.
La diferencia entre = = e igual == es el operador, igual es el método y este método es un método en el objeto. Podemos anular el método igual para implementar nuestra propia lógica de comparación. ¿Por qué si el método igual de un objeto es verdadero, entonces el valor int devuelto por su método de código hash debería ser el mismo? Según el método equals(), si dos objetos son iguales, llamar al método hashCode de cualquiera de los objetos debe producir el mismo resultado entero.
Si dos objetos no son iguales según el método equals(), llamar al método hashCode de cualquiera de los dos objetos no necesariamente producirá el mismo resultado entero.