一.静态成员变量
1.属于整个类而不是某个对象实例,所以可以直接通过类名和对象名去调用.
2.静态成员属于整个类,当系统第一次使用该类时,就会为其分配内存空间直到该类被卸载才会进行资源回收
二.属性加载顺序
一般的,执行顺序如下:
父类静态变量,父类静态代码块,子类静态变量,子类静态代码块,父类非静态变量,父类非静态代码块,父类构造方法,
子类非静态变量,子类非静态代码块,子类构造方法.
三.i++,++i的区别
这个就百度吧
接下来说说代码流程
public class program2 {
static {
int x = 5; //声明一个局部变量,对后面没有影响
}
static int x,
y; //默认0
public static void main(String[] args) {
x--; //x=-1
myMethod();
System.out.println(x + y+++x); //1+0+1
}
private static void myMethod() {
y = x+++++x; //等价于y=(x++)+(++x)从右向左y = 0+ 0 x = 1;
}
}
来源: http://www.jianshu.com/p/b0dd02311dcc