黑马程序员技术交流社区
标题:
关于静态代码块的作用
[打印本页]
作者:
黑马潘浩
时间:
2013-3-7 15:00
标题:
关于静态代码块的作用
本帖最后由 黑马潘浩 于 2013-3-10 11:03 编辑
在Java中,在类中定义一个静态代码块一般起到什么样的作用,还有在类中的特点,在实际开发中运用的多吗?
作者:
黑马_位志国
时间:
2013-3-7 15:08
一般情况下,如果有些代码必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的;需要在项目启动的时候就初始化,在不创建对象的情况下,其他程序来调用的时候,需要使用静态方法,这种代码是被动执行的. 静态方法在类加载的时候 就已经加载 可以用类名直接调用
对象的初始化顺序:首先执行父类静态的内容,父类静态的内容执行完毕后,接着去执行子类的静态的内容,当子类的静态内容执行完毕之后,再去看父类有没有非静态代码块,如果有就执行父类的非静态代码块,父类的非静态代码块执行完毕,接着执行父类的构造方法;父类的构造方法执行完毕之后,它接着去看子类有没有非静态代码块,如果有就执行子类的非静态代码块。子类的非静态代码块执行完毕再去执行子类的构造方法。总之一句话,静态代码块内容先执行,接着执行父类非静态代码块和构造方法,然后执行子类非静态代码块和构造方法。
作者:
scott0610
时间:
2013-3-7 15:09
静态代码块的作用主要是:类变量的初始化。一个类最先执行的就是静态代码块。
在类中的特点:主要就是执行顺序优先,其他没什么特点吧。
在实际开发中运用不是太多。
作者:
黑马斯巴达
时间:
2013-3-7 15:10
再类中定义一个静态代码块可以在项目启动时就执行,一些类在这时就可以直接调用它,因为在类加载之前,静态代码快就已经加载啦
作者:
张卫刚
时间:
2013-3-7 15:15
静态代码块的作用主要是:类变量的初始化
执行顺序:静态代码块优先于构造代码块,构造代码块优先于构造方法
在实际开发中运用的不多,视开发需要而定
作者:
邹学良
时间:
2013-3-7 15:15
本帖最后由 邹学良 于 2013-3-7 15:25 编辑
在JAVA中 非普通代码块共有三类:
第一个是局部代码块,它的作用是为了控制变量的生命周期,如我们在程序中已经使用完 某个变量x 后,并且在接下来的代码中,不会再用到x,那么就没必要让x 在内存中占用空间了,这用情况下,可以使用局部代码块,将x及其所设计到的区域封装为局部代码块,他们在程序执行中顺序不变,只是在执行完成后消失。
第二个是构造代码块,它的作用是它可以给所有对象进行初始化存在于类中。当类中的构造方法以重载的形式存在时,并且有共同成员变量或共同的方法时,可以通过构造代码块对其进行初始化,这样可以减少代码的重复。
第三个是静态代码块:它的特征是随着类的加载而执行,而且只一次,且优先于主函数执行。它的作用是给类进行初始化。当类中的方法都被静态了化,并且构造方法被private了,这是我们不能在将这个类实例化,然而又想让类增加一些属性,就可以使用静态代码块
例如:
class StaticCode {
static
{
System.out.println("A");
}
public void show() {
System.out.println("Hello World !");
}
}
class StaticCodeDemo {
static
{
System.out.println("B");
}
public static void main(String[] args) {
new StaticCode().show();
}
static
{
System.out.println("C");
}
}
复制代码
作者:
amen0205
时间:
2013-3-8 02:51
1 静态代码块是给类初始化的 2 在类加载进内存后即执行静态代码块 3 只执行一次 在实际开发中? 我没开发过呢 不过应该用的不多吧
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2