java代码执行顺序_JAVA代码执行顺序?

好像。。。不太对。不只是主类,所有类的后面都是通常三部分(实例域、构造器、其他方法),实际上块A到底在哪儿是不确定的,因为对象都是堆上分配空间,栈上分配名称(更准确说是引用,不是指针),A也可能包含静态变量,(所有的变量都)可以直接初始化,这部分工作在主方法执行之前(因为一个类可以没有主方法,但是这个类仍然给一些变量分配空间了)。尤其是基本数据类型,全都是运行时自动初始化,然后执行主方法的。你注释的那句话是因为自己调用的语句是需要委托给方法的,就像C语言的printf语句你写在主函数外面,没有委托给函数也是无法执行的。所以执行一个类,你就看主方法就完了。后续学习Awt,Swing,Thread这些东西的时候你会发现程序并不是完全按照你书写代码的顺序执行的,因为编译原理说明了代码优化(外提、规约变量等)在编译期间会执行无数次,堆栈分配的全局和局部display表也被修改无数次,确实也引起一些麻烦。Java 7 及之前,如果你只写:static

{

System.out.println("ABC");

}

这部分代码就可以在主方法运行之前执行,甚至就是主方法。还有很多方法能让主方法执行之前执行一些语句,网上有许多参考。

说了一堆废话,就一句重要的:从主方法找入口,剩下的任务就是阅读方法体了,别刻意纠结执行顺序。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值