黑马程序员技术交流社区

标题: 静态代码块与main函数哪个先执行? [打印本页]

作者: 张林春    时间: 2012-4-25 14:18
标题: 静态代码块与main函数哪个先执行?
public class A{
        static{
                Console.writeLine("static");
        }
        public static void main(String[] args) {
                Console.writeLine("main");
               
        }
        
}

作者: 海继峥    时间: 2012-4-25 15:07
static类在程序装入内存时就要确定数据类型并分配内存,而main函数包括其中的变量是在执行到的时候才分配的。
1 静态模块会先执行   因为静态模块是在虚拟机加载的时候就运行了       而main方法则是在执行程序是才会被执行
2 静态模块只会在被加载时才会执行一次  以后无论执行几次程序都不会再执行     而main方法则是执行几次程序就会被执行几次
作者: 刘建法    时间: 2012-4-25 15:21
当然首先Main()函数数程序的入口 ,它是一切程序中最先执行的,其次就是在main函数中那个函数出现的调用顺序执行了
作者: 王志龙    时间: 2012-4-25 15:52
我简单的分析下:
1分析程序的执行结果,先得找到程序的入口,也就是main()方法。
2而main()方法在X类中,要执行main()方法,还得先将某类(此处静态类)加载到内存中。
3而static作用就是在类被第一次加载的时候执行,以后就不再执行。
既然知道了static的作用,那么X类被加载,那么就会先执行X类的静态属性和静态语句块(static),执行先后顺序看谁在前面就先执行谁。只在此时执行,以后都不会。
4X类(此处特指楼主的类)的static语句块执行完了,就该执行main()方法




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