Si sabes cómo asignar memoria en JAVA, ¿qué significa "apuntar a" en JAVA?
Por ejemplo, en "método" (tenga en cuenta que es un método), está la siguiente declaración:
<. p>A a = new a ();En realidad, esto implica muchos procesos y puede comprenderlos en el orden en que se escriben. (Para facilitar la comprensión, hay muchas metáforas vívidas a continuación, que no son necesariamente rigurosas, pero no se preocupe por los detalles conmigo. La atención se centra en comprender el proceso y los principios)
1. La máquina virtual Java primero ve A (esto es más vívido). Si no lo ha visto, busque la clase y cárguela en el área del método, es decir, cuando la variable estática de A tiene espacios, todavía no los ve. No entiendo esto.
2. Mire A a nuevamente. Esta es obviamente la definición de una variable. Entonces, la máquina virtual tiene un espacio llamado a en el montón. 4 bytes, que es un espacio de puntero. Este es un objeto nuevo. Por lo tanto, el espacio que la máquina virtual abre en el montón es del tamaño de A. Es tan grande como es y tiene tantas variables miembro no estáticas como A (por supuesto, hay algunas cosas adicionales, principalmente los dos punteros utilizado por la máquina virtual). ¿Viste eso? ¿Qué hay en el espacio de objetos? Solo hay variables miembro y son variables no estáticas. ¿Nada? No hay estática, ni localización, ni código de método (el método está en el área de método que mencioné anteriormente)
4. Continúe leyendo, verá A(), ¿para qué se usa? Ejecute el método constructor.
5. Sigue leyendo, ¿qué? =Está bien, tarea, dale la dirección del objeto abierto en el montón al montón
¡Ninguno!
Mira bien, aquí hay muchas cosas. Por cierto, les daré algunas tareas después de la escuela a los niños Dada (tenga en cuenta que las respuestas se basan en su propia imaginación, no se limitan a los libros)
1. ¿La función principal? ¿Es solo una regla gramatical?
2. ¿Por qué los métodos estáticos no pueden acceder a variables no estáticas?
3. ¿Por qué se disfrutan globalmente los miembros estáticos?
4. ¿Qué se debe pasar al pasar parámetros?
Eso es todo.
Esta noche me pican las manos y cuando vi la respuesta de Guangdie, pensé en C. Otro punto es que la forma en que Java define objetos es muy diferente de la de C, lo que conduce directamente a diferentes usos de la definición de objetos. Por ejemplo, las cadenas s1, s2, s1=s2. Esto funciona de manera completamente diferente en Java y C. ¿Entonces es diferente? ¿Por qué es diferente? Tarea después de clase, autoinvestigación.