在磁盘上 .java 文件经 JDK 变为 .class文件 。.class文件经JRE 进入内存
所有类在jvm的方法区内
栈(线程):控制体系结构中程序内部的执行顺序
调用顺序
public class Test{
public static void main(String[] aaaa){
System.out.println("main start"); //1
m1();
m2();
System.out.println("main end"); //20
}
public static void m1(){
System.out.println("1 start");//2
m3();
m4();
System.out.println("1 end"); //13
}
public static void m2(){
System.out.println("2 start"); //14
m4();
System.out.println("2 end"); // 19
}
public static void m3(){
System.out.println("3 start");//3
m4();
System.out.println("3 end");//8
}
public static void m4(){
System.out.println("4 start");//4 9 15
m5();
System.out.println("4 end");//7 12 18
}
public static void m5(){
System.out.println("5 start");//5 10 16
System.out.println("5 end");//6 11 17
}
public static void m6(){
}
}
。。。
静态成员,进入内存 同时分配自己的空间
静态不在对象中
person a=new person();
person b=new person();
两个对象 用new 给非静态创造个体 都有自己的地址
拷贝person类中的非静态 在堆中生成对象。(对象成员都有默认值)
方法区内一个程序方法整体(例如Public class Person创建的Person,里面包含age、height等方法)是类,以类为模板在堆里创建的个体就是对象。栈中的是引用句柄。