从去年12月开始复习Java,做项目,视频是看的黑马的视频,还可以吧,把Java基础和SSM框架看了下,做了个小项目,然后看牛客网的中级项目课,做了一个健身头条项目,接着就是刷题之路,建议把剑指Offer上的题多刷几遍,有能力的可以把LeetCode也刷刷,然后多看一些好的博客,总结的真是超级棒,书籍方面的话,主要是深入理解Java虚拟机并发编程的艺术或者Java并发编程实战TCP/IP详解 卷1:协议Spring源码解析高性能MySQL算法,计算机操作系统,计算机网络等。反正是开卷有益。由于自己比较菜,大厂基本是都是一面挂,遂投了一波中小公司,最终有个还不错的offer,结束了艰辛的春招之路。其中新浪、金山云和vipkid由于已经接受其他公司offer,没有再面试了。

经过这次春招,感觉大厂更注重基础,并且要求到源码的深度,还是要多考量,多琢磨,小厂的话更侧重项目一些,希望大家都能得到自己满意的offer。
下面是几个公司的面经。

百度

  1. 项目相关
  2. 异步队列怎么实现
  3. 高并发情况下怎么办
  4. java中数据结构
  5. concurrenthashmap源码(分段锁和CAS)
  6. hashmap与concurrenthashmap的区别
  7. 死锁
  8. tcp/ip体系结构
  9. tcp三次握手,二次会发生什么
  10. HTTP/1.0与HTTP/1.1的区别
  11. 长连接和短连接
  12. 判断链表有环
  13. hashset源码
  14. 设计一种hashmap缓存
  15. 设计模式
  16. 取火柴问题

腾讯

  1. 项目相关
  2. 内部类
  3. static
  4. 类加载
  5. 内存泄漏
  6. GC
  7. 智力题

京东

  1. 项目相关
  2. HashMap是线程安全吗?
  3. hashmap源码
  4. Concurrenthashmap为什么线程安全?
  5. java如何实现线程安全
  6. 单例模式
  7. volatile

数太奇

  1. 项目相关
  2. SpringMVC过程
  3. 冒泡排序
  4. 快速排序
  5. 将200w数据去重排序

方正国际

  1. SpringBoot是什么
  2. redis里存放的是什么
  3. mysql和redis一致
  4. 注册和登录怎么实现的
  5. 密码加密怎么实现的
  6. nginx的Session共享
  7. 异步怎么实现的
  8. redis持久化
  9. map有有序的吗

东方畅享

  1. 项目相关
  2. dao层怎么实现
  3. spring中都用了哪些库
  4. 接口怎么实现

佳龙集团

  1. 常见的数据结构介绍一下
  2. hashmap介绍一下
  3. 快排
  4. 冒泡
  5. 斐波那契数列
  6. 判断回文数
  7. 约瑟环
  8. springmvc生命周期
  9. restful了解吗
  10. 分布式缓存

长城软件

  1. 登陆模块怎么做的
  2. 项目部署在tomcat步骤
  3. tomcat启动流程
  4. 介绍下redis
  5. 异步处理是怎么实现的

星宇联合

  1. ==和equals的区别
  2. arrarylist和linkedlist区别
  3. synchronized
  4. 单例模式
  5. sql查询

用友

  1. spring ioc用到的注解
  2. 未登陆用户拦截
  3. sql左连接和右连接
  4. 消息队列怎么实现的
  5. spring bean用到的注解

每日优鲜

  1. 快排
  2. sql左连接和右连接
  3. mysql的索引
  4. b+树介绍一下
  5. redis的list是什么数据结构
  6. linux的常用操作
  7. mybatis的注解
  8. 多线程的实现
  9. 线程池的配置
  10. linux怎么查找一个文件中数据

小米

  1. 赞踩功能是怎么实现的
  2. 为什么赞踩要用消息队列
  3. 消息队列怎么实现的
  4. synchronized和volatile
  5. synchronized实现原理
  6. volatile可见性
  7. 线程池有哪几种
  8. 具体怎么用
  9. 说下常用设计模式
  10. 单例模式在项目中有用到吗
  11. 观察者模式说一下
  12. get和post区别
  13. tcp三次握手
  14. rcp了解吗
  15. 为什么不是两次和四次握手
  16. jvm内存模型
  17. jvm垃圾收集器
  18. gc算法
  19. linux查找一个文件中的某个字
  20. linux的ping命令是什么
  21. linux常用的命令
  22. maven常用命令
  23. git常用命令
  24. mysql的引擎
  25. 各个引擎的区别
  26. innodb实现原理
  27. 异常的分类
  28. http了解多少
  29. https
  30. ca证书里有什么
  31. 滑动窗口和拥塞控制
  32. 长连接和短连接
  33. cookie和session区别
  34. cookie欺诈
  35. 最小字典序

沪江

  1. hashmap
  2. linkedlist
  3. 单例模式
  4. 快排
  5. json格式
  6. 多线程实现
  7. 线程池
  8. string可变吗?
  9. final
  10. 登陆怎么实现的
  11. 如何判断用户已经登陆
  12. jdbc连接过程

借贷宝

  1. 登陆模块怎么实现的
  2. mybatis映射
  3. springmvc用到的注解
  4. restful
  5. c中的指针是什么
  6. java中为什么没有
  7. ajax
  8. 什么是异步
  9. mysql数据库引擎
  10. innodb和myisam的区别

芯智引擎

  1. 说下你知道的数据结构
  2. 红黑树能写出来吗?
  3. 红黑树的特点
  4. b树
  5. 图在代码中怎么表示
  6. 怎么求图中两节点最短距离
  7. 说下基于比较的排序有哪些
  8. 各个排序的时间复杂度
  9. 线程池
  10. 线程同步
  11. synchronized实现原理
  12. monitor实现原理
  13. osi七层模型
  14. 各层模型的协议
  15. java中集合类
  16. 集合类运用场景
  17. 操作系统,知道啥
  18. 页面置换算法
  19. 进程线程
  20. 死锁