钉钉一面面经

#软件开发2024笔面经# 面试时间:118分钟
面试形式:电话面试
面试岗位:安卓客户端开发#面经##客户端面经##暑假实习#
面试内容:分为操作系统、计算机网络、算法与数据结构、个人项目及实习经历
一. 操作系统
1. volatile关键字的作用及原理
2. 为什么volatile不能实现原子性(这个地方我说了javaguide上面那个例子,但好像被反驳了说当变量被修改时会从主存中重新读取吧啦的,待我待会仔细查阅)
3. 操作系统怎么进行内存管理
4. 分段和分页的区别(这里答得稍微没那么好,感觉说了一些车轱辘话,不过操作系统确实一周没看了
5. 操作系统如何实现线程的调度,从源码出发(做过相关实验,所以还行)
6. 线程和进程的区别
二. 计算机网络
7. 输入url地址吧啦吧啦,这个里面面试官有插入问好几个问题(MAC和IP的区别,为什么还需要MAC,HTTP请求报文的格式)
8. HTTPS的加密协议的实现,具体的加密算法,为什么要进行对称加密而不是非对称加密
9. UDP和TCP的差别,以及如何实现可靠的UDP协议也就是QUIC
10. 安卓四大组件
11. 有点忘记还问了安卓啥了,生命周期那些叭可能
三. 算法与数据结构
12. 合并K个有序链表(笑死,昨天腾讯做了一模一样),最后写了三种方法,用堆排序,不用堆排遍历求最大,最后还问了分治法两两合并的思路(这里是发了链接让俺做的)这里大概二十分钟左右
四. 项目经历
13. MVVC、MVP、MVC设计模式的区别及各自优势
14. 问了十分钟实习经历(还问了一个为啥需要心跳检测,在长连接情况下)
15. 问了十几分钟分钟项目,这里感觉回答的挺一般完全跟着面试官引导说的,要自己好好总结一下项目的表述
五. 反问
16. 最后反问,问面试表现,问面试官要如何更好的表达,加上闲聊他们部门是做啥的聊了十多分钟

感觉面这么久可能主要是面试官好几个点都问的挺深的,不是直接回答套话就可以,面试官人非常nice,面试体验还挺好的,如果能顺利二面那就更好啦
全部评论
今天我面钉钉,面了一小时面经之后发现没有算法,结果面试官叫我下午再来之后写了一个半小时,一天笔试面试做了两个半小时谁懂啊
3 回复 分享
发布于 2024-03-28 19:17 新加坡
m
点赞 回复 分享
发布于 2024-04-17 00:38 湖南
为啥那么久
点赞 回复 分享
发布于 2024-03-27 19:35 江苏
噢还问了平时有看什么技术博客,以及看不看技术类书籍吧啦的
点赞 回复 分享
发布于 2024-03-27 18:32 广东

相关推荐

10-24 02:52
南京大学 Java
查看17道真题和解析
点赞 评论 收藏
分享
一、 开场及背景了解自我介绍:你可以简单地自我介绍一下吗?项目性质:所以这两个项目主要是你个人的练手项目,对吧?实习经历:中间有参加过什么其他公司的实习之类的吗?或者跟着导师/师兄做一些正式的项目?求职规划:为什么没有实习经历?是因为机会比较少,还是个人规划的原因?(面试官补充:因为计算机专业通常很看重实践经验,理论上机会也比较多)所以考虑实习这件事是比较晚的吗?同辈情况:你身边的同学(的求职/升学情况)呢?二、 技术问题:计算机基础CPU缓存:CPU周围的L1, L2, L3这些多级缓存,它的主要作用或者意义是什么?因为这些缓存的存在,如何保证数据的一致性?CPU缓存(追问):既然第一次访问数据需要从主内存加载到各级缓存,这是否意味着第一次访问反而会更慢?缓存的“预读”(prefetching)机制是指什么?(面试官举例:我只想读一个变量,但它把一整块数据都读进来了,这是为了加速后续的访问吗?)并发与锁:在并发编程中,自旋锁和互斥锁分别适用于什么样的场景?并发与锁(结合项目追问):在你的实际项目中,有用到自旋锁的场景吗?可以举个例子吗?(针对你回答的动态选择策略)所以这是取决于你要更新的缓存数量,动态决策使用互斥锁还是自旋锁吗?你是这么实现的吗?你有对比过这两种策略(自旋锁 vs 互斥锁)的性能差异吗?比如,缓存数量达到多少或者耗时多长,你会切换策略?那你当时的策略具体是怎样的?比如说,更新多少个缓存的时候会采用自旋锁?三、 技术问题:C++语言菱形继承:C++的多重继承会产生菱形继承问题,你可以描述一下这具体是个什么样的问题吗?采用虚继承的方式可以彻底解决这个问题吗?会不会带来任何其他问题?菱形继承(追问):如果我们继承的两个类(A和B),我们不确定它们背后是否有一个共同的基类,那是不是意味着最好总是采用虚继承的方式,以避免潜在问题?拷贝与移动构造:你了解C++的拷贝构造函数和C++11引入的移动构造函数吗?它们俩的差异和应用场景是什么?拷贝与移动构造(结合项目追问):在你实际的项目中也有使用过(移动构造/移动语义)吗?四、 技术问题:网络协议TCP挥手:为什么TCP断开连接是四次挥手,而不是三次?TIME_WAIT状态:TCP主动关闭方在最后一次挥手后,为什么要进入一个TIME_WAIT状态并等待一段时间?TCP替代方案:TCP的TIME_WAIT机制会延长连接释放时间。现在有没有一些新的协议(比如QUIC)针对这一点做了优化,既能保证正常运行,又能有更好的连接释放性能?QUIC协议(追问):QUIC协议是如何做到在1-RTT(甚至0-RTT)就完成连接建立的?五、 技术问题:数据结构与算法LRU缓存:你了解LRU(最近最少使用)缓存淘汰算法吗?请讲讲思路,如何实现一个高性能的LRU数据结构?(针对你的回答)链表部分你会采用单向链表还是双向链表?逻辑算法题(扔弹珠/鸡蛋问题):你面前有一栋100层的楼,你手上有两个完全一样的玻璃弹珠。从某个楼层往下扔,要么碎,要么不碎,且楼层越高越容易碎。现在要找到那个“刚好会碎”的临界楼层,你觉得怎么样能够最快地找到?(面试官补充:不碎的弹珠可以重复使用,碎了就没了)六、 反问环节反问机会:我这里主要就这些问题了,你看看你有什么想要问或者想要了解的吗?
查看30道真题和解析
点赞 评论 收藏
分享
评论
8
48
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务