Java面试经历——没能圆梦bat,但至少也努力过
原作者:此处应有名字
原文链接:https://www.nowcoder.com/discuss/326324?type=2&order=0&pos=14&page=1
俗话说:金九银十。但是今年说金八银九感觉也不为过。想起7月底就开始在准备秋招,八月底一路跌跌撞撞没有成绩,终于在九月底完成了自己的秋招。发帖子以记录一下,未来想到时。还可以回来翻翻帖子,回味秋招的日子。以下长文警告.........
字节提前批:
一面(挂):
1.四道算法选一道:A.链表对称翻转 B.找出无序数组中加起来和为某个target的连续子序列 C.出租车在一条公路上走,有好几个红绿灯,某个时间出发,最快多久能到达终点 D.记不清了,类似笔试题
网易提前批:
一面:
1.介绍项目,对着项目问:分布式,一致性哈希,缓存,服务器请求过程等
2.做题:两个数组,在B数组中查找第一个大于A数组里中位数的数字
3.数据库语句,计网知识,Java多线程相关知识,Java基本类型和类之间拆箱装箱关系
二面(挂):
1.JVM基础知识一箩筐
2.Java并发编程知识一箩筐
3.项目介绍
4.做题:一个矩阵,从左上角查找最长的一条路径,(路径要求:和下一个方格(前后左右都行)的差不超过1,如果到尽头则直接输出),输出出来。
珍爱网:
一面:
自我介绍
项目介绍
Java 的锁有哪几种分别说一说
volatile 是线程安全的吗
Java 线程池如何设置参数
Redis 实现分布式锁的原理说一下
Redis 实现缓存是存储什么数据,过期时间是多少
Mysql 存储了哪些数据?
索引实现原理是什么
索引哪些情况下会失效
设计索引有什么需要考虑的因素
如何查看 SQL 语句的执行情况
除了 Redis 实现分布式锁,还有什么办法:ZK
ZK 实现分布式锁的原理了解吗?不了解,但了解如何实现服务注册与发现
zk 如何保证高可用
zk 高可用的实现原理是什么
看来你对zk这块还不太熟悉,我们聊点别的吧
TCP timewait 情况了解吗?怎么解决
操作系统的 epollo 讲一下
虚拟内存,物理内存
反问
珍爱网二面
自我介绍
项目介绍:深究项目细节
项目当中的作用
有什么难点如何解决
项目目标是什么
有什么提升
项目相关的 TCP 三次握手的原理
多线程,并发,负载均衡怎么处理的
反问
珍爱网HR面
自我介绍
对公司了解
想去怎样的公司
之前实习的公司觉得如何
想在以后获得什么
哪里人,家人怎么看你来面试这家公司
反问
腾讯:
一面:
项目介绍
Nginx 相关负载均衡算法
一致性哈希
http 长连接、短连接
epoll 边缘触发与水平触发
epoll 空轮询 bug
https
linux 的页内存。答不会但是了解操作系统的虚拟分页
操作系统虚拟内存:分页分段
linux 命令:du、top、free、netstat
Redis 在项目中怎么使用,使用什么特性
分布式锁的实现除了 Redis 还有什么?
zk 分布式锁实现原理了解吗?不了解,了解服务注册与发现原理
zk 服务注册与发现
算法:复杂链表的复制
服务分组怎么搞(还可以靠标签解决)
二面:
自我介绍
解释一下Tomcat的运行机制
计网HTTP原理
虚拟内存存在的意义/设计原理
Redis 存储缓存比起 Mysql 有什么区别,能用 Redis 存储数据库数据吗
缓存与硬盘的优点缺点比较,为什么需要缓存
项目介绍
针对项目:
如何优化
测试效果如何
Redis 分布式锁怎么使用
除了Redis实现分布式锁,还知道其他的分布式锁实现方式吗: ZK分布式锁实现/基于Mysql的分布式锁实现
设计的线程池运行策略是怎样的
线程池线程数如何设计
为什么没有任务执行的线程要关闭 : 答线程上下文切换会带来损耗
线程上下文为什么会带来损耗 : 讲了用户态和内核态的切换
有没有玩过游戏
英雄联盟的寻路算法要怎么设计:动态规划/深搜/广搜
如何优化:
缓存存储经常寻路的路径,下次寻路直接查出
动态规划计算,使用多个线程并行计算结果,最后选出最短的那一条路径
反问
总监面(挂,此面是感觉最冤大头的,问的问题奇奇怪怪,唉):
C 语言:一个mian函数,执行的第一行就出错了(在中括号的那一行,还没执行响应的代码就出错了,段错误)是什么原因导致的。如何处理
socket():客户端每次发1024字节,循环发十次,服务端socket() read 的时候读多少个字节
一致性哈希:一致性哈希的原理,好处:答上来了;为什么要使用一致性哈希:懵,语塞
微服务的认识与理解
为什么不能单体应用而要使用微服务
平时如何学习的?
讲讲对 MVC 这个框架的理解
一道智力题:A,B两个人分别持有一样的牌:3/4/5/对6/对7/对8。单牌只能吃单牌,对牌只能吃对牌,不能拆牌下。A先下牌,问一定能赢吗?
华为:
一面:
自我介绍
项目相关
线程安全实现方式
Redis 分布式锁如何实现
Nginx负载均衡原理、所选负载策略
Nginx能否感知消息队列宕机
如果服务器宕机怎办,一致性哈希可以进行处理
一致性哈希的优点,能解决什么问题。机器数量高度可拓展,宕机的时候数据迁移量少
如果让你设计哈希算法你会怎么设计。答:取模;反问:那机器数量改变怎么办,模数不是又得改了。其实是因为没答到点。其实得答按机器数量取模
思考题:
微博几十亿条数据,要实时展示出评论前10条的数据,怎么快速查询
哈希再哈希,哈希到对应机器上面时使用键值对进行获取
那修改的时候呢?如何提高效率
算法题:
O(n)时间复杂度找出数组中的TopK元素:使用快速排序的思想进行查找,排序一部分数据就行,不需要排序全部
二面:
自我介绍
Java并发相关
线程安全实现方式
volatile 实现原理
synchronized 实现原理/比起可重入锁的区别
线程池的实现方式
线程池的核心参数如何设计
计算机网络相关知识:TCP、UDP等
操作系统相关:
虚拟内存
如何查看占用CPU较多的原因
JVM 部分:
分代情况
Java的内存管理策略
年轻代中的划分情况/比例
年轻代怎样会升级到老年代/如何设置升级年龄
复制回收算法是怎样的
算法题:
两个排序好的数组,找出其中位数,要求时间复杂度O(m或n):可以使用折半查找的方法进行查询
三面:
自我介绍
说说实习的时候做了什么
说说工作室的经历
对华为的认识,为什么想加入
对自己的评价
技术方面的追求
腾讯微保:
一面:
自我介绍
项目介绍
Java基础,计网基础,操作系统基础
算法题:
股票买如卖出各一次,求利益最大的方案
二面:
自我介绍
项目介绍
对保险行业的了解
反问
Bigo:
一面:
自我介绍
Java并发相关
线程安全实现方式
volatile 实现原理
synchronized 实现原理/比起可重入锁的区别
线程池的实现方式
线程池的核心参数如何设计
ThreadLocal 的底层实现与使用方法
数据库相关:Mysql
Mysql 索引实现原理
InnoDB/MyISAM 之间的区别:从索引实现,数据存放位置,适用场景的方面讲
SELECT COUNT(*) 哪一个引擎更快,为什么
a,b联合索引,查询条件为a/为b/为a AND b 走不走索引
如何查看慢查询出现的情况: 打开慢查询日志进行查看
如何查看某条慢查询语句执行时占用的CPU/内存/耗时等情况: 这个没了解过
计算机网络相关:
TIME_WAIT/CLOSE_WAIT 如何解决
操作系统相关:
虚拟内存
如何查看占用CPU较多的原因
查看线程pid
接下去就不会了,只会如何排查占用内存较多的方法
项目相关:
项目介绍
Redis 分布式锁如何实现
Redis 缓存存放什么数据/使用什么数据格式存储
Redis 是单机部署的吗
测试情况如何
JVM 部分:
分代情况
垃圾回收策略
年轻代中的划分情况/比例
年轻代怎样会升级到老年代/如何设置升级年龄
复制回收算法是怎样的
二面:
自我介绍
手撕字符串转数字
手撕判断矩阵是否是数独
TCP 三次握手,各个状态与传递参数
JVM 内存模型(运行时内存)
介绍一下几种 GC 收集器
CMS 的具体垃圾收集策略是怎样的
死锁出现的条件
Java 加锁的方法:synchronized 、AQS 、CAS
ABA 是什么问题,如何解决
有哪几种线程池
JVM 参数调优如何设置
三面:
自我介绍
说说实习的时候做了什么
分布式锁怎么实现
Redis 事务了解吗,怎么处理
RPC 的实现原理
Zookeeper 的 Watch 机制了解吗
Dubbo 的序列化框架
服务注册发现怎么做的
Redis sortSet 底层实现是如何
sortSet 的查询,写入和删除时间复杂度分别是多少
AOP 如何实现的
GIT 如何进行版本回退
大数据有没有了解
回去要学习什么?
整个秋招下来,有过辛酸和不甘、无奈和失望,但是菜鸡也同样可以通过后天的努力来弥补自己的菜的。庆幸自己最终还是坚持了下来,好运的光顾,让自己最终拿到了满意的offer。
如果算上春招,自己其实已经从去年12月就开始准备了,但是一直没有找到好的机会。那其中有第一次面阿里云的无经验之尴尬,有支付宝面完所有技术面最后没HC的无奈,还有腾讯被捞4次两次挂在2面的悲惨经历,就不一一叙述了。
感谢实验室和自己一起复习备战的小伙伴,感谢实习的时候互相鼓励的队友、室友,感谢实验室指导老师,感谢蒸蒸日上的学校。该上岸的已经上岸了,还没上岸的也抓紧了,我们在等着你!
——————谨以此,记录自己春秋招的求职经历。愿归来,仍是少年~Fighting