A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

构造代码块与静态代码块
  1. public class ConstructorBlock {

  2.            /**
  3.             * @param args
  4.             */
  5.            public static void main(String[] args) {
  6.          new Person();
  7.          new Person(10);
  8.            }

  9.    }
  10.    class Person{
  11.            private int age;
  12.           
  13.           
  14.            {
  15.              System.out.println("构造代码块被执行");
  16.            }
  17.       
  18.           
  19.            static{
  20.                System.out.println("静态代码块被执行");
  21.        }
  22.            public Person() {
  23.                    super();
  24.                    // TODO Auto-generated constructor stub
  25.            }

  26.            public Person(int age) {
  27.                    super();
  28.                    this.age = age;
  29.            }
  30.           
  31.           
  32.    }
复制代码

  
   运行结果:
     静态代码块被执行  //跟随类的加载而加载,但是只调用一次 在加载类的时候调用了一次
     构造代码块被执行  //new对象的时候调用,第一次空参对象调用
     构造代码块被执行  //第二次new带参的时候,通过super();调用一次

   结论:
     静态代码块随着类加载而执行,并且只执行一次
     构造代码块,只要创建该类的对象,该类的构造代码块就执行

1 个回复

倒序浏览
这个很好记的,顶一个
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马