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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 一城一世界 中级黑马   /  2015-7-29 17:32  /  547 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

静态代码块,局部代码块,构造代码块之间的区别,用法以及注意事项,知道的说下,谢谢~

4 个回复

倒序浏览
我不喜欢把简单的事情搞的很复杂也不想复制网上的给你,   静态代码块在类初始化的时候首先执行,先执行父类的然后执行子类的,然后执行父类局部代码块,然后执行子类局部代码块,最后是父类构造代码块,最后是子类的构造代码块
回复 使用道具 举报
本帖最后由 0618-蔺飞飞 于 2015-7-29 19:56 编辑

静态代码块是用static修饰的代码块,它的作用跟静态作用是一样的,局部代码块是定义在方法区的代码块,构造代码块就是方法名与类名相同的代码块.
这些抽象的概念还是需要记忆的同时多练习的,希望能帮到你
回复 使用道具 举报
本帖最后由 ColdMoon 于 2015-7-29 20:12 编辑

静态代码块、构造代码块和构造函数的作用及区别:
        静态代码块:用于给类初始化,类加载时就会被加载执行,只加载一次。(给类初始化,缺点:生命周期较长
        如果类中包含多个静态代码块,那么将"先定义的代码先执行,后定义的代码后执行"。
注意: 静态代码块不能存在于任何方法体内。静态代码块不能直接访问静态实例变量和实例方法,需要通过类的实例对象来访问。
        构造代码块:用于给所有对象初始化的。只要建立对象该部分就会被执行,且优先于构造函数。(给所有对象进行初始化,每次创建对象都会被调用
        构造函数:  给对应的对象进行针对性的初始化,建立对象时,选择相应的构造函数初始化对象 (限制局部变量的生命周期)        
        创建对象时,三者被加载执行顺序:静态代码块--->构造代码块--->构造函数




回复 使用道具 举报
代码块分为:  局部代码块(在局部位置,限定变量的生命周期),构造代码块(在类中的成员位置,每次调用构造方法执行前,都会先执行构造代码块,可以把多个构造方法(对调用的对象进行初始化)中相同的代码放到一起,对所有对象进行初始化),静态代码块(在类中成员位置 用static修饰,只加载一次。是对类进行初始化,因为静态是随着类的加载而加载)

代码块执行顺序:
静态代码块~构造代码块~构造方法   
不会因为在程序中出现的先后顺序而改变。
而且静态代码块只执行一次 (对类进行初始化,执行一次即可)
构造代码块:每次调用构造方法时都会执行。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马