黑马程序员技术交流社区
标题:
构造函数、构造代码块、静态代码块的执行顺序
[打印本页]
作者:
杨修
时间:
2013-3-27 15:28
标题:
构造函数、构造代码块、静态代码块的执行顺序
本帖最后由 杨修 于 2013-3-28 22:36 编辑
求大神帮忙分析下:构造函数、构造代码块、静态代码块的执行顺序????
作者:
刘海东
时间:
2013-3-27 15:48
可以这样考虑,当你要使用某个类的时候;
首先你要加载这个类,
1
静态代码块的特点:
随着类的加载而只执行一次,并优先于主函数执行,用于给类初始化。
然后如果你要建立一个对象的话,
2
构造代码块:
作用:用于给对象进行初始化,对象一建立就执行,优先于3
构造函数执行;
构造代码块是给所有对象进行统一初始化;
构造函数是给对应对象进行初始化;
应该是这样。。。
作者:
袁梦希
时间:
2013-3-27 15:54
你好楼主 我来详细为你解答。
------
静态代码块
:
当编译时,.class字节码文件就加载到了内存,主函数所属的类先加载到内存,所以静态代码块先被执行,当主函数中创建person对象时
这时person类的字节码文件也加载到内存中,然后初始化Person类。
(特点:随着类的加载而执行,只执行一次,并优先于主函数。
用于给类进行初始化的。)
------
构造代码块
:
作用: 给对象进行初始化。
对象一建立就运行,而且优先于构造函数执行。
和构造函数的区别:
构造代码块是给所有对象进行统一初始化,
而构造函数是给对应的对象初始化。
构造代码块中定义的是不同对象的共性初始化内容。(有名字的孩子和没名字的孩子都哭,哭就定义在构造代码块里)
------
构造函数
:
构造函数和一般函数在写法上有不同。
在运行上也有不同。
构造函数是在对象一建立就运行。给对象初始化。
而一般方法是对象调用才执行,是给对象添加对象具备的功能。
一个对象建立,构造函数只运行一次。
而一般方法可以被该对象调用多次。
什么时候定义构造函数呢?
当分析事物时,该事物存在具备一些特性或者行为,那么将这些内容定义在构造函数中。
作者:
蔡陶军
时间:
2013-3-27 15:55
构造函数、构造代码块、静态代码块的执行顺序?
答:
程序运行先是装载静态代码块,然后再装载类,再类中先运行构造代码块,然后再运行构造函数。
静态代码块只运行一次,随程序运行而运行,优先于其他语句
构造代码块,优先于构造函数,当每初始化对象的时候会调用一次,优先与构造函数
构造函数(方法):每当初始化对象的时候会调用一次,构造方法可以进行重载
希望对你有所帮助,我也是菜鸟 希望能一起进步
作者:
贾振凯
时间:
2013-3-27 16:22
本帖最后由 贾振凯 于 2013-3-27 16:23 编辑
class A
{
static{
System.out.println("A----------------静态代码块!");
}
public A(){
System.out.println("A----------------构造器!");
}
{
System.out.println("A----------------非静态代码块!");
}
}
public class B extends A
{
static{
System.out.println("B----------------静态代码块!");
}
public B(){
System.out.println("B----------------构造器!");
}
{
System.out.println("B----------------非静态代码块!");
}
public static void main(String[] args)
{
B a = new B();
}
}
复制代码
1.jpg
(18.01 KB, 下载次数: 23)
下载附件
2013-3-27 16:21 上传
不多说(模仿下老毕呵呵.......)
作者:
陆旭东
时间:
2013-3-27 18:46
首先执行静态代码块,然后执行构造方法。静态代码块在类被加载的时候执行,而构造方法是在生成对象的时候执行。
在继承体系中,如果既有构造方法又有静态代码块,那么首先执行最顶层的类的静态代码块,一直执行到最底层类的静态代码块,然后再去执行最顶层的构造方法,一直执行到最底层的构造方法。注意:静态代码块只会执行一次。
作者:
胡军
时间:
2013-3-28 09:21
它们的执行顺序是
1.静态代码块随着类的加载而被执行,因为它有一个static修饰符
2.当建立对象时,会优先执行构造代码块
3.然后在执行对应参数的构造函数
作者:
罗平
时间:
2013-3-28 13:34
静态代码块———》构造代码块-------》构造函数
作者:
罗平
时间:
2013-3-28 13:34
静态代码块———》构造代码块-------》构造函数
作者:
王杰123
时间:
2013-3-28 14:11
求大神帮忙分析下:构造函数、构造代码块、静态代码块的执行顺序????
首先先建一个类,编译成解释器能识别的class文件,JVM加载class文件,先对类进行初始化,也就是执行静态代码块。
然后,当我们在new对象时,构造代码块目地就是给对象共有的属性进行初始化。
其次,构造函数是对具体的对象进行具体的初始化。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2