前言
今年9月10月份,每天苦逼的刷着群里更新的面试题,逛着群文件里面的大厂面试,每天的心情就像一个一首歌,“山路十八弯”。点击此处免费进群,暗号:CSDN
看过别人发的腾讯大厦,幻想过腾讯大厦向外看的感觉。
大一暑假去过阿里杭州园区,担忧自己有没有机会再去。
真的没想到迷茫中的自己等来了腾讯,又迎来了阿里。
终有一天,梦想实现,想起阿里园区中的一句话,“谢谢那个曾经努力的自己”。
面试情况
腾讯(WXG微信支付)
投的是CSIG云产业群,意外的被WXG微信组捞起,感谢机缘巧合吧。
腾讯简历面(编程 + 33分35秒)
- 记事本里手写OOP实现一个签到的程序。
- 从一堆数字中O(n)找不重复的数字。
- 字符串处理,魔改KMP。
- 数学智力题,64匹马取前8,问最快要几次。11次。
- 简历面,问项目做了什么,主要的技术栈。
腾讯一面(41分38秒)
- 深入问了我项目。
- 线程池,连接池,各自优点。
- Java常见设计模式。
- 讲讲builder建造者模式。这个答的不太好。
- TCP/UDP区别,什么时候该用什么。
- UDP实现TCP。
- 设计一个APP,TCP/UDP具体运用。
- 数据库索引,数据库引擎。
- 学习方向,我说C++/Java/Python比较均衡。
- 科技创新立项都做了什么。
没给我机会问问题,大概还是我太菜了。
腾讯二面(视频面试,75分钟,主要是写代码)
- ACM复杂规则模拟。这里可以用Java责任链模式,但当时问的时候我没有答出来,看过忘记了。
- Java GC。开始背诵balabala。
- 双亲委派机制。
- 产生死锁的四个必要条件:
- 互斥条件:一个资源每次只能被一个进程使用。
- 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。
- 不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。
- 循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。
- 独占锁,共享锁和更新锁。
- 还有什么想问的。问了下技术氛围和学习情况。
- XSS注入攻击了解不。答不会。
- SSH登录,我说了半天,对面说这个方法叫什么。想了一下,非对称加密。
- 实现一个人脸识别软件要多少工时?
- 说实话,这一面面的我快自闭了,有些看过就忘了。
腾讯三面(微信语音的)
- 进程调度,进程状态切换。
- 怎么用Java/C++实现线程池,具体的做法。
- Spring框架,ORM框架Hibernate讲讲。
- IOC, AOP,IOC(控制反转)和DI(依赖注入)有什么不同,Java反射机制。
- 适配器模式(Adapter pattern),桥接模式(Bridge pattern),组合模式(composite pattern)
- 主要问我想做的技术方向。
- 介绍腾讯的部门和人员划分等。
- HDFS, Paxos***协议,zookeeper和redis一点点。
- 口头offer
阿里巴巴
阿里一面(38分50秒)
- 自我介绍+项目介绍。深度学习,SSH框架,C#,Java
- 看你提到了连接池,druid连接池。
- 常见排序算法。快排,二路归并,冒泡,插入,锦标赛排序。topK问题。
- TCP三次握手,四次挥手。
- 数据库引擎对比,索引。Innodb,Myisam和Memory对比了下,B+树,hash,between操作,left join操作。
- 看你搞ACM,你给我讲个简单的数据结构,答了并查集和线段树。
- 怎么保证多线程操作的原子性。原子类,锁,volitile部分操作。
- 深入问了乐观锁,悲观锁及其实现。我提了CAS, ABA但是不问我hhh。
- Python机器学习基础。
- 怎么解决依赖问题。
- zookeeper锁,数据库隔离级别。
- docker隔离部署问题。
- taobao查询排序要考虑那些因素?这个问题贼困难了,能说的东西很多,估计是看了我简历上机器学习,答了过往消费记录,搜索记录,协同过滤,聚类。
- 有什么要补充的呢,要考虑商家那边的情况,balabala。
- 还有什么想问的。
总结:问的问题很碎但是很全面,很容易看出一个人的基础掌握程度。
阿里二面(45分39秒)
- 自我介绍+项目介绍。深度学习,SSH框架,C#,Java
- 项目中你相比于别人的优势在哪里,就是你用了别人没有的东西。
- 你觉得你的能力大概在什么方面。ACM能力。当时以为要我敲代码了。一边说话一边开机。
- 你是如何进行学习的?
- 画一个软件的执行流程,UML, ER。
- 有没有写过开发文档。
- Java怎么加载类,加载验证准备解析初始化使用卸载,双亲委派机制。bootstrap class loader,extend class loader具体。
- linux常用命令。iftop,netstat,htop,apt,yum,source,corn,docker等等。
- 讲讲docker。
- MVC,MVVM对比。
- Spring的IOC, AOP。
- ORM框架Hibernate讲讲。
- 设计模式了解吗?
- 还有什么想问的。
总结:这一面中规中矩,没有问很难的问题,只要确实尝试过简历上所说的内容,应该都可以答出来。
阿里三面(leader面 18分59秒 + 24分53秒)
- 提前一天预约
- 告诉我今天面试40分钟左右,包括自我介绍,技术知识,项目经验。
- 自我介绍。奖学金,ACM,深度学习,传统项目开发,负载均衡优化等。
- 你维护的CSDN和Github主要内容,刷ACM题情况。
- 你的哪块基础知识比较好一点?每块都很平均吧。。。
- TCP如何在不可靠网络传输上实现可靠传输?超时重传,滑动窗口。TCP状态。
- TCP超时时间,RTT怎么计算。
- 4G切换Wifi时候TCP怎么实现流量变化?分组丢失,快重传,快恢复等。路由器交换机排队。
- 常见的TCP优化算法。TCP拥塞算法,答了谷歌BBR和锐速的原理以及简单实现。
- 操作系统linux内核对TCP优化的办法,HTTP1.0,1.1,2.0每个版本做的更新。状态100,host字段,谷歌浏览器6个TCP连接等,支持长连接。
- HTTP中cookie和session的区别。客户端服务端,表示用户的方法,禁用cookie时候怎么办。
- 在上一条的基础上拓展答了Redis.
- session存的数据结构,对于单个用户set,多个用户hashmap。
- hashmap的原理,key-value计算,冲突解决的三个方式。和二分时间复杂度对比。rehash造成环。
- hashtable线程安全嘛,讲讲线程安全具体实现。
- conCurrentHashmap和Hashmap性能上除了分段锁还有什么别的优化。我只回答了段内扩容。
- 高并发场景下hashmap使用,CAS,ABA问题。
- 并行和并发的概念和区别。时间片,上下文切换。
- 数据库范式,NoSQL了解过吗?
- UML图,ER图,流程图。
- 数据库的索引,最左前缀,abc三个主键。
- 跨表查询常见优化思路。
总结:此人说话很有条理性,一听就是大佬,全程在敲面试记录,综合体验还是很不错的。
阿里四面(交叉面 天猫超市)
-
自我介绍,介绍完了又让我确认了一遍 专业,学历,电话确认。(?)
-
讲讲你的ACM经历。
-
你有考虑过考研嘛?可以在企业中学到更多吧。开始迷了一会儿,听不清对面说什么。
-
对比一下考研和工作。
-
怎么平衡工作和休闲的时间。
-
你在深度学习项目里面做了什么。看过花书,西瓜书,机器学习导论。
-
这个项目可以用到哪些方面,夜间摄像头,老照片修复等等。
-
你了解Java开发框架嘛?SSH,SSM。扩展了dubbo,durid,rocketMQ,Netty。这个问题我答的太多了,磨蹭了蛮久。
-
volitile保证内存的可见性,禁止指令重排,***。
-
内存屏障。直接说不知道,大神我真的不懂啊。。。
-
讲讲rocketMQ,优先级队列,Filter,Persistence,Reliablity。
-
消息的一致性怎么做。保证幂等性。
-
回溯消费。回溯消费是指Consumer已经消费成功的消息,由于业务上需求需要重新消费。
-
wait(), sleep()区别。yield方法。
-
lock和synchronized对比。
-
可重入锁,偏向锁,锁粗化。
总结:问题都很不错,很全面也很深入。奈何本人太菜,答错了几个点。
阿里HR面
- 自我介绍开局缓解尴尬。
- ACM,学习的内容,论文情况。
- 学习方法,实践方法。
- 初高中算法竞赛和大学竞赛有什么不同。
- 你怎么自学法。
- 怎么平衡工作和学习。
- 花书,机器学习导论主要讲了哪些内容?讲的比较浅层,但是HR反问了一个点。(HR也懂技术,大雾)
- 你带领的计算机社团在大学期间的贡献。
- 社会实践方面“十佳团队”,整个活动内容,流程讲讲。
- 其他常规问题。
- 想问的,部门人员情况。
总结
在3月中的几天,每天都担心被捞起,接不到面试电话怎么办?没谈好挂了怎么办?为什么自己还在简历池?
为什么别人不如我都能上岸。其实还是因为自己不够强,想明白了又滚去学习了。在这里也整理了很多的学习资料,需要的可以点击此处免费领取,暗号:CSDN