2012-07-10 58 views
1

我想知道执行java程序时发生的分步内部过程。执行Java程序后执行的内部过程

示例如果我们在命令提示符中提供java test
什么过程被调用?
JVM如何实例化?直到它打印输出..

+0

看一看的[JVM规范(http://docs.oracle.com/javase/specs/jvms/ se7/html/index.html)... – zeller 2012-07-10 13:35:24

+3

这是一个非常*很大的主题。你特别想知道什么? – 2012-07-10 13:37:20

+0

只是一个流..如何jvm得到实例化..然后下一个被称为..像这样的东西.. – Jeevi 2012-07-10 13:38:59

回答

-2

我不知道,但不过,我已经明白这个概念,我将解释你一样的....

最初,第一个,当你输入命令的java abc(文件名为abc.java)来运行程序....程序将搜索Java运行时环境,因为您输入了命令(JAVA in cmd)....它表示您在环境变量...

然后JVM被激活........ JVM将给类加载器一个调用.......然后类加载器将去操作系统采取程序执行许可.....一旦OS允许.....类加载器将检查文件名和程序名........(如你所知,类名和文件名应该是相同的)........如果一切顺利........程序在内存中加载..... :)

干杯:)

桑卡Salunkhe

+2

欢迎来到SO。你能否改善你的格式?尽管内容看起来不错,但所有的时期都让这看起来有些杂乱。也许你可以使用一个子弹列表或其他东西(你可以编辑你点击后面的“编辑”)。 – Kjartan 2013-01-14 15:48:45

+1

连续使用超过三个句号的英语句子。你使用八次,多次。您还缺乏单词之间的空格,并使用不必要的大写字母(它是“Java”,而不是“JAVA”)。你的问题也缺乏清晰度。 – Jules 2013-01-14 15:58:45

2

Java程序执行如下5个专业步骤:

编辑 编译 负载 验证 和执行

  1. 编辑 - 在这里程序员使用一个简单的编辑器或记事本应用来编写Java程序并在最后给它一个.java扩展

  2. 编译 - 在这一步中,程序员给出了javac c ommand和.java文件被转换为字节码,这是Java虚拟机可以理解的语言(这是使Java平台无关的语言)。任何编译时错误在此步骤被提出

  3. 加载 - 然后程序被加载到内存中。这是由类加载器完成的,该加载器接收包含字节码的.class文件并将其存储在内存中。这个。类文件可以从硬盘或从网络以及加载

  4. 验证 - 字节码校验检查加载的字节码是有效的,不违反Java的安全限制

  5. 执行 - 的JIT(精益生产-in-时间)编译器编译程序一个字节的时间和运行程序

+0

你刚刚复制粘贴来自quora的答案,非常糟糕。 https://www.quora.com/What-are-the-different-steps-involved-in-execution-of-a-Java-program – javabot 2016-08-31 05:11:11

0

1)JVM执行程序的字节码。
2)JVM通常使用解释和所谓的即时(JIT)编译的组合来执行字节码
3)分析解释的字节码
4)即时(JIT)编译器(如Oracle的Java HotSpot编译器)将字节码转换为底层计算机的机器语言。

2

Java代码的执行在内部将在下面的步骤: -

Execution Command -->java Test 
    1.Start JVM 
    2.Create and Start Main Thread 
    3.Look at Test.class File-->Main Thread is responsible for checking if not found Runtime Exception will occur saying Exception in Thread Main 
    4.Load Test.class file 
    5.Execute Main method 
    6.Unload Test.class 
    7.Terminate Main Thread 
    8.Shut down JVM