这里的执行结果是     static
                                     main现在的结果是        static
   怎么感觉只是执行了静态块,主方法不执行,这是什么原因呢?谢谢大家看到了能帮我答疑啊,非常感谢!

解决方案 »

  1.   

    因为你的main方法并没有打印语句啊,拿什么执行,new Test()时构造对象之前会初始化类,调用了静态块的打印语句~  
      

  2.   

    你要调用a.main(...);才会执行Test类main方法中的打印。
      

  3.   

    method 是需要调用才会执行的, 静态块在这个类加载完就会执行
      

  4.   

    楼主, 估计是初学, 首先你new出了一个test类,加载类的时候, 首先执行其静态数据段,故先出来static,之后初始化
    其成员变量, 然后才是构造函数,这样一个类才加载完了, 之后其静态函数,可以通过类名直接调用,不用new出新
    对象, 估计楼主是在 静态代码段 和 静态函数这有疑惑, 可以分别百度一下
      

  5.   

    因为你的test是一个对象,test类中的main只是对象的一个方法,要让对象去调用方法(a.main())才会被执行,new操作符会在堆内存中开辟空间,但是静态代码块不存在堆栈中,存放在方法区中,在test类加载时就会被运行。
      

  6.   

    main方法是程序入口,你运行test的时候先执行main在执行static
    Test new出来的时候调用的是构造方法 main函数不调用则不运行
      

  7.   

    你要调用main方法才会打印呀。。