我是新人如有错误请多指教!
首先来说下内存里面的情况,java在分配内存,分为寄存器:和cpu打交道的,本机方法栈:主要是使用windows或linux的系统文件的,方法区:这个地方是存储.class文件的地方还包括静态方法和常量池的,剩下的就是我们最重要的两部分,,堆和栈,堆:保存对象的实例对象,而栈:是运行程序过程的实现地方。
首先java从main方法开始执行程序,将加载main方法到栈中,然后执行main方法里面的,如果遇到实例化对象的话,会在堆中将对象的具体的成员变量存储起来,没有初始化的话,初始化成员变量的默认值。然后执行对象的构造方法,在这个时候,如果这个对象的类有父类的话,也要执行父类的构造方法,这之间也要执行代码块,先执行父类的静态的,再执行子类的静态的代码块,执行父类一般代码块,再执行子类一般的代码块,在 执行父类的构造方法,再执行子类的构造方法。最后将对象的地址值返回给对象声明。简洁如下:
Test test= new Test();