- 手撕代码
- 面试问题
- 反问环节
- Java后端技术栈
- 对于校招是否看重项目经验
- 算法和后端
- 后端相关的技术
- 总结
力扣56题合并区间
PS:代码要写的规范一些
1.自我介绍(其实是在手撕代码之前)
2.在合并区间题目中用到了排序,你能有什么优化吗?(快排)
3.Java工具类里边那个函数可以实现快排?怎么使用这个函数了?(sort函数,重写Compare)
4.Java的设计模式有了解吗?
5.你对单例模式有了解吗?讲讲他的Java实现?
6.Spring有了解过吗?Serve Bean怎么实现的?
7.Spring的工厂模式有哪些作用?
8. http请求到controller是怎么转发的?serve服务端是怎么转发的(比如它拿到一个path怎么找到他的)?
9. 有个juc包你有了解吗?其实是个并发包?
10.synchronized的特点?怎么用? 以及使用的场景?当他锁住一个对象后是怎么释放的?
11.wait和sleep的区别?
12.synchronized是可重入锁吗?可重入锁和非可重入锁的实现吗?
13.synchronized和reentrantLock的区别?
14.死锁的场景?
15.mysql数据库的了解?简单介绍一下那个索引结构?使用B+树的原因?相对于B树稳定性有什么区别?
16. mysql事务?ACID?
17.mysql怎么实现发现错误回滚?
18.缓存这块有了解过?redis的三种?
19.redis支持哪些数据类型?String是怎么存的?
20.你了解过String的基本实现吗?
面试官说其实Java后端技术栈都出不多,比如mq、Google的grpc、springCloud全家桶,这些虽然没问我,但是每个公司其实都是在应用的。
其实考察就是看看能不能快速上手。
面试官觉得,项目经验不是很重要,毕竟还是没有迈出学校。大厂还是非常看重算法,算法一定要过关。另外就是基础一定要扎实。
项目短期来看,如果项目需要正好与你对项目经历匹配,就会拉高优先级。
但是从长期培养来看,其实更看重基础。
算法更注重策略,后端也会做策略但是不会专注策略,更偏工程。
后端相关的技术如何解决高并发高流量,比如缓存,(j2?),服务稳定性,服务降级,服务熔断这些。更加偏向高并发高性能的挑战。
总结注重基础,注重基础,注重基础
java底层实现机制一定要了解,不能只是会用
会用还得会用的全面,各种场景都要会用
大厂想要的不是做过多少项目的,他更想要底层扎实的、有可塑性的
没有多少项目经历都没关系,但是基础一定要牢固,比如手撕实现过HashMap一定比被八股文的好太多



