黑马程序员技术交流社区
标题:
静态代码块
[打印本页]
作者:
赵家阳
时间:
2012-9-7 14:21
标题:
静态代码块
静态代码块详解及在程序开发过程中有什么作用?请高手指点!
作者:
孙岳
时间:
2012-9-7 14:24
静态代码块也叫静态初始化,在类加载到内存的第一时间执行,而且只执行一次。
在使用JDBC的时候经常用做驱动的加载(听说的)。
作者:
孔肖
时间:
2012-9-7 14:27
静态代码块随着类的加载而执行,只执行一次,并优先于主函数执行,用于给类进行初始化。
举个例子 :
class StaticCode
{
static
{
System.out.print(" a ");
}
}
class StaticCodeDemo
{
static
{
System.out.print(" b "); //随着类的加载,static代码块先于主函数执行
}
public static void main(String[] args)
{
new StaticCode(); //static代码块只执行一次
new StaticCode();
System.out.print(" over ");
}
static
{
System.out.print(" c "); //随着类的加载,static代码块先于主函数执行
}
}
//运行结果: b c a over
作者:
孔肖
时间:
2012-9-7 14:28
静态代码块随着类的加载而执行,只执行一次,并优先于主函数执行,用于给类进行初始化。
举个例子 :
class StaticCode
{
static
{
System.out.print(" a ");
}
}
class StaticCodeDemo
{
static
{
System.out.print(" b "); //随着类的加载,static代码块先于主函数执行
}
public static void main(String[] args)
{
new StaticCode(); //static代码块只执行一次
new StaticCode();
System.out.print(" over ");
}
static
{
System.out.print(" c "); //随着类的加载,static代码块先于主函数执行
}
}
//运行结果: b c a over
作者:
广驰
时间:
2012-9-7 14:28
初始化,比起构造方法他更方便,能在里面像一般写程序那样书写你想利用或表达的逻辑,比如,一般情况下构造方法里你是不能调用一般非静态类的方法的,而静态代码块里可以持有某一类的引用而使用一般的方法,这样大大简化了代码,而又起到了初始化的效果。
作者:
郑世光
时间:
2012-9-7 14:29
静态代码是随类的加载就运行,而无需创建对象。
它是给类进行初始化。
作者:
杨卫腾
时间:
2012-9-7 14:48
class StaticCode
{
//静态代码块
static
{
System.out.println("static code run!");
}
//构造代码块,作用:用于给对象进行初始化。
{
System.out.println("gouzao code run!");
}
public static void show()
{
System.out.println("show run!");
//局部代码块
{
int x = 9;
x = x<<4;
System.out.println("x="+x);
}
}
}
class StaticCodeDemo
{
static
{
System.out.println("main-static code run!");
}
public static void main(String[] args)
{
//建立了对象后这个构造代码块才会运行。
// StaticCode sc = new StaticCode();
// sc.show();
//直接使用类名调用,构造代码块是不会运行的,再次验证了构造代码块是给对象进行初始化的。
StaticCode.show();
}
}
复制代码
静态代码块:
随着类的加载而执行,而且只执行一次。
作用:用于给类进行初始化。
构造代码块:
作用:给对象进行初始化
对象一建立就运行,而且优先于构造函数执行。
可以给所有的对象进行初始化,而构造函数是给对用的对象进行初始化的。
作者:
任艳旭
时间:
2012-9-7 14:59
用static修饰的代码块就是静态代码块。
静态代码块在类加载后执行。
静态代码块和静态方法相同,不能使用外部非静态成员。
静态代码块执行和静态变量的初始化顺序由代码从上到下顺序决定。
如果我们有一段代码想在别人使用某个类的时候就运行, 而且只运行一次, 那么就可以写在静态代码块中.
例如:
class StaticBlock {
public static void main(String[] args) {
new Person();
}
}
class Person {
static String name;
static {
System.out.println("静态代码块");
}
{
System.out.println("普通代码块");
}
public Person() {
System.out.println("构造函数");
}
public static void fun() {
System.out.println("fun()");
}
}
运行结果:
静态代码块
普通代码块
构造函数
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2