黑马程序员技术交流社区

标题: 关于static代码块的用法 [打印本页]

作者: zcbyzcb    时间: 2013-5-4 09:50
标题: 关于static代码块的用法
static代码块和main方法效果是一样的啊,具体在什么时候用合适呢?
作者: 刘海东    时间: 2013-5-4 10:00
不一样啊,
静态代码块的作用是给一个类初始化用的,
类一加载就运行且只运行一次

main函数是一个程序的开头,被jvm识别
作者: xiewen    时间: 2013-5-4 10:03
静态代码块:
        特点:随着类的加载而执行,只执行一次。用于给类进行初始化的。
main方法是程序的入口点,由jvm调用
作者: ZhaoYuBetter    时间: 2013-5-6 17:30
本帖最后由 ZhaoYuBetter 于 2013-5-6 17:34 编辑

参考 agile Java:
new 对象时,构造函数会执行,如果需要在类级别进行复杂的初始化,可使用静态初始化代码块完成;statc{};
静态块经常用来进行类属性的初始化;
类似有实例块:可进行成员变量的初始化;当然可以在构造函数中,初始化;为什么有这个呢?
有个匿名内部类,他是没有构造函数,如果要实现成员变量的初始化,就可以使用这个了,在 Swing中比较多见!
  1. public class Test {

  2.    private static String staticVar1 = "staticVar1"; // 声明时初始化;
  3.    private static String staticVar2;
  4.    private static String staticVar3;
  5.    private static final String FINAL_VAR4;                        // 可在静态块里面执行初始化

  6.    private String var1 = "var1"; // 声明时初始化
  7.    private String var2;
  8.    private String var3;

  9.         /**
  10.          * 如果静态变量,初始化比较复杂,可以放在静态块里面
  11.          */
  12.   static {
  13.    System.out.println("1.静态块开始执行了。。。");
  14.    staticVar2 = "staticVar2";
  15.    staticVar3 = "staticVar3";
  16.    FINAL_VAR4 = "final static var";
  17. }

  18.         /**
  19.          * 实例块
  20.          */
  21. {
  22.    System.out.println("2.实例块执行了。。。");
  23.    var2 = "var2";
  24. }
  25.         
  26.    
复制代码

作者: 王雪冬    时间: 2014-4-5 13:56
学习啦,楼上的不错




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