有现实中的小伙伴问我,我这半年到底干了啥。怎么博客突然不更新了?
最近的一次更新还是在去年12月
其实这半年嘛,一直在为面试做准备。算法一直是我的弱项,于是突击了力扣。
开了会员,刷了将近700道,有的高频题目都刷了第二遍。 我将每次的刷题记录同步到了github中,有需要的可以移步SunAlwaysOnline。
下面是我的提交记录
还是那句话,如果你想进大厂,算法是必须要过关的。
面试前,我也整理了高频的知(ba)识(gu)点(wen),将会陆续发出来,小伙伴们不要着急哈。
从3月份开始,每天大概会花2-4个小时复习这些知识点。
6月下旬~7月下旬,我开始了简历投递及面试阶段,下面是面试的具体时间表(我简直是时间管理大师)
绿色的代表过了,红色的代表挂了。
有些单纯问项目的面经,就不发出来了。
网易一面
1、自我介绍
2、对docker与k8s的理解
说了一些k8s内的组件,api-server、scheduler、kubelet、etcd的作用与发pod的流程
3、对etcd的理解,etcd怎么实现强一致性
raft协议,另外说了可以做分布式锁,利用informer机制接收pod信息
4、https与http的区别,https的流程
证书验证->公钥加密随机数->私钥解密->对称加密传输
5、服务之间的认证
说了拦截器实现、jwt
6、对双亲委派的理解,场景
说了loadClass方法,jdbc、tomcat、java9模块化对双亲委派的破坏
场景:力扣提交代码重写findClass方法,将字节流转换为Class对象
7、SpringBoot与Spring的区别,怎么实现自动装配的
说了SpringBootApplication->SpringBootConfiguration->EnableAutoConfigration->import AutoConfigurationImportSelector->getCandiaties->Spring.factories->OnConditionalClass
8、问题排查思路
多线程优化获取harbor内镜像扫描信息
慢查询:explain,加索引
cpu使用率高->top->top --pH pid->转16进制->jstack pid|grep ->gc线程活跃->jstat -gcutil观察FGC频繁->jmap -dump->mat分析->大量对象
9、对云原生的看法
说了微服务+docker+k8s+devops
10、写博客的动力与计划
3w粉丝给我的,明年打算写公众号,深入中间件源码
赞同科技一面
1、自我介绍
2、Java有哪些类加载器,怎么自定义类加载器
3、类加载的流程
4、实现线程有哪几种方式
5、Callable与Runnable的区别
6、Future.get()阻塞原理,多个线程同时调用get会发生什么,怎么实现唤醒的
7、怎么实现3个线程顺序执行
8、CompleteFuture实现顺序执行的原理
9、数据库隔离级别,每种级别存在什么问题
10、Spring事务传播方式哪些,事务失效的场景,怎么解决
11、有哪些分布式id框架,雪花算法的缺点,怎么解决时间回拨
12、怎么随机打乱一副扑克牌
13、项目难点
14、反问
BOSS直聘一面
1、自我介绍
2、说说协程
3、线程与进程的区别
4、多进程编程相比于多线程编程的优势
5、数据库索引为什么使用B+树,和其他数据结构的区别
7、time_wait是哪个阶段、过多会造成什么情况,用什么命令排查、怎么优化
8、close_wait是哪个阶段,为什么要有这个状态
9、为什么要等待2MSL
10、一台服务器最多支持多少个tcp连接,怎么计算
11、linux的socket函数返回什么对象
12、docker能够隔离什么,对什么资源隔离性最差
13、k8s是怎么调度pod的
14、kube-scheduler是怎么实现高可用的
15、api-server怎么保证高可用,我说引入keepalived+haproxy
16、手撕算法,合并k个有序数组
17、一边写算法,一边问优先队列底层是什么,怎么构建的
18、反问
BOSS直聘二面
1、cicd结合k8s组件,说一下其中了解到的最大链路
2、说一下k8s的infomer机制
3、Fabric8保持的连接是长连接吗
4、发布的pod,平台支持哪些参数
5、怎么使用无锁算法实现线程安全或同步
6、class文件格式,加载class文件的过程,怎么进行字节码增强
7、9匹马,3个赛道,选前三快,最少次数是多少
8、跳跃游戏-怎么判断能否跳过去,最少次数是多少
9、有在看其他的机会吗
滴滴一面
1、怼项目
2、Service原理
3、为什么出现红黑树这种数据结构
4、AtomicInteger原理、cas是线程安全的吗
5、对镜像层的修改是怎么处理的
6、select、poll、epoll原理,poll怎么打破1024的限制
7、请求头里keep-alived的好处,和http2.0多路复用的区别
8、CephFS与CephRbd的区别
9、HashMap扩容的过程,1.7与1.8的区别
10、volatile的作用
11、MESI缓存一致性协议了解吗,哪4个状态
12、缓存击穿与穿透的区别,怎么避免穿透
13、LinkedHashMap底层数据结构,怎么实现顺序性的,怎么实现LRU
14、微服务的发现是怎么做的(用的第一题的Service...)
15、会go吗?会python吗?会node.js吗?
16、namespace与cgroup原理
17、说一下rootfs
顺网科技一面
1、怼项目
2、容器的四种网络模式
3、K8s网络模型calico的理解
4、Headless类型的Service的使用场景
5、Object类有哪些方法
6、hashcode用于什么场景
7、wait方法的理解
9、线上所有接口访问变慢,怎么排查,说命令,FGC频繁怎么办
10、time_wait与close_wait所处在哪个阶段
11、http有哪些header
12、自定义starter怎么做,说说spi机制
13、SpringBoot有哪些自己的注解
14、Spring事务默认传播方式,怎么判断当前方法存在事务
15、Jdbc的流程,Class.forName与.class的区别,怎么破坏双亲委派的
16、MysqL的默认隔离级别,oracle呢,oracle有哪些隔离级别
17、可重复读怎么在当前读与快照读的情况下解决幻读的
18、redis有哪些高可用方式,哨兵的三个作用
19、平时是怎么学习的
20、反问:公司做哪些业务
顺网科技二面
1、怎么了解到的岗位
2、校园作品,怎么进行需求调研的
3、并发与并行的区别
4、如何实现线程同步与通信
5、设计模式用过哪些,在哪里使用的
6、对依赖注入的看法,容器顶层接口有哪些
7、Jvm看过那些书,看了几遍
8、对分布式的理解,分布式ID、分布式事务与分布式锁
9、缓存不一致怎么解决,说两种方式
10、项目的意义与挑战在哪里
11、对k8s存储的了解
12、说3个同事的优缺点
13、平时怎么学习的
14、花时间最久的算法
15、最近在看哪些书
16、反问:你觉得我的优缺点有哪些
涂鸦智能一面
1、Redis分布式锁
2、SpringBoot自动装配原理
3、怎么设计读写锁
4、怎么优化慢sql
5、联合索引和单个索引,谁更快
6、netty零拷贝
7、设计模式用过哪些
8、状态模式与策略模式的区别
9、怎么写出健壮的代码
除了这些八股文,还有重要的一点是,一定要整理好自己的项目。
八股文只适用于一面二面,真正决定你是否能够获得offer的是三面和四面(如果有)。
三面四面的面试官,一般是组长或者大leader,他们将会一直抠项目。