java中为什么说静态方法先执行?

程序执行的顺序不是按书写顺序,从上往下执行吗?... 程序执行的顺序不是按书写顺序,从上往下执行吗? 展开
 我来答
huiyu219
推荐于2017-09-12 · TA获得超过101个赞
知道答主
回答量:4
采纳率:0%
帮助的人:10.7万
展开全部
1 不管是静态方法还是非静态方法,都需要调用后执行,其执行的次序和在类里声明的次序无关,区别是静态方法是“class.method"方式执行,非静态方法是"object.method"方式执行,即后者需要创建一个对象。
2 静态成员变量(也称类变量)先于非静态成员变量初始化,静态成员变量在类第一次加载时初始化,所有对象共享一份静态成员变量,非静态成员变量则在对象创建时初始化
更多追问追答
追问
奥,再请教大侠,类一共要加载几次?
追答
只加载一次,而且是懒加载的,第一次调用该类的时候加载(比如当调用该类的静态方法或者成员变量,new一个该类的对象的时候)。
具体的说,每一个类(.class)文件,都对应着一个Class对象,这个Class对象类似于一个模板,用于创建该类的对象。这个Class对象在第一次调用该类时创建并加载到java虚拟机中。
chongkaikai111
2013-06-12 · 超过25用户采纳过TA的回答
知道答主
回答量:122
采纳率:0%
帮助的人:71.7万
展开全部
我想 :类的静态初始化块在加载类时先执行,此时还没有对象产生。创建对象时构造方法和非静态初始化块按先后执行。其它方法基本上是调用才执行。也有例外。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hanliwoyaoai
2013-06-12 · TA获得超过416个赞
知道小有建树答主
回答量:593
采纳率:0%
帮助的人:475万
展开全部
静态方法没有先执行

class A{
static{
...

}

public static void a(){...}

public static String b(){...}
}

static{
...

}
这类代码才会先执行

a() b()就是按照你书写的顺序执行的 啊
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
深空路由
2013-06-12
知道答主
回答量:6
采纳率:0%
帮助的人:3.3万
展开全部
源文件和类文件你没有分清。

*.java和*.class
追问
怎么这么说,请大侠指教一下
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式