求职日记|双非Java秋招过程
6567
2021.09.30
2021.11.14
发布于 未知归属地

本人情况:双非学院,软件工程专业,大学期间没有参加ACM(大一想进但实力不够),也没获奖经历。主学Java语言。
伴随着秋招渐入尾声,来总结一下面经,大概是从今年三月份开始找实习到现在参加秋招的求职历程总结。

春招提前批
3月6日:人生中第一次面试,支付宝IOT。当然紧张的自我介绍都不会,结果可想而知。
4月4日:腾讯笔试
4月6日:腾讯一面。问的内容挺多的,但是技术栈是C++,因此没问Java相关的,就根据博客开始问操作系统,数据结构算法,数据库这些。最后还是基础不牢固,吃顿饭回来就出结果了,凉凉。
5月份大多是做笔试,投简历,但是投完或笔试完基本都没有回应,要不就是简历直接不过。所以当时做好最坏的打算,投外包,投创业小公司,当时市面上招聘App倒是基本用了一遍,没什么效果。
6月1日,企家有道一面。
6月2日,企家有道二面。
6月3日,企家有道HR面。面过之后就发offer了。
6月7日,普元一面。
6月8日,普元二面。
6月9日,万物心选一面。
6月18日,万物心选二面。
6月21日,滴滴一面(当时还在自习室刷题呢,后来就改时间了)
6月22日,滴滴二面
6月23日,滴滴HR面

7月份的时候和我合租的室友已经开始投递提前批了(大多数企业的提前批无笔试),但是无奈的是提前批实在太卷了,大多数都是简历没过。

7月22日,最右提前批简历挂。
7月26日,字节飞书提前批简历挂。
7月31日,腾讯,贝壳,爱奇艺简历挂。
8月17日投递转转,同时收到有赞的笔试邀请。
8月22日,思特沃克笔试。
8月25日,茄子快传笔试,同时有赞笔试挂。
8月28日,思特沃克一面,结对编程。晚上zoom笔试。
8月29日,字节抖音部门笔试,挂。
8月30日,茄子快传一面。
9月1日,小米笔试。
9月2日,思特沃克二面,养鱼
9月4日,度小满三轮面试+快手一面,过。
9月7日,转转一面+滴滴转正一面,过。
9月9日,度小满OC,快手二面,过
9月13日,转转二面,挂。
9月15日 小米一面,过
9月15日 滴滴转正二面
9月16日 京东物流一二面,过
9月17日 小米二面,滴滴转正三面,过
9月19日 茄子快传二面,过
9月22日 滴滴HR面
9月23,快手HR面
9月26日 微店一面,挂
10月21日,涂鸦一面,过
10月22日,字节一面,挂
10月27日,蘑菇街一面,挂

支付宝IOT实习一面

上去先怼项目,说说沙箱支付私钥和公钥的作用。
加密算法了解多少。
对称加密和非对称加密的区别
SpringBoot的启动流程 (当成Spring了,尴尬)
MySQL联合查询
数据库表设计流程
HashMap1.7和1.8
开源项目了解哪些
参加过ACM吗

腾讯云实习一面凉经

缓存的作用,图像识别算法有没有了解???
动态内存分配
什么是虚拟内存
进程和线程的区别
进程间通信方式
线程间通信方式
线程如何保证同步?
CAS的底层实现?
CAS如何保证AB两个线程修改共享数据同步?
new和malloc的区别?
MySQL怎样加索引?
使用哪些索引?
最左前缀匹配原则?
幻读如何解决?
next-key是什么?解决了那些问题?
行锁和间隙锁又是用来解决什么问题?
前缀索引?
做三道题
二叉树高度
最长递增子序列
二分查找输出重复值的范围,边界怎样处理

万物心选实习一面

接受转语言吗?PHP
TCP 和UDP区别
TCP如何保证可靠(重传机制,流量控制,拥塞控制)
传输包丢了怎么办,有哪个字段是验证这个的? CRC循环冗余校验码?
DNS怎么解析域名的,基于UDP还是TCP,UDP,端口多少53
本地hosts文件-》本地域名服务器-》根域名-》顶级域名-》二级域名
content-type有哪些类型(没说几个)
请求头有哪些内容(说了协议版本,请求方式,content-type,content-length)
进程,线程区别
进程的状态
用户空间和内核空间?
进程通信方式(匿名管道,有名管道,消息队列,信号,信号量,socket)
虚拟内存
什么是线程安全,如何保证
线程安全的集合类(ConcurrentHashMap,CopyOnWriteArrayList,HashTable)
数组中删除重复元素
链表和数组的区别
快排的原理以及过程
redis常用命令
一次执行多个命令该怎么做?
redis数据结构有哪几种
redis存验证码?token,怎么存?
数据库设计了哪些表
权限控制是怎么做的
最后问学习上有什么建议?

