自我介绍
众所周知,越丰厚的offer审核得越晚,所以拿到两百万offer的我现在才来分享我的后端JAVA开发秋招总结。
个人背景:985中下游本硕,无大厂实习(小厂打杂),无竞赛,无相关论文,半科班(转计算机)。
拿到的offer: 腾讯,百度,字节,美团,老铁,shopee,VIVO,交通银行,招银,中国银行
几乎都是sp,3个ssp,年薪加起来超过两百万(原谅我这个标题党)
因为目标工作地点在广东,不喜欢去做游戏,所以网易等公司都没有投递,我也不喜欢海投,投了简历的就只有阿里挂了,华为泡了5个月还在泡?字节面了7次才过了,面试过程在这里。
对于银行(除了招银)来说,我的感觉是他们只看学历和笔试,每次面试都只问了1-2个问题。下文主要针对互联网后端开发的经验。
本科几乎没接触计算机,拿到这么高的offer讲真我是不配的,只能说是运气+面试的点正好都看到,面试面不出来的实力和本硕科班的同学是没法比的。
我推荐的学习笔记书籍download(DL):点击即可
经验总结
之前多找实习,大厂实习转正很多 (没早找实习,都是泪)
尽量早点去实习,积累多一份经验
实习海投,很多时候玄学进,因为实习生要求真的不高 (北京懒得去,失去了大厂实习的机会)
实习感觉没用尽早跑路,不要有心理压力,没人在意螺丝钉的离开
正式招聘尽量早做准备,越早越好
准备好再投,千万别着急,不然提前批挂了一定会影响正式批,面评一直都在
尽量早投递(准备好的前提下,看面经能答出70%以上),提前批sp ssp 的机会要多好多
不在意工作地点的话尽量选择总部或者岗位多的地方,比如字节北京深圳,阿里杭州,腾讯深圳,老铁北京,多多上海...像阿里广州,百度深圳hc少的很难进
不去的不要乱投练手,面试官风格都不一样,"练手“相当于浪费时间,但是如果你心态不够好,可以多面试锻炼
不着急拒绝offer,拿到offer提前去实习,不行就跑路
项目很重要,几乎每次面试都会让你介绍一个项目,但是不要讲烂大街的项目,很败好感
算法很重要,大厂面试算法题过了很可能就过了,一定要重视。
不要主动说没关的事情,无关的比赛第x名之类的面试官没提就别说了
面试前看看我之前的总结(智力题和面经),大厂很喜欢出几道智力题看看你的应变能力
面试重点
面试一般分成5个部分:自我介绍,做算法题,面试官问问题,介绍项目,反问。
自我介绍
面试前查一下公司资料,比如背后是阿里还是腾讯,竞品是什么,发展空间是什么,融资状况,业务范围....
建议自我介绍短一些,只说基本信息和相关的经历就可以,千万不要长篇大论。
简洁地突出优势,如 竞赛、论文、实习、学历、项目
最后可以加一句投递贵司原因,结合之前查的资料,适当夸一下公司,给他你真的像在这个公司工作的印象
算法题
很多时候会是leetcode变种题,建议不要背题,一定要理解做出来
基础入门 : 排序, 链表,图论,前缀树,递归
算法基础提升 : 哈希,并查集,有序表,字符串算法(KMP、Manacher算法),滑动窗口与单调栈, 二叉树与树形dp,大数据与位运算题目,暴力递归,动态规划
算法进阶中级班 :贪心算法,二叉树、搜索算法 ,动态规划进阶算法,模拟-LRU缓存结构,线段树,TopKRecord结构... 较难的算法
算法进阶高级版 :困难题讲解,各种奇淫技巧
问面试官拿提醒,比如时间复杂度最优多少,能不能提醒一下...
先和面试官沟通思路,不要马上写
写完分析时间复杂度和空间复杂度,写注释
讲代码要把其他想法也讲出来,例如 “或者可以用hash/二分....”
面试问题
回答一定要抓住重点,面试题不清晰可以先反问,不要自己补充一大堆(背这么多暴露了)
面试问题基本分为以下几点:
计算机基础: 网络(tcp、udp、http),数据库(MySQL),操作系统(Linux)... 这是大厂最看重的基础,对非科班来说,没时间就看看相关面经,有时间看书看视频,对科班来说复习下应该没什么问题。 【最重要】
Java基础:java基础语法,面向对象思想,集合Collection源码,juc, 网络编程,io , 新特性, JVM.... 这部分要求熟悉,可以看书,看视频,看博客。【很重要】
Spring全家桶:Spring (ioc、aop)全家桶,Spring Boot,Spring Cloud,Spring cloud alibaba 这部分要求会用,知道部分原理 【重要】
常用技术、框架:Redis,Zookeeper, MQ , Dubbo,ELK ... 这些需要结合项目,非必须但是是亮点,通常面试官会问你用没用过xxx, 你回答用过他才会深入问 【加分点】
常见工具: Maven, git , docker, Linux命令行 , vim ... 【锦上添花】
项目管理,设计模式 【加分点】
介绍项目
简单地说这个项目是干什么的,解决了什么问题,你的角色是什么,用到了什么技术,为什么选用这些技术
说一下项目指标,完成度...
说一下项目管理,敏捷开发有没有 之后面试官会根据你用到的技术深入提问
反问
问一下公司发展,部门业务技术栈,建议学习知识... 一般3个问题就差不多了
祝大家新年快乐,笔试顺利,面试顺利,谈薪顺利,实习顺利,工作顺利,加薪顺利,升职顺利,上岸顺利,结尾附上完整面经。
我推荐的学习笔记书籍download(DL):点击即可
面试面经(字节跳动 7 面 )
飞书 一二面:
个人经历
项目
了解NIO吗
IO模型 select和epoll的区别
拦截器,监听器和过滤器区别
RESTful 和SOAP
get / post 区别
怎么跨域
csrf 预防,http/dns 劫持
rabbititmp怎么解决漏发,多发? 持久化怎么整?
redis 和mysql区别
mysql设计表时怎么去提高性能
对称加密和非对称加密,RSA 具体说说
DES 和 AES 区别
HTTPS 证书是啥?加密内容?
可以伪造证书吗?中间人攻击能预防吗?
tcp怎么计算时间,RTT和RTO ?
UDP 伪首部多大,有啥,有啥用?
常见的拥塞控制算法 (BBR,RENO,BIC-tcp)
数据库范式 ?BCNF?第四第五范式?
索引失效什么情况?
怎么设计索引?
DBA不知业务的情况下怎么设计索引?
limit优化
联合索引最多多少个字段
数据库的事务隔离级别
mvcc机制聊一下
linux指令 Kill原理
tcp 异常处理,什么时候有RST,
什么时候有PSH URG 的包
爬虫对抗的解决方案
团队成员矛盾怎么办
怎么说服产品
怎么说服测试
和组长分歧怎么办
做题
飞书 三四面:
项目相关
Http1.1 特点,缺点
http2.0 特点,缺点
http3.0 特点,缺点
QUIC 特点,缺点
对头阻塞 tcp http的角度,分别讲一下
BBR 怎么快,怎么实现,和之前的有什么区别
tcp 选项有什么
tcp 首部多大
分片和分段区别
tcp半打开和半关闭的区别
udp 存在的意义
怎么线程通讯
多线程的创建,怎么退出线程,退出进程
线程池的参数
线程池的状态
死锁怎么预防
出现了死锁怎么办
银行家怎么实现
进程调度CFS
时钟调度算法
慢查询优化
ThreadLocal场景应用,spring里有用到吗
JVM 构架,垃圾回收
怎么设计一个日志系统
磁盘调度算法有什么
linux 文件系统架构
inode 有什么信息
LINUX 怎么找文件
Linux 怎么看端口,
看tw状态的进程load average 是什么,怎么看,怎么分析
linux 怎么做io检测
linux 不同发行版有什么区别
你觉得 linux 比win 好在哪
字节序,网络字节序是什么
需要主导项目怎么办
怎么设计测试用例
怎么总结工作
优点缺点
兴趣爱好
做题
技术中台一二面:
tcp,http,https等常见问题
项目人均秒杀,面试官不耐烦了
Innodb 是如何解决幻读的
redis cluster
16384为啥?
netty 模型
netty 优点
nginx 鲸群怎么解决
rabbitmq组建
dns欺骗怎么办? arp欺骗?CSRF攻击?xss攻击?syn flood攻击?应对方法
Spring Boot启动流程以及生命周期 https://blog.csdn.net/u011277123/article/details/104476683
spring 事务怎么实现
ipc哪个快
B树和b+树分别有啥作用
JVM的内存模型
GC回收器JVM调优参数配置
Java中各种锁聊一下,CAS机制
volatile有用过么,底层实现
数据库 有什么log ?
mvcc 的作用
事务的实现原理
做题
技术台三面 :
讲项目
ipc哪个快
B树和b+树分别介绍
Java中各种 锁
CAS
volatile
做题
腾讯 三面+hr面
一面:
java跨平台具体表现, 怎么实现
为什么选择java,和c++ 区别在哪里
介绍项目
网络编程具体调用
http版本区别
tcp和udp,怎样使udp安全可靠
tcp粘包? http 报文怎么读取,怎么区分head和内容
怎么跨域
对头阻塞讲一下
BBR 怎么实现
子网掩码是什么
C++继承和java 有什么区别
kafka 和rabbitmq 区别
kafka 为什么快,有什么优化
elasicsearch 分词器
垃圾回收算法,java 11 用哪种,有什么优势
lambda表达式意义是什么,java是动态还是静态
linux怎么看进程
Docker 原理
dockerfile copy add 区别
介绍docker-compose
介绍k8s
做题
二面:
做题
问项目管理,介绍scrum,kanban
讲项目,介绍团队,负责什么角色
特长是什么,实习有什么收获
问排名,问成绩,为什么喜欢篮球,为什么喜欢红色
CLOSE_WAIT和TIME_WAIT 区别
MySQL的存储引擎
内存泄露
大量数据找前50%
CAP是什么,BASE 是什么, 2PC 3PC 区别、
DNS 递归
飞机智力题
堆排
做题
三面:
讲项目
http和https的区别
死锁是什么
僵尸进程
孤儿进程
C++ java 范型区别
有没有女友
优点缺点
做题
hr面:
遇到不配合的队友怎么办
遇到不配合的上级怎么办
遇到不配合的下级怎么办
遇到不顺心的事情怎么办
遇到不友好的同事怎么办
遇到刁难你的面试官怎么办
美团三面
一面:
讲项目
io, 0拷贝
i++ 安全吗
Nat 穿洞怎么实现
单例模式写一个
快排写一个
jvm 类加载
java 各种锁区别
银行家算法
进程通讯
递归爆栈怎么办
hashmap 原理
currenthashmap原理
arrayblockingqueue 原理
写一个简单的arrayblockingqueue
二面:
讲项目
MYSQL 索引
数仓了解么,hadoop组件知道吗
网络层有什么协议,有什么作用
路由器在哪层
smtp端口,redis,mysql,zk默认端口
BIO 和 NIO 的区别
jvm 作用
jdk 常用分析工具
怎么处理内存泄露
linux启动过程
vim 怎么删除一行
shutdown -r 和reboot 区别
du 作用
inode 有什么
pcb 是什么。包含什么信息
职业规划
方向不一致怎么办
做题 leetcode 原题
三面:
讲项目
有什么offer
选择bat 还是美团 ?
Shopee 3面 (最难)
一面:
索引在什么情况下会失效
主从同步怎么做到,半同步说一下
mysql 分布式事务
binlog作用?
mysql锁?
mysql存储引擎区别,innodb底层实现
limit offset大的时候怎么优化?
redis 为什么高效?
redis 为什么16384 个slot
redis cluster节点间怎么通信
redis 主从同步步骤?
增量同步什么时候可以进行?
hyperloglog 作用?
布隆过滤器? 缺点?怎么改进?
epoll为什么高效?有什么缺点?
gossip协议?zab协议?
raft 讲一下?
paxos 讲一下,和raft 怎么选?
3pc 比2pc 不同在哪里?
雪花算法?怎么改进?
分布式事务?举个例子?
蓄水池抽样算法?
设计模式举例
讲项目
做题 约瑟夫环
二面:
项目
在主机和容器上部署应用程序有什么区别?
介绍一下Kubernetes中主节点的工作情况
docker 实现原理
Kafka 消息是采用 Pull 模式,还是 Push 模式?
Kafka 怎么提升效率?多讲一些
kafka 怎么保证消息不丢?怎么保证有序?
kafka 怎么同步?
消费者负载均衡策略?
怎么判定如何存在哪个broker
zookeeper 实现分布式锁?
zookeeper 高可用?
nginx 高可用方案?
Nginx与Ribbon的区别
tomcat 定义了什么类加载器
tomcat 和 jetty 有什么区别
spring 事务隔离机制
spring boot 启动过程
servlet 和 jsp 处理请求过程
spring aop 概念,优点?
微服务的好处?
如何实现动态Zuul网关路由转发
hystrix 怎么实现熔断?
谈谈服务降级、熔断、服务隔离
三面:
期待薪资
讲个项目
有没有其他offer?
反问?
面试常问智力题总结
学习笔记/书籍推荐
我推荐的学习笔记书籍download(DL):点击即可
Java核心基础总结:
好评最高的数据结构与算法:
Java程序员必备《Java核心知识总结》:
深入理解Java虚拟机第三版:
Java并发编程的艺术(pdf版本)——Java程序员的必读书籍:
腾讯大牛手写MySQL实战:
腾讯大牛手写Redis笔记:
高并发设计:
阿里微服务笔记:
Java中高级程序员必备笔记:
其他:
最后
祝大家在2021年的金三银四能跳个好公司,笔试顺利,面试顺利,谈薪顺利,实习顺利,工作顺利,加薪顺利,升职顺利,上岸顺利
网友评论