¿Preguntas y respuestas comunes en las entrevistas sobre desarrollo de software?
Estandarización, extensibilidad, devolución de llamada
El significado de clase abstracta
Proporciona un tipo * * * público para que sus subclases dupliquen contenido. Encapsularlo en una subclase y definir métodos abstractos. Aunque las subclases tienen implementaciones diferentes, sus definiciones son consistentes.
El papel de las clases internas
Las clases internas pueden usar múltiples instancias, cada instancia tiene su propia información de estado, independiente de otros objetos periféricos.
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 un objeto de clase interna no depende de la creación de un objeto de clase externa.
Una clase interna no tiene una relación confusa "es-es"; es una entidad independiente.
Las clases internas proporcionan una mejor encapsulación, ninguna otra clase puede acceder a ellas excepto la clase externa.
¿Puede la subclase anular los métodos estáticos de la clase principal?
Los métodos estáticos pertenecen a clases, mientras que la herencia y la anulación son relativas a los 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.
Características de la máquina virtual Java
Si un lenguaje de alto nivel de propósito general quiere ejecutarse en diferentes plataformas, al menos debe compilarse 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 para ejecutarlo en diferentes plataformas.
¿En qué circunstancias el mecanismo de recolección de basura eliminará los objetos?
El método más básico del mecanismo de recolección de basura de Java es la recolección generacional. Cuando un objeto existe el tiempo suficiente, las áreas de la memoria se dividen en diferentes generaciones, jóvenes, viejas y permanentes.
Se copiará a la generación anterior y diferentes generaciones pueden usar diferentes algoritmos de recolección de basura. El punto de partida para la división generacional es la regularidad 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 corta. Por ejemplo, las variables locales solo viven 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 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?
De acuerdo con 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 entrenado por Changping Computer para encontrar cualquiera de los dos objetos no necesariamente producirá el mismo resultado entero.