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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zcbyzcb 中级黑马   /  2013-5-4 09:50  /  1485 人查看  /  4 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

static代码块和main方法效果是一样的啊,具体在什么时候用合适呢?

4 个回复

倒序浏览
不一样啊,
静态代码块的作用是给一个类初始化用的,
类一加载就运行且只运行一次

main函数是一个程序的开头,被jvm识别
回复 使用道具 举报
静态代码块:
        特点:随着类的加载而执行,只执行一次。用于给类进行初始化的。
main方法是程序的入口点,由jvm调用
回复 使用道具 举报
本帖最后由 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.    
复制代码
回复 使用道具 举报
学习啦,楼上的不错
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马