Creo que todos saben que la nueva palabra clave de Java está instanciando un objeto. Sí, también está asignando espacio de memoria para nuevos objetos.
Por ejemplo, en un caso como New Mydate (22, 7, 1964), su finalización requiere cuatro partes:
uno. Asigne espacio de memoria para el nuevo objeto y almacene MyDate al montón.
dos. Realizar la inicialización de la pantalla
tres. Ejecutar el constructor. Los parámetros del soporte en el nuevo método se pasan al constructor, y se publica el valor del objeto.
Cuatro. Esta variable se asigna como referencia a un nuevo objeto en la memoria de los pechos.
En términos de Layman, su nueva operación en realidad está agregando un nuevo objeto al montón de memoria e inicializando el nuevo objeto a través de un método de constructor y almacena la referencia al objeto en la pila.
Aquí tengo un caso que es fácil de entender:
public class Pet {proteged bean be = this.b (); public bean b () {return new Bean ();}} public void test () {be.setName ("zhang san");} public void test2 () {System.out.println (be.getName ());} public estatic estatic bain main (string [] string [] args) {pueblo pe = nuevo = nuevo = nuevo PE = nuevo = nuevo PE = nuevo = nuevo People (); pe.test (); pe.test2 ();} Una clase padre y una clase de niños. Asigne un valor al nombre a través de la prueba. El valor de salida de Test2 encontrará que la prueba de salida se asigna al nombre. Porque al ejecutar el método principal, el programa primero compilará la clase principal e instanciará el objeto BE, por lo que las referencias en la subclase son el mismo objeto, pero si se modifican al siguiente código:
public void test () {bean be = new bean (); be.setName ("zhang san");} public void test2 () {system.out.println (be.getName ());} public static void main (string [] args) {personas pe = new People (); pe.test (); pe.test2 ();} En la prueba, yo es un objeto nuevo, y la salida es nula, porque las referencias que almacenan en la pila de memoria son diferentes. En el proceso de codificación real, es mejor escribir objetos con más referencias en la clase principal, heredar subclases o escribirlos en el modo perezoso de derecha única de Java:
clase pública Danli1Class {// 1. Para implementar el modelo de una sola perfil, debe modificar su método de construcción () privado danli1class () {} // 2. Primero, instanciar la instancia por usted mismo PRIVADO estático Danli1Class Dan1 = new Danli1Class (); // 3. Para garantizar que otros programas accedan al objeto HUA de instancia de esta instancia, debe definir un método estático Public static danli1class danli1 () {return dan1;}} Esto guardará el uso de la memoria y habilitará los objetos para reutilizarse, entonces, ¿por qué no hacerlo?