万物心选实习二面

nginx处理客户端请求到分发给服务器的过程说下
nginx为什么高性能?
看过nginx底层源码没?
nginx为什么选择多进程而不是多线程
进程相比于线程为什么说好管理
还了解过哪些网关?
一个线程访问内存出现了空指针会影响同一个进程下的相关线程吗
client能开多少个连接,能修改吗
项目做过压测吗?需要注意哪些
还问了查看CPU核数的命令,查看内存占用情况命令,查看磁盘情况的命令?
内存crash之后对进程有影响吗?
IO多路复用有哪些模型
epoll相比于select的优势
水平触发与边缘触发的区别
Linux内存页多大?与什么有关?
一台机器的内存是4G,如果malloc申请8G会怎样?
序列化有哪些方式
负载均衡算法有哪些
一致性Hash的原理
平时怎么学习的?
团队合作遇到分歧怎么解决的?

滴滴实习

先问了项目,RPC框架。
RPC协议和HTTP,TCP的区别
HTTP作用在哪一层,HTTP作用在哪层,TCP呢,RPC?(后来查资料RPC如果按OSI七层网络模型中是属于会话层,如果按照平常使用的五层网络划分是在应用层)
TCP主要干哪些事(流量控制,网络拥塞控制,消息重传,滑动窗口);
网络中数据包的传输过程,大概从应用程序发送数据包,经过应用层,传输层,网络层,数据链路层,物理层这些的作用讲了一遍。
网络分层的好处有哪些?
然后开始问一致性HASH算法的实现细节,怎样设计好hash算法,有没有比较节省空间的方法。
问了RPC实现哪些功能?SPI机制,动态代理,序列化,Netty网络IO
进程和线程的区别?
协程呢?进程有哪些东西是线程没有的?PCB?
线程结合了JVM中线程私有的区域(虚拟机栈,本地方法栈,程序计数器)说了一下,又说了JMM中对于共享变量的读取,写入。
问设计一个数据结构,要求查找O(1)复杂度,且是有序的,这个想了半天没想出来
最后开始做题
括号匹配(https://leetcode-cn.com/problems/valid-parentheses/)
最短路径和(https://leetcode-cn.com/problems/minimum-path-sum/)
6.22二面
问你学计网和操作系统哪个成绩高点?

  • 四次挥手的过程
  • Time_wait的作用(两个作用)
  • 说说用过哪些web服务器?Tomcat?Nginx
  • 什么是反向代理,正向代理
  • Nginx的负载均衡算法?ip_hash url_hash 加权,轮询
  • Nginx的惊群效应?(这个真不会)
  • Nginx的限流策略(令牌桶,漏桶)
  • 设计一个限流策略
  • Redis为什么这么快
  • Redis数据结构有哪些
  • Redis的zset底层实现为什么是跳表?
  • MySQL索引数据结构怎么不用跳表?
  • Redis的持久化机制
  • SDS相比于C语言自带的字符串有什么优势(空间预分配和惰性空间释放)
  • 开始操作系统
  • 虚拟地址和物理地址的联系
  • 页式存储和段式存储的区别以及作用
  • IO多路复用(epoll,select的区别)
  • linux零拷贝有哪几种实现方式(mmap,sendfile)
  • 算法题:大数相加
  • 智力题:36匹马,6个跑道,求取出前三名最少跑几次?

度小满面试+快手一面

接口和抽象类的区别
Redis IO你了解多少,有没有看过源码,水平触发和边缘触发有什么区别,Linux使用epoll,那Windows和MacOS呢;
epoll的底层是怎么做的,红黑树+链表?
MySQL为什么不用B树,联合索引(a,b,c,)ac能用到索引吗,回表是怎么回事,分库分表是如何做的,分库的目的是什么,分表你们用的什么方法?
事务的隔离级别(RR级别下真的可以解决幻读吗),如何创建索引,事务的四大特性,Java的HashMap的源码,什么时候扩容,put的流程,扩容流程。
Spring Bean的创建流程,SpringBoot的启动流程,MyBatis的#和$的区别。
Zookeeper和Eureka的区别有哪些,Maven用命令怎么查找一个jar的依赖,Git合并分支,
ConcurrentHashMap1.7和1.8的区别,Redis分布式锁的实现,Redis的数据结构以及应用场景,
Http请求头有哪些参数,Linux目录下查找一个包含指定字符串的文件路径,
JVM新生代垃圾回收器有哪些,JVM垃圾回收算法有哪些,
volatile,static,final底层实现,synchronized和ReentrantLock的区别。还问线程池7大参数以及作用,为什么要有线程池,线程池的优点,线程池的执行原理,AQS的获取锁,释放锁的流程。
算法:删除倒数第k个节点,合并有序数组,数字转字符串(2021转成两千零一)
如何实现延迟消息的消息对列,问我看没看过rocketMQ的源码?
评价是深度建议提升一下,去看看redis,mq这种中间件的源码。。

快手二面

TCP的可靠的怎么保证,滑动窗口的过程,一个数据包从发送到接收的最短时间是多少(假设从客户端到服务器发一次是100s)
假设现在有一个直播间,我想提取出来精彩时间(精彩时间是指30s内,用户评论数大于等于30)该怎么做
写到算法题,两数相乘(传入list和target,返回所有满足A*B=target的数组)
扩展:给你一个内存是4G,但是有个数据文件是100G,你怎样通过上面的算法计算出最后的结果集。(分批载入,多线程(问题是A线程负责的数据乘积是在B线程负责处理的集合中,这该怎么办),最后面试官说了使用bitmap或者布隆过滤器先过滤掉不符合条件的数据,缩小数据再思考处理方法)

转转二面

Java字节流转换成字符流的类(InputStreamReader和OutputStreamWriter)和相关设计模式(装饰者和适配器)
Netty相关的容错,监听机制,重发策略(当发送方给接收方发送的数据包有信息缺失的时候该怎么办?)
Zookeeper的存储结构,粘包半包问题如何解决,SPI机制的理解,JDK递归栈的最大深度默认是多少,
Netty如何修改默认的多路复用机制,负载均衡算法,零拷贝,序列化的区别以及应用场景。
MySQL中Drop和delete的区别

涂鸦智能

Java基础:
ConcurrentHashMap的底层实现,1.7和1.8的区别。
AQS,volitale和synchronized的区别,Java内存模型。缓存一致性协议,锁升级的过程。
哪些对象是存储在栈上的,有木有了解逃逸分析。
BIO,AIO,NIO的区别。
reactor和proactor模式的区别
数据库
索引的实现,四中隔离级别,事务的四大特性,redolog,undolog,binlog的作用以及区别。
索引下推了解吗?什么是回表?
布隆过滤器的实现,一致性hash算法的实现。
epoll,select,poll的区别。
Spring IOC的设计思想以及优势。

字节互娱

进程和线程的区别与联系
线程为什么相比进程轻量
程序启动发生了什么
操作系统内存的区别(这里不清楚向具体问啥)
进程间的通信方式,
CPU什么情况下会暴涨,为啥负载会增加
为啥会有系统调用,系统调用的作用和实现
数据库主键的特点?为啥不能重复
B+树如何保证有序
索引优化,explain分析SQL以及字段的含义
HTTPS能防止中间人攻击吗?为什么
为什么需要四次挥手
智力题:割绳子
算法题: https://leetcode-cn.com/problems/minimum-window-substring/ 最小覆盖子串
整体下来感觉沟通很难,第二天就收到了感谢信。

感想

从开始没面试机会到找到实习再到参加秋招,这段时间确实学到很多东西,当你没机会面试,或者被笔试打崩溃的时候别怀疑自己,心态最重要,提前批看着校招交流群里大佬们疯狂收割offer,心里肯定是有点酸的,当时压力也是很大,不过最后想想,再nb的人最后也只能去一家企业,那些被占用的HC还是会被放出来的。所以不到最后一刻肯定还有机会的。一般校招流程是,投简历=》发笔试=》技术面=》HR,大厂笔试很难,基本全是算法,一般在钮克或者赛码网进行,可以提前了解下输入输出格式,笔试一般还有基础题(选填),提前批有的直接免笔试直通面试,对了,内推不是说一点没用,但是找个靠谱的内推很难(建议直接找组内直推的,但是这种可遇不可求),一般投简历可以在Boss,官网,找实习可以试试shixiseng,的投递流程很慢,建议直接官网。秋招感觉就是一种玄学,遇到对你感兴趣的面试官可能会多聊一会,反之凉的几率比较大。关键就是调整心态再继续冲,秋招没offer还有春招,继续加油吧!

评论 (8)