拼多多面试被薄纱
时间线:4.18笔试,4.19发邮件约4.22面
服务端24暑期实习
1.自我介绍
2.职业发展方向?(考虑到pdd用java,专门提了觉得语言无所谓,能将业务逻辑转换成计算机能执行的二进制代码就好...)
3.面向对象设计的基本原则有什么认识?(我是golang选手....自己写项目也不咋用建结构体然后绑定方法那样...面试官也说他对golang相对不太熟....我就说了面向对象三大特性,后面开始扯最后不要多继承...要不然业务关系不清楚什么的...还一时间想不出要说啥居然说了鸭子类型少出现什么的....)
4.对设计模式有了解吗?(不了解...就说了之前有了解过单例模式、工厂模式那些....但时间太久记不太清了,似乎这里及以上是面试官在考察我能否快速转java的可能性,但都可惜对于相应的答案不熟...感觉基调似乎就定了...)
5.进程切换的步骤?(答了进程状态切换那一块...)
6.有更细节的说明吗?让渡CPU的时候具体是做了哪些事情?以及新运行的进程是怎么占到CPU的?(答了涉及内核中的系统调度,可能有相关的函数...)
7.那进程之间是相互隔离的,内核态却同时有A进程和B进程的权限,怎么理解的?(答了可能内核中有某种容器...然后操作系统通过某种算法实现CPU的回收与给予...后来直接说自己对内核那一会的具体实现逻辑不熟了...)
对于这个问题:chatGPT是这样答的(不过感觉这个答的挺空洞的...希望有大佬能分享一下答案或者想法)
在操作系统中,进程是操作系统分配资源的最小单位,每个进程都有其独立的虚拟地址空间,它们之间是相互隔离的。也就是说,一个进程无法直接访问另一个进程的内存空间或资源。
当一个进程执行系统调用时,它会切换到内核态,此时进程会将自己的权限传递给内核。内核会根据进程传递过来的权限,来决定是否允许该进程进行某个操作。
因此,当内核同时有多个进程的权限时,它会根据进程传递过来的权限来判断每个进程能够执行哪些操作。虽然内核同时拥有多个进程的权限,但是内核会根据进程传递过来的权限来进行访问控制,从而实现对进程之间的隔离
拷打项目
8.大致分了几个模块?
9.在哪些部署的?(没部署,就答了在本地实现服务实例)
10.描述评价功能的细节(我用一个列表存储的评论)
11.当评论数和评论量特别大的时候,怎么办?(我答了增大机器数量..增大存储能力,但其实我确实表结构本身设计上就有问题,面试官就举了个场景来论证问题了,我直接唯唯诺诺说下去再优化...)
12.做题,大概就是实现一个数据结构,模拟实现手机中各APP的切换、打开、杀死的功能,具体有四条准则
我是用循环队列实现...大概花了六七分钟,但一开始切换功能没实现好,被面试官指了出来
后来把切换实现了,但涉及到两次扫描查找,时间复杂度O(n2)了,我就说二分查找+快排,面试官说时间复杂度还是大,再说维护一个有序数组,新元素进入时就插入排序(这里感觉乱答了都...),最后说用一个map存储已经出现的元素的索引值,后续再打开这个app的时候kill掉原来的那个索引位置的值就好,找索引复杂度就O(1),但涉及到队列前移,又是O(n)....面试官说大数据量的时候就太慢了,后来想了2分钟也没想到能O(1)的方法,可能用循环队列实现基础想法就不太快吧....然后面试官说时间差不多了...
面到这我就感觉基本秒挂了,提问的就关于学习指导和面试指导了
最后自己总结是,项目还是自己得完善一下,感觉面试官报告最后的反问环节,还是说自己写的项目和实际场景差别还是很大,还有就是这一个星期基本每天都有面试或者笔试...有些疲惫,在整体状态上也不太好,同时建议还在找实习的各位,一定要睡好...
#如何判断面试是否凉了##24届实习生##我的实习求职记录##拼多多#