嗨~我是可拟雀,一个后端开发工程师,毕业于某985大学,目前供职于bat某大厂核心部门后端。每天分享最新面经答案,希望在大环境不好的当下能帮到你,让你多积累面试经验。需要内推或者面经合集请评论哦。
3.18晚上一面(1H)
1.自我介绍
2.项目介绍
3.拷打项目
4.有没有考虑过用分布式微服务?为什么?因为当时刚刚学java
5.假设项目以后拓展会遇到的问题怎么解决
6.微服务了解吗?
答:微服务是一种云原生架构方法,它将一个大型应用拆分成多个小型、独立的服务。每个服务都运行在其独立的进程中,具有独立的代码库,并且服务与服务之间通过轻量级通信机制进行通信,通常是基于HTTP或者RPC。这种架构方式有很多好处,比如提高了系统的可伸缩性、可维护性和可靠性。每个服务都可以使用不同的编程语言和框架,这样开发团队就可以根据服务的具体需求来选择最合适的技术栈。同时,由于服务之间是相互独立的,所以一个服务的故障不会影响到整个应用的运行。
微服务架构适用于复杂的大型系统,特别是那些需要快速迭代、高可用性和高扩展性的系统。它允许开发团队更加灵活地进行开发、测试和部署,提高了开发效率和系统的可维护性。
微服务也是分布式的一个应用。
7.类加载机制?双亲委派?
8.有没有用过jmap等分析工具,说一下oom怎么排查
9.为什么用redis?redis存什么东西?用的哪个数据类型?怎么保证一致性的?一致双删的过程?不用一致双删会怎么导致数据不一致?如果先更新redis再更新数据库会出现什么问题?但是你这个项目一般不会出现同时更新的情况呀查询比较多?如果先更新redis可能存在更新数据库时出错,导致redis新数据,数据库旧数据,那这样并不会影响业务查询?那用redis的持久化机制呢?用redis来存储数据,不用mysql?
10.数据库的三范式了解吗说一下?
答:当然了解!数据库的三范式是关系型数据库设计的一种标准化过程,它的目的是消除冗余数据,提高数据存储的效率和数据查询的性能。具体来说,它包括了第一范式(1NF)、第二范式(2NF)和第三范式(3NF)。
第一范式(1NF)要求数据库表的每一列都是不可分割的基本数据项,也就是说,同一列中不能有多个值或重复的属性。这保证了数据的原子性,即数据不可再分。
第二范式(2NF)建立在第一范式的基础上,它要求数据表中的每个非主键字段必须完全依赖于整个主键,而不是仅仅依赖于主键的一部分。这确保了数据的唯一性,避免了部分依赖的问题。
第三范式(3NF)则要求非主键字段之间不存在传递依赖关系,也就是说,一个非主键字段不能依赖于另一个非主键字段。这确保了数据的独立性,防止了数据冗余和更新异常。
11.项目最大的难点?怎么解决的?
12.算法题:看你项目里用了LRU,手撕LRU
13.反问:部门是做什么的?用的什么语言?
七点面到八点?你们一般几点下班?
面完30分钟到复试