Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/149.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 程序的执行_Java_C++_Vba - Fatal编程技术网

Java 程序的执行

Java 程序的执行,java,c++,vba,Java,C++,Vba,我有一个关于程序执行的问题。在C++中,程序是逐行执行的,直到它到达结束(返回0;或者刚好到达主函数的范围的末端)。在一个带有文本界面的程序中,如果我想重复该程序,直到用户点击[Esc]键为止,我会将其放入正在执行的循环中,直到出现特定情况为止。同样的情况也发生在GUI程序中(确切地说是WinAPI),程序在事件循环中循环,直到用户点击“X”,然后程序到达主函数的末尾,因此程序的执行停止。到目前为止还不错 令我惊讶并让我夜不能寐的是,当我创建一个JFrame对象,初始化它并使它恰好显示出来时,当

我有一个关于程序执行的问题。在C++中,程序是逐行执行的,直到它到达结束(返回0;或者刚好到达主函数的范围的末端)。在一个带有文本界面的程序中,如果我想重复该程序,直到用户点击[Esc]键为止,我会将其放入正在执行的循环中,直到出现特定情况为止。同样的情况也发生在GUI程序中(确切地说是WinAPI),程序在事件循环中循环,直到用户点击“X”,然后程序到达主函数的末尾,因此程序的执行停止。到目前为止还不错

令我惊讶并让我夜不能寐的是,当我创建一个JFrame对象,初始化它并使它恰好显示出来时,当程序执行到达主函数作用域的末尾时,窗口仍然存在。我还在调试器中检查了它,它没有显示实际正在执行的行。它清楚地表明线程执行已经完成。我确信执行没有被冻结,所以引擎盖下一定发生了什么,因为我仍然可以调整大小、关闭窗口等等。所以我的问题是:当Java中的窗口被显示时,程序的执行实际上在哪里移动

同样的事情也发生在VBA中。我在一个模块中创建了一个主函数,然后在这个模块中我强制显示了一个非模态形式,一旦函数的执行完成,窗口并没有消失,但是函数中声明的变量消失了,所以对它们的访问也消失了


<>在C/C++中的两个例子中,这些情况意味着程序已经完成,但是窗口是可见的,所以应用程序实际上没有停止,对吗?< / P> C++中,程序正在逐行执行,直到它达到什么目的?任何语言都是如此。在每个严肃的应用程序中都有多个线程。在Java中,至少有一个垃圾收集器,如果您使用的是Swing,那么就有一个事件调度线程。在VBA中,执行上下文是在其中使用代码的应用程序。