黑马程序员技术交流社区

标题: 构造代码块和静态代码块的作用分别是什么? [打印本页]

作者: rehan    时间: 2015-2-14 20:37
标题: 构造代码块和静态代码块的作用分别是什么?
他们的使用场景?有何不同作用?
作者: kfcka    时间: 2015-2-14 21:44
静态代码块是当类在加载时,静态代码块就会被自动执行,先于main方法被执行且只执行一次,常用来对一些类的属性进行初始化
构造代码块是每次进行对象的建立时都会被执行到
作者: cly成子    时间: 2015-2-14 22:02
我也有点不懂~谁可以详尽点!
作者: 艺多不压身丶    时间: 2015-2-14 22:49
都是进行初始化的。执行顺序不一样。只执行一次
先执行静态代码块,接着就是构造代码块。再接着就是构造函数。
如果在主类里面的话。执行顺序是:先执行静态代码块。在执行main方法、在执行构造代码块。在接着才是构造函数。
作者: jinhuikang    时间: 2015-2-14 22:57
静态是随着类加载的
作者: huangchunwei    时间: 2015-2-14 23:03
静态代码块优先于类存在,是给类进行初始化。类加载后如果有main会先执行main,然后执行构造代码块,构造代码块给所有的对象进行初始化。如果有创建实例对象,则会执行构造函数,构造函数是给对应的对象进行实例初始化。
作者: 枪杆不如笔杆    时间: 2015-2-15 09:15
复习了,之前还没注意呢
作者: mengxiang1993    时间: 2015-2-15 10:03
静态代码块,只执行一次,就是在类加载的时候执行;
作者: mengxiang1993    时间: 2015-2-15 10:05
静态代码块,用于初始化类属性,只执行一次,就是在类加载的时候执行;
构造代码块,用于初始化对象,在每一次创建对象时执行,且由于构造函数
构造函数,给对应对象初始化的,建立对象时,选择相应的构造函数初始化对象。       
  创建对象时,三者被加载执行顺序:静态代码块--->构造代码块--->构造函数
作者: 鲍阳    时间: 2015-2-15 10:18
学习了,之前看过一篇文章里是这么写的:
父类类静态类型 -> 子类静态类型 -> 父类正常实例化 -> 成员变量 -> 构造函数。静态类型的初始化顺序都是先变量后程序块。
作者: lwh316658735    时间: 2015-2-15 11:50
合理利用这两个会大大提升程序的效率。
作者: 汝建国    时间: 2015-2-15 15:27
静态代码块是给类进行初始化的,构造代码块是给所有的对象进行初始化的
作者: 苏安东    时间: 2015-2-15 15:31
看那了  但是没有仔细看这个问题  还是不知道这个是

作者: 血色@残阳    时间: 2015-2-15 21:02
加载的时候是什么时候?是指调用的时候吗
作者: linuxpara910829    时间: 2015-2-15 21:48
静态代码块给类初始化的只执行一次
构造代码块给所有对象初始化的,创建那个对象它都会运行。
构造函数给对应对象初始化的,这个没必要说了 经常用
作者: 小马初长成    时间: 2015-2-15 22:14
静态代码块
  1. class Demo
  2. {
  3.     static //静态代码块
  4.      {}
  5. }
复制代码

随着类的加载而执行。而且只执行一次(这跟类的生命周期较长有关)
作用:给类进行初始化
构造代码快
  1. class Demo
  2. {
  3.    {构造代码块}
  4. }
复制代码

类中独立代码块
作用:给所有对象进行初始化。
(构造函数是给对应的对象进行针对性的初始化。)
作者: 小马初长成    时间: 2015-2-15 22:17
补充一个
局部代码块
  1. class Demo
  2. {
  3.     public void demo()
  4.     {
  5.        {//局部代码块}
  6.     }
  7. }
复制代码

方法中的空白代码块
作用:限制局部变量的生命周期
作者: 邓士林    时间: 2015-2-16 08:14
学习下...
作者: sq_jun    时间: 2015-2-16 13:33
楼上说的都不错
作者: coolmiao13    时间: 2015-2-16 18:05
http://bbs.itheima.com/thread-170566-1-1.html
我编辑的帖子,楼主去看看。
构造代码块和静态代码块的作用就是在实例化的时候对类进行初期化。




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