停更的这几个月,我在忙什么

Hi,大家好久不见。很抱歉一连停更了好几个月,停更的这几个月,我在忙什么呢。

离职篇

没错,我从顺丰科技离职了。606天,毕业后的第一份工作,两年后终于还是离开了梦开始的地方,告别了可爱有趣的同事朋友们。年前经过多番考虑后决定要回去建设家乡了,于是便开始了漫漫的春招求职之路。

我是土生土长的河南人,之前在郑州读的大学,所以春招那会投了郑州数得上来的差不多十来家公司。郑州不像互联网一线城市,互联网氛围相对来说比较匮乏,好的互联网企业比较少,比较好的岗位更是少之又少,再加上今年年初疫情相对比较严重,导致我找工作的整个过程并不太顺利。

过年那段时间因为深圳有疫情,我也就没回老家过年,所以就有了更多的时间复习准备面试。差不多准备了两三周,我就投简历然后开始面试了。面了两周左右,拿了几家公司的offer,但是我不太满意。后来又面了几家国企,但是国企的流程相对私企来说,流程会比较慢,所以当时一直在观望,骑驴找马。有一家国企的流程相对来说比较快,通过了两轮技术面和一轮笔试后,就开始提交资料做背景调查。这家国企相对于其他的offer来说,我还是比较满意的,在郑州属于为数不多的Top公司了。但是国企的入职流程会比较慢,当时我的离职日期也快要到了,所以当时也很着急。在跟Hr沟通确认过入职的事情之后,我就办完离职手续收拾收拾行李准备回家了。

居家隔离篇

万万没想到,因为是从中高风险地区返郑,刚下高铁就被通知需要居家隔离14天。健康码被赋红码住酒店也住不了,无奈我只好匆忙的租了房子,前几天晚上借用了中介的被子睡了几个晚上,现在想想都觉得好惨,哈哈哈。租的房子装修好后还没住过人,收拾了好几天后终于有了烟火气息,我的厨艺在隔离期间也飞速提升。


入职篇

隔离结束后,做完入职体检后就赶紧去公司入职了。公司刚好在母校的隔壁,兜兜转转还是回到了原点。入职第二天刚好赶上放清明节假期,算起来今天刚好入职满一周,最近一周都在疯狂的申请各种平台权限和熟悉公司的各种流程,也好长时间没写代码了,感觉手都生疏了。停更了好几个月,也是时候复更了。

立个flag,每周至少更新一次!!!

面经篇

聊了这么多,也是时候上干货了,这个是我春招面经的清单,另外本人的经验也有限,不足之处也希望能与大家多多交流。

xxxx公司

  • SpringBoot加载流程、SpringCloud组件

  • BeanFactory与FactoryBean的区别

  • MySQL底层存储

  • ES倒排索引

  • JMM内存模型

  • 单例模式的几种实现方式

  • Kafka、RabbitMQ、RocketMQ的区别

xxxx公司

  • JVM内存模型
  • 锁降级
  • MySQL性能调优的方式有哪些
  • MySQL索引为什么最左原则会失效
  • 分布式锁

xxxx公司

  • JVM内存模型
  • 同步锁和异步锁
  • 几种线程池、线程池的使用场景、线程池的创建方法及参数
  • Git和SVN的区别、Git的使用
  • Spring(IOC、DI、AOP)
  • BIO、NIO、AIO的区别
  • Kafka(ACK应答机制)
  • 消息队列的作用
  • Hadoop生态圈的计算组件
  • 从0-1搭建项目架构

xxxx公司

  • Spring(AOP、IOC)
  • Redis原理(原理及缓存穿透、缓存击穿、缓存雪崩)
  • MyBatis原理(执行过程、用法)
  • Zookeeper原理
  • 设计模式
  • 消息队列

xxxx公司

  • Dubbo架构搭建
  • synchronized的使用场景及方法
  • 可重入锁、不可重入锁
  • Redis(原理、RDB机制及AOF机制的使用场景、缓存击穿、使用Redis计算并发数QPS的方法、一致性Hash算法-Murmurhash算法)
  • SpringMVC的执行流程
  • SpringBoot注解@SpringBootApplication中的组合注解有哪些
  • Spring事务传播机制
  • JVM内存模型、堆内存中分代回收机制、垃圾回收算法、OOM和栈溢出的场景及定位方法
  • 分布式锁的几种实现方式(SETNX的使用)
  • MySQL索引失效的几种情况

xxxx公司

  • 场景题:20W的数据实现Excel导入功能
  • Spring中对象的创建过程
  • 如何解决Spring循环依赖
  • AQS和CAS的关系
  • 分布式事务
  • synchronized锁升级
  • 分布式与微服务的优缺点

xxxx公司一面

  • 场景题:请求调用服务A、服务B、服务C获取三个结果后,需要对三个结果进行逻辑处理后再返回给用户(如何使用JUC来实现)
  • MySQL索引最左原则的原因、B+树索引的数据结构
  • 如何快速定位问题优化QPS
  • CMS垃圾回收器和G1垃圾回收器的原理
  • MySQL创建索引的场景,哪些字段适合建索引,哪些不适合建索引
  • 组合索引和单个索引的特点

xxxx公司

  • Redis的常用数据结构、Redis的持久化机制
  • Spring的事务传播机制
  • 事务处理有哪些方式
  • ArrayBlockingQueue和LinkedBlockingQueue的原理(ArrayBlockingQueue需要加一个锁,LinkedBlockingQueue需要加两个锁)
  • 线程池中的某一个线程报错,线程池的容错机制
  • redis命令Lrange的使用
  • 使用wait()的前置条件
  • MyBatis映射文件中不指定namespace会发生什么
  • SpringBoot打包后的包结构
  • Spring、SpringMVC、SpringBoot、SpringCloud的区别

xxxx公司

  • SpringMVC的执行流程
  • SpringBoot的使用
  • Spring、SpringMVC的区别和特点
  • SpringBoot的启动方式
  • Redis的持久化机制以及两种持久化机制的使用场景
  • Zookeeper的作用、读写原理、如何使用Zookeeper实现分布式锁

xxxx公司二面

  • 值传递和引用传递
  • MySQL如何选择创建索引
  • MySQL事务隔离级别、默认隔离级别
  • CAS原理以及导致的问题
  • volatile关键字的作用
  • JVM内存模型、常见垃圾回收器、JDK8默认垃圾回收器
  • Kafka消费者消费方式
  • 产生死锁的条件以及避免死锁的条件

xxxx公司

  • 开窗函数
  • MySQL调优
  • 分页插件的使用

xxxx公司二面

  • JVM内存模型
  • GIT和SVN的区别
  • SSM项目从0-1的相关配置
  • SpringMVC常用的控制器
  • SpringMVC执行流程
  • Spring和SpringMVC的区别
  • SpringMVC是单例还是非单例
  • SpringBoot的javaConfig配置
  • 垃圾回收时,判断对象是否已死的算法
  • MyBatis缓存

xxxx公司二面

  • Spring和SpringMVC的区别
  • MyBatis中#{}和${}的区别
  • SpringMVC的执行流程
    C的区别
  • SpringMVC是单例还是非单例
  • SpringBoot的javaConfig配置
  • 垃圾回收时,判断对象是否已死的算法
  • MyBatis缓存

xxxx公司二面

  • Spring和SpringMVC的区别
  • MyBatis中#{}和${}的区别
  • SpringMVC的执行流程
  • 如何优化高并发接口的QPS和内部逻辑(需要用到哪些设计模式)