在Java中,第一个要运行的方法是 public static void main(String [] args)
在android中,第一个要运行的方法是 protected void onCreate(Bundle savedInstanceState)
我一直想知道为什么Java中的第一个方法必须是静态的但是在android中没有?有谁请帮我把这件事清楚地记在脑海里?
答案 0 :(得分:1)
这是两种不同的情景。我们有一个由java虚拟机运行的通用java语言。此jvm旨在为所有应用程序调用特定入口点。因此,这必须尽可能通用。
Android运行时和许多其他像WAR,Applets,Servlets都是“更高”的api。因此,他们拥有所有特定的切入点。由于这些apis已经在具有自己的main()方法的一般jvm中运行,因此它们能够实现更复杂和特定于域的入口点。因此,在这种情况下,android运行时创建一个给定类的对象,并调用api设计的方法。
另见:
还有很多其他资源。
答案 1 :(得分:0)
因为Android studio基于框架。 如果你在打破onCreate'时查看了callstack,你可以看到一个静态的main()方法被调用&创建MainActivity类的实例。