前言

我自己是本科毕业后在老东家干了两年多,老东家算是一家”小公司”(毕竟这年头没有 BAT 或 TMD 的 title 都不好意思报出身),毕业这两年多我也没有在大厂待过,因此找坑的时候是非常非常虚的。迫于心慌,我好好思考了一阵来给自己打气,当时真正找坑和准备面试的过程大概分为这几个阶段:

面试准备

  • 反思:自己是不是真的要离职,假如不离职,在老东家接下来应该做什么才能继续提升?
  • 定位:我在硬性技能(编码、架构)上的长处在哪?我在软技能(沟通,团队)上的长处在哪?这步顺带写了简历
  • 寻找平台:哪些平台能同时满足:1、有挑战有上升空间;2、符合我的定位方向;3、团队氛围和老东家一样好
  • 找人内推:基本都是在 v2 上找的

    当你真的决定要跳槽面试的时候就得最自己的知做一个小总结了,找出自己的技术短板去弥补,把自己的学习路线给整理出来会事半功倍,下面附上我自己的复习路线。

两年经验拿到蚂蚁金服,字节offer,附上金九银十BAT面试核心知识点整理_第1张图片

就一个JVM就能梳理出这么多知识点,从而可以看出总结自己的复习路线是一个多么重要的事情,这里只是展示我总结的一部分,整个路线包括源码框架,并发专题,JVM性能调优,mysql,分布式,微服务等等。我都总结出了每一小步的复习路线,需要这份复习路线的:关注我的公众号前程有光即可获取

下面是我自己根据上面的复习路线图总记得复习文档,文档内容包括:数据结构与算法,JVM内存结构、垃圾回收器、回收算法、GC、并发编程相关(多线程、线程池等)、NIO/BIO、性能优化、设计模式、Spring框架:分布式相关:Redis缓存、一致Hash算法、分布式存储、负载均衡等,微服务以及Docker容器等。获取方式在文末

下面为部分的内容和面试题展示

JVM

  • java中会存在内存泄漏吗,请简单描述。
  • 64 位 JVM 中,int 的长度是多数?
  • Serial 与 Parallel GC 之间的不同之处?
  • 32 位和 64 位的 JVM,int 类型变量的长度是多数?
  • Java 中 WeakReference 与 SoftReference 的区别?
  • JVM 选项 -XX:+UseCompressedOops 有什么作用?为什么要使用
  • 怎样通过 Java 程序来判断 JVM 是 32 位 还是 64位?
  • 32 位 JVM 和 64 位 JVM 的最大堆内存分别是多数?
  • JRE、JDK、JVM 及 JIT 之间有什么不同?
  • 解释 Java 堆空间及 GC?

两年经验拿到蚂蚁金服,字节offer,附上金九银十BAT面试核心知识点整理_第2张图片

Redis

  • 什么是 Redis?
  • Redis 与其他 key-value 存储有什么不同?
  • Redis 的数据类型?
  • 使用 Redis 有哪些好处?
  • Redis 相比 Memcached 有哪些优势?
  • Memcache 与 Redis 的区别都有哪些?
  • Redis 是单进程单线程的?
  • 一个字符串类型的值能存储最大容量是多少?
  • Redis持久化机制

两年经验拿到蚂蚁金服,字节offer,附上金九银十BAT面试核心知识点整理_第3张图片

Kafka

  • 请说明什么是Apache Kafka?
  • 请说明什么是传统的消息传递方法?
  • 请说明Kafka相对传统技术有什么优势?
  • 在Kafka中broker的意义是什么?
  • Kafka服务器能接收到的最大信息是多少?
  • 解释Kafka的用户如何消费信息?
  • 解释如何提高远程用户的吞吐量?
  • 解释如何减少ISR中的扰动?broker什么时候离开ISR?

两年经验拿到蚂蚁金服,字节offer,附上金九银十BAT面试核心知识点整理_第4张图片

Spring Cloud

  • 什么是 Spring Cloud?
  • 使用 Spring Cloud 有什么优势?
  • 服务注册和发现是什么意思?Spring Cloud 如何实现?
  • 负载平衡的意义什么?
  • 负载平衡的意义什么?
  • 什么是 Hystrix 断路器?我们需要它吗?
  • 什么是 Netflix Feign?它的优点是什么?
  • 什么是 Spring Cloud Bus?我们需要它吗?

两年经验拿到蚂蚁金服,字节offer,附上金九银十BAT面试核心知识点整理_第5张图片

尤其是Spring Cloud这一块,面试几乎必问。SpringCloud 是分布式微服务架构下的一站式解决方案,是各个微服务架构落地技术的集合体,俗称微服务全家桶。

MyBatis

  • 什么是 Mybatis?
  • Mybaits 的优点
  • MyBatis 框架的缺点
  • MyBatis 框架适用场合
  • MyBatis 与 Hibernate 有哪些不同?
  • 当实体类中的属性名和表中的字段名不一样 ,怎么办 ?
  • 模糊查询like语句该怎么写?
    两年经验拿到蚂蚁金服,字节offer,附上金九银十BAT面试核心知识点整理_第6张图片

    Java反射

  • 除了使用new创建对象之外,还可以用什么方法创建对象?
  • Java反射创建对象效率高还是通过new创建对象的效率高?
  • java反射的作用
  • 哪里会用到反射机制?
  • 反射的实现方式
  • 实现Java反射的类
  • 反射机制的优缺点
  • 获取 Class 对象有几种方法

两年经验拿到蚂蚁金服,字节offer,附上金九银十BAT面试核心知识点整理_第7张图片

面试总结

一些经验:

  • 简历里写了的项目,以及熟练程度在”掌握”以上的领域与中间件要好好准备,当面试官问你一个偏门的问题时,他内心其实也没希望你能答上来。而当面试官问你简历上涉及的问题时,假如你答不上来,那面试官就觉得这个人要么是眼界太低,会了一点就觉得自己掌握了,要么是简历造假在胡吹,这两种都非常不利;

  • 在上一条的基础上,可以准备一个最得意的项目,在简历上和面试过程中引导面试官往这块聊;

  • 面试前心里可以准备一个方法论:明确面试官想招怎样的人有哪些特质,在面试过程中努力表现出这些特质。这听起来是句正确的废话,但面试的过程不可控因素太多,有一个清晰的目标在脑子里能帮你在手足无措时想到说什么。举个例子,有一轮中面试官问我有什么问题时,我就问贵司的对应岗位会面临哪些技术挑战(当然要先说清楚这不是在质疑他们没有挑战,只是自己渴望挑战);

    最后

    以上所有资料关注我的公众号:前程有光即可获取!对于大厂面试,我最后想要强调的一点就是心态真的很重要,是决定你在面试过程中发挥的关键,若不能正常发挥,很可能就因为一个小失误与offer失之交臂,所以一定要重视起来。