疫情下的金三银四,为加薪做准备

387 阅读3分钟

2020年的开头注定是不平凡的,新冠病毒在世界范围内肆虐、美股暴跌,每天在家看着手里的基金跌了涨,涨了跌,跟过山车似的。本来计划三四月份出去找找机会,跳个槽,涨点工资,缓解一下紧吧的生活,结果受疫情影响,只能呆在家里安心工作了,听说好多公司都发70%的工资,还好我们公司还是很良心的(这一点必须赞)。既然无法找机会,那就先提升提升自己吧。

JDK

关于JDK,在面试中提到的还是挺多的,不管大厂还是小公司,jdk的知识还是问的比较多的,下面我把经历过以及了解到的知识列一下

  1. java8知识 虽然java已经到13的版本,但是2019年国外某一调查结果显示java8使用的还是最多的,几乎占到8成,因此掌握java8的新特性是必要的。
  • lambda与函数式接口
  • stream,引入流式处理,让方法更简洁紧凑
  • 时间相关类(LocalDateTime等)
  • 默认方法和静态方法
  • Optional,优雅的解决烦人的NPE问题(google guava在java8之前引入Optionals解决NPE,google出品必属良品啊)
  • CompletableFuture(并发的后面会单列一个目录)
  • 更优性能的原子类:LongAdder、LongAccumulator以及DoubleAdder和DoubleAccumulator
  • synchronized
  • Lock
  • AQS
  • CAS
  1. 并发容器
  • CopyOnWriteArrayList
  • ConcurrentHashMap
  1. 线程池
  • ThreadPoolExecutor
  • ScheduledThreadPoolExecutor
  • ForkJoinPool(这里又涉及到Fork/Join模型和工作窃取算法)
  1. 多线程概念
  • 线程状态
  • 线程同步
  1. 并发
  • Future
  • CompletableFuture
  • Runnable
  • Callable

JVM

Java虚拟机知识也是面试中常问的,例如如何性能调优、线索故障处理等,这部分如果能答得很好,那是很加分的哦

  • 内存模型
  • JVM调优
  • 垃圾回收算法
  • 垃圾收集器
  • 类的加载机制
  • 线上故障如何处理(这部分没有过实战经验,很容易挂掉)

框架

Java框架方面,几乎每个公司都在用spring吧,目前微服务盛行,加速了SpringBoot、SpringCloud、Dubbo等框架的流行

  1. Spring,基本上面试逃不过这几个问题
  • IOC
  • AOP
  • DI
  • 事务
  • bean的加载过程
  • 为什么用spring,它的好处是什么
  1. SpringBoot,实现了自动配置,降低项目搭建的复杂度
  • starter
  • 自动配置
  1. SpringCloud,实现了一整套的分布式框架,什么服务注册、配置中心、服务调用、熔断降级、网关、监控等都帮你做好了,拿来即用。但是好多组件开始宣布闭源了,例如zuul、eureka2.0
  • 注册中心 Eureka
  • 网关 Zuul、SpringCloud Gateway
  • 服务调用 Feign
  • 负载均衡 Ribbon
  • 熔断 Hystrix
  1. Dubbo,阿里出品,与SpringCloud相比,它不是一整套的方案,但是随着周边一些组件的出现,例如Sentinel、nacos的出现,alibaba一整套解决方案也浮出水面。(dubbo还没接触,后续在来讲它)

Redis

作为缓存的佼佼者,也是面试中必问的

  • 为什么选用redis
  • 常用的几种类型
  • redis是单线程吗
  • 缓存击穿、穿透、雪崩
  • 缓存淘汰策略
  • 分布式锁
  • 如何保证双写一致性
  • 集群

数据库

数据库是项目中必不可少的,面试也常常涉及到,以MySQL为例

  • 索引有哪些
  • 最多可以建多少个联合索引(好像是16个吧)
  • InnoDB和MyISAM的区别
  • 为什么使用B+树
  • 事务、隔离级别
  • 锁机制

设计模式

数据结构、算法

Linux

上面这些知识是面试中几乎都会遇到的,这篇文章只是列出个大纲,下篇文章开始进入详细的讲解,其中也会穿插一些经典的面试题

更多精彩内容,欢迎关注我的公众号:猿圈话源 也可以关注我的百家号:猿圈话源