static:
1.static修饰的,采用类名.的方式访问(同一个类中类名.可以省略),且不会出现空指针异常(只有在空引用访问“实例”相关的才会出现空指针异常)
2.静态变量是类级别的,在类加载时就会初始化
3.静态的建议使用类名.的方式来访问,但使用引用.(通过创建对象访问)也可以(不建议)。
4.静态代码块:static{
java语句;
}
static静态代码块一个类中可以写多个,在类加载时执行,并且只执行一次。
注意:静态代码块在main方法执行之前执行。这是SUN公司为java程序员提供的一个特殊时机叫类加载时机。
5.静态代码块和静态变量初始化都在类加载时执行,他们的执行顺序由代码的先后顺序决定。
6.实例语句块:{
JAVA语句;
}
注意:类加载时实力语句块不执行,需要new一个对象。只要是构造方法执行,必在构造方法执行之前自动执行实力语句块内的代码,这是SUN公司为java程序员提供的一个特殊时机叫对象构建时机。
this:
1.this是一个变量,是一个引用,this保存当前对象的内存地址,指向自身,存储在堆内存中对象的内部。
2.this只能使用在实例方法中。
3.this.大部分情况下是可以省略的。
4.this(实际参数列表):
通过一个构造方法1去调用另一个构造方法2,可以做到代码的复用。(构造方法1和2需要在同一个类中,this()必须是构造方法中的首行)