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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张林春 中级黑马   /  2012-4-25 14:18  /  2305 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public class A{
        static{
                Console.writeLine("static");
        }
        public static void main(String[] args) {
                Console.writeLine("main");
               
        }
        
}

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

3 个回复

倒序浏览
static类在程序装入内存时就要确定数据类型并分配内存,而main函数包括其中的变量是在执行到的时候才分配的。
1 静态模块会先执行   因为静态模块是在虚拟机加载的时候就运行了       而main方法则是在执行程序是才会被执行
2 静态模块只会在被加载时才会执行一次  以后无论执行几次程序都不会再执行     而main方法则是执行几次程序就会被执行几次

评分

参与人数 1技术分 +2 收起 理由
宋天琪 + 2

查看全部评分

回复 使用道具 举报
当然首先Main()函数数程序的入口 ,它是一切程序中最先执行的,其次就是在main函数中那个函数出现的调用顺序执行了

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
我简单的分析下:
1分析程序的执行结果,先得找到程序的入口,也就是main()方法。
2而main()方法在X类中,要执行main()方法,还得先将某类(此处静态类)加载到内存中。
3而static作用就是在类被第一次加载的时候执行,以后就不再执行。
既然知道了static的作用,那么X类被加载,那么就会先执行X类的静态属性和静态语句块(static),执行先后顺序看谁在前面就先执行谁。只在此时执行,以后都不会。
4X类(此处特指楼主的类)的static语句块执行完了,就该执行main()方法

评分

参与人数 1技术分 +2 收起 理由
宋天琪 + 2

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马