一般顺序:静态块——>静态变量——>成员变量——>构造方法——>静态方法
1、静态代码块(只加载一次) 2、构造方法(创建一个实例就加载一次)3、静态方法需要调用才会执行;
我认为:sp在编译期创建,fp在testSomthing()方法被调用时创建;
Static常量在准备阶段分配内存并赋默认值,但由于sp还有final修饰,故准备阶段直接将sp指向对象的引用。fp方法在对象调用时执行,执行方法时将方法所需的变量等压到虚拟机栈中的局部变量表中,执行int a = 33时,先为a分配空间然后将空间存储赋为33。方法执行完将该方法所用的局部变量啥的出栈并将方法返回值入栈。最后static方法可直接由对象调用,非static方法则要由对象实例调用