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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 萍水相逢 于 2014-8-4 18:37 编辑

------- <a  target="blank">android培训</a>、<a  target="blank">java培训</a>、期待与您交流! ----------
构造代码块:
{
    System.out.println("构造代码块执行!");
}
作用:给对象进行初始化。
对象一建立就运行,而且优先于构造函数执行。
它和构造函数的区别:
构造代码块是给所有对象进行统一初始化。而构造函数是给对应的对象初始化。
构造代码块中定义的是不同对象共性的初始化内容。
静态代码块:
格式:static
{
       静态代码块中的执行语句。
}
特点:随着类的加载而执行,只执行一次。
用于给类进行初始化的。
代码:
  1. class Test {
  2.         // 构造函数
  3.         Test() {
  4.                 System.out.println("b");
  5.         }

  6.         // 静态代码块
  7.         static {
  8.                 System.out.println("a");
  9.         }
  10.         // 构造代码块
  11.         {
  12.                 System.out.println("c");
  13.         }
  14. }

  15. class TestDemo {
  16.         public static void main(String[] args) {
  17.                 Test t = new Test();
  18.         }
  19. }
复制代码
执行结果是:a c b


8 个回复

倒序浏览
三者的执行顺序还真没有注意过,受教了
回复 使用道具 举报
分析的很不错,收藏了
回复 使用道具 举报
本帖最后由 yqj 于 2014-8-6 20:03 编辑

以前也没注意到,学习了
换成这样可能会更说明问题
  1. class Test {
  2.         // 构造函数
  3.         Test() {
  4.                 System.out.println("b");
  5.         }
  6.         // 构造代码块
  7.         {
  8.                 System.out.println("c");
  9.         }

  10.         // 静态代码块
  11.         static {
  12.                 System.out.println("a");
  13.         }
  14. }
  15. public class TestDemo {
  16.         public static void main(String[] args) throws Exception {
  17.                 Class.forName(Testtt.class.getName()); //加载类
  18.                 System.out.println("-------------");
  19.                 Test t = new Test();
  20.                 System.out.println("-------------");
  21.                 Test t2 = new Test();
  22.         }
  23. }
复制代码

结果:
a
-------------
c
b
-------------
c
b

回复 使用道具 举报
yqj 发表于 2014-8-6 19:58
以前也没注意到,学习了
换成这样可能会更说明问题

嗯,都差不多的
回复 使用道具 举报
我看过老毕的。
回复 使用道具 举报
Vaz 发表于 2014-8-6 22:22
我看过老毕的。

嗯,这就是总结他那上面的
回复 使用道具 举报
好像是先执行静态代码块  ,    在看看构造函数有没有属性 有成员属性就先初始化,没有就先执行构造代码块  仅供参考
回复 使用道具 举报
黑马的视频中也有哦,,好像很全面的哦,,:)
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马