视频: 线程并发库和线程池的作用?【java技术面试视频#14】 2024
下面是一个保存完好的秘密:Java程序是 多线程的, 这意味着当您运行Java程序时,有几件事情正在进行。当然,计算机正在执行你编写的代码,但它也在执行其他代码(你没有写和看不到的代码)。所有这些代码正在同时执行。当计算机一个接一个地执行你的主要方法的语句时,计算机会花费时间,简单地偷偷溜走,并执行其他一些看不见的方法。对于大多数简单的Java程序,这些其他方法是定义为Java虚拟机(JVM)的一部分。
<!例如,Java有一个事件处理线程。在您的代码运行时,事件处理线程的代码将在后台运行。事件处理线程的代码监听鼠标点击,并在用户单击鼠标时采取适当的行动。该图说明了这是如何工作的。
当用户点击按钮时,事件处理线程会说:“好的,点击了按钮。那么,我应该怎么做呢? “答案是,”调用一些actionPerformed方法。 “就好像事件处理线程的代码如下所示:<! - 2 - >
if(buttonJustGotClicked()){object1。的actionPerformed(infoAboutTheClick);对象2。的actionPerformed(infoAboutTheClick); object3。 actionPerformed(infoAboutTheClick);}
当然,每个答案的背后还有另外一个问题。在这种情况下,后续问题是:“事件处理线程在哪里找到actionPerformed方法来调用? “还有另一个问题:”如果你不想让事件处理线程调用潜伏在代码中的某些actionPerformed方法? “那么,这就是为什么你调用addActionListener方法。在列表中,调用
按钮。 addActionListener方法(本);告诉事件处理线程,“把这个代码的actionPerformed方法放到你要调用的方法列表上。每当按钮被点击,调用这个代码的actionPerformed方法。 “
所以,这就是它的工作原理。为了让计算机调用一个actionPerformed方法,可以使用Java的事件处理线程注册该方法。你可以通过调用addActionListener来完成这个注册。 addActionListener方法属于您正在等待的点击(和其他事件)的对象。
在列表中,您正在等待按钮对象被点击,并且addActionListener方法属于该按钮对象。