黑马程序员技术交流社区

标题: Java基础--静态代码块及执行顺序 [打印本页]

作者: michael_wlq    时间: 2015-8-28 10:42
标题: Java基础--静态代码块及执行顺序
本帖最后由 michael_wlq 于 2015-8-28 10:45 编辑

静态代码块:用于给类进行初始化的。 格式:
static {
             //静态代码块中的执行语句 }
特点:随着类的加载而执行,只执行一次,并优先于主函数, 因为主函数是需要jvm来调用的,同理,也优先于对象执行。
执行优先级:静态代码块>构造代码块>特定构造函数。
  1. class StaticCode {
  2.         int num = 9;

  3.         // 构造函数
  4.         StaticCode() {
  5.                 System.out.println("b");
  6.         }

  7.         // 静态代码块,
  8.         static {
  9.                 System.out.println("a");// 不可以使用this关键字
  10.         }

  11.         // 构造代码块,用来初始化所有对象,优先于生成特定对象的构造函数执行,且其中可以使用this关键字
  12.         {
  13.                 System.out.println("c" + this.num);
  14.         }

  15.         // 带参数的构造函数
  16.         StaticCode(int x) {
  17.                 System.out.println("d");
  18.         }

  19.         public static void show() {
  20.                 System.out.println("show run");
  21.         }
  22. }

  23. class StaticCodeDemo {

  24.         public static void main(String[] args) {
  25.                 new StaticCode(4);

  26.         }
  27. }
复制代码
执行输出结果为:
  1. a
  2. c9
  3. d
复制代码






作者: 荣斌    时间: 2015-8-28 10:49
又复习了以前的知识点。
作者: michael_wlq    时间: 2015-8-29 12:00
是啊 ,一起总结回顾下




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2