微派

收藏
游戏
500-999人
B轮
武汉
查看官网
上传简历
职位类型
全部
最新
热门
09-16 16:53
门头沟学院 C++
微派一面 安卓客户端先拷打了项目1.retrofit底层2.okhttp请求有同步和异步,两种有什么区别3.拦截器是通过什么设计模式实现的(责任链模式)4.责任链模式是什么,和平常使用的什么数据结构比较像5.okhttp底层原理,比如连接复用和缓存6.okhttp的缓存是用哪种数据结构存储的7.为什么要三次握手和四次挥手8.http属于tcp/ip协议里的哪一层9.http底层是用哪种传输协议10.tcp属于哪一层11.tcp和udp有什么区别12.为什么觉得游戏适合使用udp13.如果网络非常差,udp的优势岂不是发挥不了14.retrofit如何通过注解实现网络请求15.如果有两个接口会生成不同的实例对象吗16.动态代理有什么优势17.http的get和post方法有什么区别18.get想查询,数据是怎么携带的19.post如何携带20.拷打了一嘴项目21.recyclerview和listview的区别22.recyclerview和adapter有什么关系23.recyclerview底层的缓存机制24.这种缓存是通过什么数据结构实现的25.listadapter26.notifyDataSetChange()和notifyItemInserted() 、 notifyItemRemoved()有什么区别27.diffutil28.diffutil暴露给用户最重要的两个接口29.glide比其他的有什么优势30.glide如何绑定生命周期31.activity和fragment的生命周期在glide里有什么区别32.onstop和onpuase有什么区别33.依旧拷打项目34.比如列表里有很多item,我想把livedata绑定到viewholder里,实现要注意什么35.livedata有监听和取消监听,为什么要取消监听36.在viewholder的bind的时候注册了观察者,应该在什么时机取消监听37.mvvm和mvi38.协程和线程有什么区别39.协程底层是线程吗40.协程的挂起和恢复41.挂起的本质是什么(异步回调)42.handler原理43.handler和looper是1对1还是n对144.handler底层是用什么数据结构存储looper的45.数组和链表46.单链表和双链表47.栈和队列48.leakcanary底层原理49.什么是内存泄漏50.长生命周期和短生命周期对象,持有activity泄漏是属于长生命周期对象还是短生命周期对象51.leakcanary监控什么安卓组件52.leakcanary监控viewmodel是怎么注册的,有了解吗53.算法:给一个字符串数组,计算数组里不包含相同字母的最大长度乘积值,如果字符串里有相同字符,相乘的值为0
发面经攒人品
点赞 评论 收藏
分享
查看11道真题和解析
点赞 评论 收藏
分享
08-14 21:54
已编辑
中国地质大学(武汉) Java
1.那现在从产品的视角来分析一下这个世界频道的功能应该是怎么定义的世界频道(王者荣耀这类游戏的世界频道)以及讨论一下它的技术实现有什么难点2.有没有了解过类似于QQ的群聊QQ的群聊是怎么实现的3.那假设让你实现一个群聊功能服务器的逻辑是怎么样子的(或者说可以描述一下整个链路,就是客户端一个用户发了一条消息开始,完整的数据传输流程,流转流程是什么样子)4.那在这个过程中服务器的作用就是将收到的消息转发给其他的用户对吧那你能详细说一下这方面的细节吗(是怎么转发的)5.那假如现在让你设计让你设计一个QQ,你会怎么设计这样的一个整个的系统流程来保证在线的用户可以实时收到一个消息然后不在线的用户也可以在下一次上线的时候看到历史的群聊消息6. OK那刚才你提到了一个客户端接收消息的机制那这个应该是一个什么样的呢?(这个群聊里有ABC三个人,A发了一条消息然后服务器把这个消息推送给谁,那这个推送一般是用什么技术或者什么协议实现)[可以使用websocket或者简单一点的话也可以直接使用TCP]7.刚才我们有提到就是在线的任务和离线的那怎么区分在线还是离线呢?(它其实就是可以通过TCP的饭店接吗他只要一直连着我的服务器那他就是在线)(面试官告诉我的一个过程:在线的用户要能实时收到消息,然后不在线的用户在上面之后也要看到这个历史消息,所以简单的完整的时间流程就是当a发了消息之后,就把这个消息存到这个群所对应的数据表里,然后再对每个人维护一个已读状态,然后如果这些人在线的话就单独更新一下,比如状态为一组就可以同时通过在线的这个TCP长连接把消息给它推出去,然后那些不在线的人在上线的那一刻就可以根据他的这个所有未读的消息整体做一个拉取然后已读之后再给它标记为已读就可以)8.那从这种情况回到刚才所聊的世界频道那世界频道和群聊在功能和实现上会有什么不同的地方(我回答了规模,历史信息是否保留)9.客户端什么时候知道能够去拉取这条消息10.有点像是刷帖子的意思就是我打开刷新,然后就主动拉取一次最新的消息,那假如我现在就一直打开了这个页面了那最新的消息应该怎么去获得(这里我回答的一个机制类似于刷帖子一样,然后面试官问我如果我一直打开这个页面保留在那里,我该怎么获取最新消息)11.或者我们反问一下就是从最开始出发他到底是真的是世界频道吗?(我这里回答可能是频道是划分了多个小频道然后的话可以根据地区可以根据时间戳来去划分)12.Java的JIT是什么13. Java的一段源代码从你写出来到最终执行这段过程发生了什么(可以回答牛客的那个面试专题部分的内容)14. Java将源代码编译成字节码之后交给JVM,那么我们C++中会编译成可执行文件交给机器执行这两个流程之间有什么不同15.现在具体到一条赋值语句int a = 1+3;这条语句在C语言中编译成了二进制的机器码,然后直接运行这个程序然后在Java中编译成了字节码交给jvm,这两段运行的过程有什么区别16.Java的int和Integer有什么区别17.在这个转换的过程中有没有踩过什么坑(我回答了基本数据类型和包装类然后说了一下自动拆箱和装箱他就问在这个转换过程中有没有坑,我回答了如果自动装箱或拆箱的次数过多会导致性能不好)18.假如现在我们都使用integer那么两个之间的比较是使用==号吗?(围绕了equals()和==讲了一下)19.使用==比较integer的时候,明明两个内存地址是不一样的但是最终比较的时候是相等的(我回答了常量池这部分的知识)20.常量池是在哪里维护的(我回答了元空间(也就是堆))21.常量池我是怎么了解到的(我就回答之前遇到过相似的题目我就好奇为什么会这样子明明两个数相等但是比较出来的结果却是false进而去了解了常量池,还回答了常量池的作用)22.有没有看过关于Java的源代码比如说常量池部分的实现(我说我看过关于Redis部分的,就是使用Lua脚本部分,还回答了AQS部分,但是这个我是一带而过了)23.讲一下你看过的Redis的源代码以及收获(我这里就回答了我看过他底层的LUA脚本,Redis怎么去使用这个脚本来实现单线程以及其他的一些原理,锁的部分也提到了一点点(不过我确实有点忘记了))24.手撕题leetcode 523连续子数组和:给你一个整数数组 nums 和一个整数 k ,如果 nums 有一个 好的子数组 返回 true ,否则返回 false:一个 好的子数组 是:长度 至少为 2 ,且子数组元素总和为 k 的倍数。(我讲了一个思路,而且刚刚开始还理解错了)25.反问,没什么好说的,因为觉得自己肯定没了,也没多问
查看24道真题和解析
点赞 评论 收藏
分享
分享我的面试经验
模拟面试
真实面试体验,快速补齐短板
应聘感受
暂无应聘感受
牛客网
牛客网在线编程
牛客网题解
牛客企业服务