淘宝客户端一面(第二次)
不得不说,不愧是淘宝,面的真的好难。
1、线程池底层创建的原理
2、lifecycle的原理
lifecycle是一种观察者设计模式,第一步是要注册观察者,观察者可以有多个,当被观察者生命周期变化的时候就轮询所有的观察者,把生命周期变化的事件一个一个分发给观察者。注册观察者是通过LifecycleRegistry实现的,通过addabserver函数添加到一个map容器里面。在activity里面绑定了一个空的Fragment感知和分发生命周期,Activity的生命周期执行的时候会对应的执行ReportFragment的生命周期方法。ReportFragment在生命周期方法中通过调用dispatch(Lifecycle. Event)方法分发的生命周期状态, 最终调用对应Activity的LifecycleRegistry对象的handleLifecycleEvent方法完成生命周期的分发。lifecycle中定义了状态机state,通过状态机我们就知道被观察者是因为执行了哪个生命周期导致了State状态发生了变化。在handleLifecycleEvent方法中先把执行生命周期后的state状态同步到lifecycle中。判断mState被观察者处于的状态,是不是比观察者保存的状态小,判断被观察者执行了什么生命周期方法,调用backwardPass或者forwardPass函数。然后遍历整个map容器中的观察者,调用观察者的diapatchEvent方法就能让观察者的onStateChange方法得到执行
3、handler postdeleay原理
延时消息会和当前消息队列里的消息头的执行时间对比,如果比头时间靠前,则会成为新的消息头,否则就依次遍历,寻找合适的位置插入延时消息。
4、HandlerThread原理
1、线程池底层创建的原理
2、lifecycle的原理
lifecycle是一种观察者设计模式,第一步是要注册观察者,观察者可以有多个,当被观察者生命周期变化的时候就轮询所有的观察者,把生命周期变化的事件一个一个分发给观察者。注册观察者是通过LifecycleRegistry实现的,通过addabserver函数添加到一个map容器里面。在activity里面绑定了一个空的Fragment感知和分发生命周期,Activity的生命周期执行的时候会对应的执行ReportFragment的生命周期方法。ReportFragment在生命周期方法中通过调用dispatch(Lifecycle. Event)方法分发的生命周期状态, 最终调用对应Activity的LifecycleRegistry对象的handleLifecycleEvent方法完成生命周期的分发。lifecycle中定义了状态机state,通过状态机我们就知道被观察者是因为执行了哪个生命周期导致了State状态发生了变化。在handleLifecycleEvent方法中先把执行生命周期后的state状态同步到lifecycle中。判断mState被观察者处于的状态,是不是比观察者保存的状态小,判断被观察者执行了什么生命周期方法,调用backwardPass或者forwardPass函数。然后遍历整个map容器中的观察者,调用观察者的diapatchEvent方法就能让观察者的onStateChange方法得到执行
3、handler postdeleay原理
延时消息会和当前消息队列里的消息头的执行时间对比,如果比头时间靠前,则会成为新的消息头,否则就依次遍历,寻找合适的位置插入延时消息。
4、HandlerThread原理
全部评论
相关推荐
07-20 02:09
南宁师范大学 Java DKS233:(1)专业技能:Java8也太旧了,最少也要了解到JDK17吧,可以参考现在SpringBoot支持的Java最低版本,熟悉mysql基本理论具体指啥,是锁这种具体原理还是分库分表这些业务场景,spring这些专业词汇,大小写要写对(全篇简历都有这个问题,显得不严谨),熟悉使用框架进行业务开发就别写了,如果要写,起码要写到框架原理部分吧,比如aop,启动原理什么的,springcloud具体指哪些模块呢,写清楚,网关还是鉴权还是什么,“改造”没必要写吧,你直接说用springcloud开发的不就行了(2)项目经历:首先格式就有大问题,时间怎么能换行呢,调整一下,响应速度那个,如果指的是将部分数据从其他数据库转到redis的提升就别写了,因为这个不算难点,redis可以写写分布式这些,比如容灾怎么实现的,数据库同步怎么做的
点赞 评论 收藏
分享