当前位置: 首页 > 面试题库 >

什么是Java中的回调

苏鸿志
2023-03-14
问题内容

我已经阅读了回调的Wikipedia定义,但仍然不明白。谁能解释一下回调是什么,尤其是以下几行

在计算机编程中,回调是对可执行代码或一段可执行代码的引用,该代码作为参数传递给其他代码。这允许较低层的软件层调用较高层中定义的子例程(或函数)。


问题答案:

也许一个例子会有所帮助。

您的应用程序想要从一台远程计算机下载文件,然后写入本地磁盘。远程计算机是拨号调制解调器和卫星链路的另一侧。延迟和传输时间将非常长,您还有其他事情要做。因此,您具有将缓冲区写入磁盘的功能/方法。您将指向此方法的指针以及远程URI和其他内容传递给网络API。该网络呼叫“立即”返回,您可以执行其他操作。30秒后,来自远程计算机的第一个缓冲区到达网络层。然后,网络层将调用您在设置过程中传递的函数,因此缓冲区将被写入磁盘-
网络层已被“回调”。请注意,在此示例中,



 类似资料:
  • 问题内容: 我想了解回调的概念。我在互联网上搜索了有关回调的信息,有很多使用接口的示例,一个类正在使用该接口调用另一类的方法。但是我仍然不能理解回调的主要概念,使用回调的目的是什么? 问题答案: 回调的概念是在另一个类中完成某些工作时通知类同步/异步。有人称其为好莱坞原则:“不要叫我们,我们叫你”。 这是一个例子: A类调用B类以在线程中完成一些工作。如果线程完成了工作,它将通过回调通知Class

  • 问题内容: 目前,我主要是.Net人员,但是最近我一直在使用Java进行游戏-探索其中的内容。 现在,我正在寻找WPF的Java等效项。我知道我可以在那里找到一个或两个OpenGL库,但这并不像WPF系统那样丰富或简单。 问题答案: 我认为JavaFX,Swing,Java2D和Java基于浏览器的JRE的结合构成了WPF提供的解决方案: JavaFX应用程序(实际上是任何Java应用程序)都可以

  • 问题内容: React.js为动画提供了一个低级API,称为ReactTransitionGroup。在文档中指出,对钩,和,一个回调函数作为参数传递。 我的问题是,此回调究竟是什么以及如何传递给这些钩子,文档没有对这些回调进行任何说明,只是将动画延迟到调用之前。 问题答案: 首先,我也仍在学习ReactJS,所以我的方法可能有错误,而没有错误。为此提前致歉。 打开“开发人员工具”的窗口,分析我刚

  • 问题内容: 除了让编译器检查超类是否具有该方法之外,是否有任何其他理由来注释方法? 问题答案: 如您所描述的,@ Override创建一个编译时检查,以确保方法被覆盖。这对于确保尝试覆盖时不会出现愚蠢的签名问题非常有用。 例如,我看到以下错误: 此类按编写方式进行编译,但是将@Override标记添加到equals方法将导致编译错误,因为它不会覆盖Object上的equals方法。这是一个简单的错

  • 问题内容: 我正在研究Java代码,我需要在其中实现线程。我正在通过JAVA 8 API,我了解了Stamped Locks。谁能告诉我为什么在多线程中使用StampedLocks? 提前致谢。 问题答案: StampedLock是使用ReadWriteLock(由ReentrantReadWriteLock实现)的替代方法。StampedLock和ReentrantReadWriteLock之间

  • 问题内容: 它们之间有什么区别? 是Integer类型的数组列表。 版本1: 版本2: 问题答案: 将返回,然后调用它将返回整数作为type 。 转换的到被称为 拳击 。 将转换为的操作称为 拆箱,依次 类推,以便在其他原始类型及其对应的Wrapper类之间进行转换。 从Java 5开始,它将自动为您进行所需的转换(自动装箱),因此, 如果您使用的是Java 5或更高版本,则示例之间没有区别 。