黑马程序员技术交流社区

标题: 关于代码块的优先级 [打印本页]

作者: crazylong    时间: 2014-6-10 08:36
标题: 关于代码块的优先级

局部代码块  静态代码块 和构造代码块 能同时存在吗 如果存在优先级是什么顺序
作者: 心灵的微幸福    时间: 2014-6-10 09:16
是可以同时存在的。
运行一个类具体的顺序是这样的:
1.将类.class文件加载进内存
2.执行该类的静态代码块,给类.classj进行初始化。
3.在堆内存中开辟空间,分配内存地址。
4.在堆内存中建立对象的特有属性,并进行默认初始化。
5.对对象进行显示初始化。
6.对对象进行 构造代码块初始化。
7.对对象进行构造函数初始化。
8.将内存地址赋给栈内存中的类变量。
作者: 杨胜男    时间: 2014-6-10 09:26
静态代码块>构造代码块>局部代码块
作者: 大鑫    时间: 2014-6-10 19:28
局部代码块 、 静态代码块 和构造代码块是可以同时存在的。它们的功能是不同的:
局部代码块是对局部变量生命周期的控制, 避免内存的浪费
静态代码块是用于对类进行初始化。
构造代码块是对对象进行初始化,在构造函数重载时,对不同对象进行不同初始化时,抽取对象共同内容封装成构造代码块,对所有对象进行初始化。
从功能可以看出随着类文件.class的加载,静态代码块就会运行对类进行初始化,之后“如果”创建对象,在通过构造函数初始化之前,会通过构造代码块初始化。至于局部代码块,只有在调用它所在方法时,才会执行。

作者: 黄梁梦想享    时间: 2014-6-10 20:21
学习了,谢谢




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