shopee后端一面面经
全程50分钟差几分钟吧,居然没有考察代码。。。
自我介绍(要求结合本科阶段学习计算机进行介绍)
下面按照类型进行总结吧(感觉太多了。。。)
Java基础
- 说一下HashMap,concurrentHashMap
- 红黑树和AVI树区别
JVM
- 介绍一下JVM内存划分吧
- 介绍垃圾回收算法
- 有哪些对象可以作为GC Roots
- CMS回收过程?如何解决内存碎片?
- 说一下JMM
多线程
- 进程和线程的区别?
- 为什么有了进程还要线程?
- 线程之间通信方式?
- 大量使用volatile会带来啥问题(我说的会导致总线风暴)
- 说道总线风暴,说一下一致性缓存?
MySql
- 说一下有哪些索引?
- 事务的隔离级别?Mysql默认是哪个?Mysql怎么实现的?(我估计是想问mysql如何解决幻读问题)
- 为什么最好不要写select *,而是写成select 字段名?
Redis
- 使用的场景有哪些?
- 为什么快?
- redis只是单线程的为啥快?
- redis运行过程中只有单线程吗?
- RDB持久化的流程
- 有了解最新版本的多线程的redis没?(没有)引导了一下,我说可能是不是支持了多线程IO。。。
操作系统
- 如何查看进程情况?
- 如何排查内存泄露?
- 知道程序局部性原理吗?(完全不记得这个名词了)
计算机网络
- TCP和UDP区别?UDP使用场景
- get和post的区别?(我说了幂等性不同)
- post为啥需要设计成非幂等性
- get方法能带着body吗?(可以但不推荐)
- cookie和session区别?
- 禁用了cookie还能实现session吗?(我说可以重写url实现)
- 有大量的session如果都存在服务器的化带来的问题怎么解决?(我说使用分布式session)
- https请求流程
- 输入url后怎样?
框架
- springboot是啥?
- 说一下MVC?MVC的缺陷是?
- spring中到哪些设计模式
- spring怎么实现AOP?
差不多就这些吧,面试官人挺好的,最后他说二面就不会问这么基础的东西了,会问一些宏观的东西。好吧,感谢shopee让我这几天恶补了一波基础。
#面经##Java工程师#