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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 蓬头小道士 中级黑马   /  2015-8-14 22:55  /  400 人查看  /  11 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

问题:静态代码块,构造代码块,构造函数 的区别和特点?
哪个童鞋给个解答,谢谢了!

11 个回复

正序浏览
先执行父类的静态代码块>子类的静态代码块>父类构造代码块>子类构造代码块>父类构造方法>子类构造方法记住就行没必要理解
回复 使用道具 举报
当用到一个类中的内容时,虚拟机就会把这个类加载到内存中,而这个时候静态代码块就会执行一次,以后就不执行了。而构造代码在每次创建对象的时候都会执行一次,因为构造代码块是给你创建的所有对象初始化的,这时候就是构造函数了。之所以先走构造代码块再走构造函数,是因为构造函数有有参构造,你可能传参了,但是如果先走构造函数,在走构造代码块,那么你传的参数是不是就可能被构造代码块的参数覆盖掉?显然这样是不合理的。
回复 使用道具 举报
静态代码块只执行一次,构造代码在每次创建对象的时候都会执行,构造函数是主要是为了创建对象和初始化成员变量的
回复 使用道具 举报
前来学习~~~
回复 使用道具 举报
静态只运行一次,随着类的加载而加载,并且多个类所共享-----构造代码块运行在静态之后----构造函数最后运行
回复 使用道具 举报
陈cc 发表于 2015-8-14 23:19
静态代码块:只执行一次,每次载入类就会执行,比main还先执行
构造代码块:作用:给对象进行初始化,对象 ...

谢谢了!
回复 使用道具 举报
不管是静态代码块还是构造代码块都只是代码块相当于一个整体。
回复 使用道具 举报
静态代码块是在加载类的同时加载的,无论创建多少对象静态代码快都只执行一次;构造代码块是创建对象时执行的执行完构造代码块,接着执行构造函数。
回复 使用道具 举报
又模糊了概念。
回复 使用道具 举报
陈cc 发表于 2015-8-14 23:19
静态代码块:只执行一次,每次载入类就会执行,比main还先执行
构造代码块:作用:给对象进行初始化,对象 ...

main方法是静态的 是程序入口,
回复 使用道具 举报
本帖最后由 陈cc 于 2015-8-14 23:22 编辑


静态代码块:只执行一次,每次载入类就会执行,比main还先执行
构造代码块:作用:给对象进行初始化,对象一建立就执行,而且优先于构造函数执行
构造函数:作用:构造函数是用于创建对象,并对其进行初始化赋值,对象一建立就自动调用相对应的构造函数,
                 特点:
                         方法名与类名相同
                         没有返回类型
                         没有返回值
构造代码块和构造函数的区别:
                构造代码块是给所有不同对象的共性进行统一初始化
                构造函数是给对应的对象进行初始化
执行顺序:静态代码块--构造代码块--构造方法
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马