我想知道当我运行一个没有任何额外初始参数的简单java hello world应用程序时后台会发生什么。
例如在后台,java调用窗口的功能就像绘制一个简单的窗口一样:
public class example
{
public static void main(String args[])
{
System.out.println("Hello World!");
}
}
或
public class example2 extends Jframe
{
public static void main(String args[])
{
new example2().setvisible(true);
}
}
答案 0 :(得分:1)
http://docs.oracle.com/javase/tutorial/ui/overview/intro.html
Java旨在与平台无关。它不使用本机Windows调用,至少不是直接调用。
答案 1 :(得分:1)
java调用窗口的功能如何绘制一个简单的窗口?
我猜你问的是Java Native Interface。
答案 2 :(得分:1)
如果您询问JVM如何与底层操作系统交互,this article提供了一个与平台无关的一般概述。
我认为您可能对“字节代码指令集”一节特别感兴趣,该节指出在执行该行时:
System.out.println("Hello world!");
在编译时,Java编译器将单行print语句转换为以下字节代码:
0 getstatic #6 <Field java.lang.System.out Ljava/io/PrintStream;>
3 ldc #1 <String "Hello world!">
5 invokevirtual #7 <Method java.io.PrintStream.println(Ljava/lang/String;)V>
8 return
值得注意的是,JDK包含一个可用于检查字节代码的工具,称为类文件反汇编程序。您可以在所选终端中使用 javap 命令来使用此工具。
答案 3 :(得分:0)
首先,您的第一个代码示例仅打印“Hello World!”进入终端。 至于调用窗口,操作系统会处理它。如果您没有注意到OSX上的窗口与Windows上的窗口之间存在差异。