黑马程序员技术交流社区

标题: 来说说代码块 [打印本页]

作者: RockLee    时间: 2015-7-1 10:54
标题: 来说说代码块
代码块分为3中情况。
1,普通代码块
这是平常写代码的时候最常见的,也是我们最熟悉,它通常出现在方法和语句的代码块中。

2,构造代码块
构造代码块,是直接写在类中的代码块。它优于构造方法执行,还有值得提醒的一点是每次对象实例化之前都要运行构造代码块。

3,静态代码块
其实质是用Static关键字修饰的构造代码块,它先于主方法执行,在构造代码块之前运行,且和构造代码块不同,无论实例化多少次对象
都只执行一次。


贴个代码让我们更加有一个清晰的认识
  1. package reviewDemo;
  2. /**
  3. * 测试各代码块的优先级
  4. *        优先级顺序:静态代码块  > 构造代码块 > 普通代码块
  5. *        备注:无论创建几个对象,静态代码块只执行一次!
  6. */

  7. public class Demo13 {
  8.         Demo13(){
  9.                 System.out.println("我是构造方法!");
  10.         }
  11.         {
  12.                 System.out.println("我是构造代码块!");//实例化对象的时候才会去调用!
  13.         }
  14.         static{
  15.                 System.out.println("我是静态代码块!");
  16.         }
  17.        
  18.         public static void main(String[] args) {
  19.                 new Demo13();
  20.                 new Demo13();//再次创建对象,证明无论创建几次对象,静态代码块都只执行一次
  21.                 System.out.println("我是普通代码块!");
  22.         }
  23. }
复制代码

运行的结果是:
我是静态代码块!
我是构造代码块!
我是构造方法!
我是构造代码块!
我是构造方法!
我是普通代码块!

作者: RockLee    时间: 2015-7-1 12:34
:lol:):call:
作者: 燃烧的灵魂    时间: 2015-7-1 13:41
收藏了,不错!

作者: zlpiano    时间: 2015-7-1 14:35
不错不错,复习一下
作者: RockLee    时间: 2015-7-1 15:19
哈哈:lol
作者: RockLee    时间: 2015-7-8 12:24
哈哈:lol
作者: leesang    时间: 2015-7-8 14:12
说的很清晰啊,学习了




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