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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

构造代码块为什么会先于构造方法执行呢,求大神解答

10 个回复

倒序浏览
构造代码块是随着类的加载而加载的,只要类已存在,构造代码块就加载进内存,而构造函数时在创建对象的时候才会执行,因为此构造代码块会优先于构造函数执行。
回复 使用道具 举报 1 1
一、出于逻辑
Java要求任何变量在正式使用前都必须得到必要的初始化。
初始化代码块主要用于给类中的局部变量进行初始化的,而构造函数内可能要操作到局部变量,这样必须保证在操作之前所操作的变量得到必要的初始化,因此,初始化代码块必须在构造函数之前执行。
二、代码块 vs 函数
类的构造函数式隐式的static函数,它和初始化代码块一样也是随着类的加载而加载。不同的是前者是函数只有被调用到的时候,执行流才会进入;而后者是代码块,无需调用,紧随着字段声明之后就会执行
注意区分加载和执行。
回复 使用道具 举报
sfgjys 来自手机 中级黑马 2015-9-11 21:48:21
板凳
构造代码块是多个构造方法共同的内容,如果构造代码块不先于构造方法,那就是去其意义了
回复 使用道具 举报
fdhm 来自手机 中级黑马 2015-9-12 00:45:35
报纸
看大神讲解!
回复 使用道具 举报
横创 来自手机 中级黑马 2015-9-12 07:20:36
地板
大神一直在
回复 使用道具 举报
黑马好多大神啊
回复 使用道具 举报
a804876583 来自手机 中级黑马 2015-9-14 12:43:42
8#
看大神讲解
回复 使用道具 举报
飞翔的小鸟 来自手机 初级黑马 2015-9-14 13:35:35
9#
构造代码块是给所有对象初始化的,构造函数是给对应的对象初始化的
回复 使用道具 举报
xcvbzbvcx 来自手机 中级黑马 2015-9-16 07:57:45
10#
有用,多谢讲解
回复 使用道具 举报
xcvbzbvcx 来自手机 中级黑马 2015-9-17 08:21:07
11#
顶顶顶顶
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马