《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门,即可获取!
1. java回调机制
回调方法的理解:
例子:
消防员给出一个电话号码119(这是每个人都知道的,119就相当于Java中的一个接口),并在每一个地方都设置一个发生火灾时的检测装置,如果危急到人们的人生安全时,那么市民就可以打119给消防员让消防员来处理。
分析:
消防部门给出的号码119就相当于是一个接口,发生火灾后,市民打电话叫消防员这个动作就是回调。回调的意思就是说:消防部门给我们一个火警电话,发生火灾时我们就可以用这个号码给消防员打电话,但最终处理问题的不是我们自己,而是消防员。我们就相当于是一个信息反馈者,只负责给消防员反馈信息,最终该处理者还是消防员。如下图
回调方法是把功能定义和功能实现分离的一种手段,是一种松耦合的设计思想。Android中的控件响应就是利用了回调方法。
模块之间总是存在这一定的接口,从调用方式上看,可以分为三类:同步调用、回调和异步调用。同步调用是一种阻塞式调用,也是我们在写程序中经常使用的;回调是一种双向的调用模式,也就是说,被调用的接口被调用时也会调用对方的接口;异步调用是一种类似消息或事件的机制,解决了同步阻塞的问题,举例来讲:A通知B后,他们各走各的路,互不影响,不用像同步调用那样,A通知B后,非得等到B走完后,A才继续走。回调是异步的基本。
2. 代码实现
- I119_CallBack.java
package com.callback.test;
public interface I119_CallBack {
// 回调方法
public void callBack_119(int num);
}
- Call119Listener.java
package com.callback.test;
public class Call119Listener implements I119_CallBack{
/**
-
回调处理方法
-
如果是119,消防人员出动
*/
public void callBack_119(int num) {
if(num==119){
System.out.println(“—>消防员出动.”);
} else {
System.out.println(“—>不在119职责范围内,请联系其他部门.”);
}
}
}
- Caller.java
package com.callback.test;
/**
-
电话设备
-
@author GeekHou
*/
public class Caller {
// 回调实现类,相当于手机卡或者电话线
private I119_CallBack callBack;
// 座机
public Caller() {
}
// 座机还需接上电话线,对吧
public void setCallListener(I119_CallBack callBack){
System.out.println(“—>座机”);
this.callBack = callBack;
}
// 手机
public Caller(I119_CallBack callBack) {
System.out.println(“—>手机”);
this.callBack = callBack;
}
// 拨号报警
public void callPolice(int num) {
System.out.println(“—>拨号:”+num);
callBack.callBack_119(num);
}
}
感受:
其实我投简历的时候,都不太敢投递阿里。因为在阿里一面前已经过了字节的三次面试,投阿里的简历一直没被捞,所以以为简历就挂了。
特别感谢一面的面试官捞了我,给了我机会,同时也认可我的努力和态度。对比我的面经和其他大佬的面经,自己真的是运气好。别人8成实力,我可能8成运气。所以对我而言,我要继续加倍努力,弥补自己技术上的不足,以及与科班大佬们基础上的差距。希望自己能继续保持学习的热情,继续努力走下去。
也祝愿各位同学,都能找到自己心动的offer。
分享我在这次面试前所做的准备(刷题复习资料以及一些大佬们的学习笔记和学习路线),都已经整理成了电子文档
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门,即可获取!
题复习资料以及一些大佬们的学习笔记和学习路线),都已经整理成了电子文档
[外链图片转存中…(img-6f1Nwfz2-1714443901218)]
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》,点击传送门,即可获取!