package javaReview;
/**
*@author Danbro
*@version 创建时间:2019年7月6日下午12:19:34
*@funcition 静态代码块和非静态代码块的区别
*
*
*
**/
/*
* 相同点:都是在JVM加载类时且在构造方法执行之前执行,在类中都可以定义多个,一般在代码块中对一些static变量进行赋值。
* 异同点: 静态代码块在非静态代码块之前执行(静态代码块--》非静态代码块--》构造方法)。
* 静态代码块只在第一次new执行一次,之后不在执行,而非静态代码块在每new一次就执行一次。
* 非静态代码块可以 在普通方法中定义(个人感觉作用不大);而静态代码块不行。
*/
public class test5 {
public static void main(String[] args) {
AA a = new AA();
AA b = new AA();
}
}
class AA{
static {
System.out.println("static");
}
{
System.out.println("no static");
}
public AA() {
System.out.println("constructor");
}
}
static
no static
constructor
no static
constructor