这个很简单的证明,因为记性不好,老是把这些东西忘了,
看到一本书叫java入门到精通,里面的一段代码,改写一下,加入了构造代码块,并进行了简单说明
插入代码:
- package ch01;
- public class Test {
- //静态变量
- static String a = "string-a";
- static String b;
- //非静态变量
- String c = "string-c";
- String d;
- //静态代码块
- static {
- printStatic("1");
- b = "string-b";
- printStatic("2");
- }
- public static void printStatic(String title){
- System.out.println("-------"+title+"-------");
- System.out.println("a=\""+a+"\"");
- System.out.println("b=\""+b+"\"");
- }
- //构造代码块
- {
- print("3");
- d = "string-d";
- print("4");
- }
- //构造函数
- public Test(){
- print("5");
- }
- public void print(String title){
- System.out.println("-------"+title+"-------");
- System.out.println("a=\""+a+"\"");
- System.out.println("b=\""+b+"\"");
- System.out.println("c=\""+c+"\"");
- System.out.println("d=\""+d+"\"");
- }
- public static void main(String[] args){
- new Test();
- }
- }
复制代码
结果是这个:
-------1-------
a="string-a"
b="null"
-------2-------
a="string-a"
b="string-b"
-------3-------
a="string-a"
b="string-b"
c="string-c"
d="null"
-------4-------
a="string-a"
b="string-b"
c="string-c"
d="string-d"
-------5-------
a="string-a"
b="string-b"
c="string-c"
d="string-d"
小程序一枚,说明了构造代码块,构造函数,静态代码块,静态变量,非静态变量在实例化时运行的顺序。
顺序是:静态变量→静态代码块→非静态变量→构造代码块→构造函数。
以上,如果有问题希望指正。 |