面经深度解析:小红书Java后台

什么情况下加什么行锁:
这里考察的是对数据库加锁的理解。当多个事务尝试同时修改同一行数据时,可能会导致数据不一致,为了保证数据的一致性和事务的隔离性,数据库系统会在事务试图修改数据时对相关行加锁,直到事务提交或回滚。因此我们从可能导致修改同一行数据的场景出发,来进行回答。

乐观锁的使用场景:
乐观锁是一种并发控制策略,主要用于在多用户共享资源的场景下,尤其是在分布式系统和高并发环境下,用来减少锁的竞争和提高系统的整体吞吐量。乐观锁假设大多数情况下不会发生冲突,因此在读取数据时不立即加锁,而是在更新数据时才检查数据是否已被其他事务修改过。回答该问题,我们可以思考哪些场景不会发生冲突,也就是哪些场景是读取数据大于写入数据。

三种限流算法的使用场景和实现:
限流算法的主要目的是控制在一定时间内请求的数量,防止系统资源被耗尽。不同的算法有不同的特点和适用场景,选择合适的算法需要考虑到系统的实时性、准确性和灵活性需求。常见的限流算法包括固定窗口算法、滑动窗口算法和漏桶算法。

redis持久化:
Redis的持久化机制确保了数据的持久性和可靠性,即使在服务器重启或故障后,也能恢复数据。RDB和AOF是两种主要的持久化方式,它们在数据恢复速度、数据完整性和资源占用等方面有所不同,因此适用于不同的场景和需求。因此我们可以从两种方式的使用场景、实现方式进行解答。

讲讲jdk1.8的垃圾回收
jdk1.8的垃圾回收机制中,垃圾回收器的设计目标是在不同场景下提供最优的性能。这包括最小化应用程序暂停时间、最大化吞吐量、以及在大型堆上保持良好性能。不同的垃圾回收器通过采用不同的策略和算法来达到这些目标,从而适应不同的应用程序需求。我们可以从各个回收机制的实现、优劣势、使用场景进行回答。

发生频繁的fullgc可能由什么原因导致
Full GC涉及整个堆的垃圾回收,包括年轻代和老年代,因此它通常比仅针对年轻代的垃圾回收更加耗时,对系统性能的影响也更大。频繁的Full GC不仅会增加系统的暂停时间,还可能消耗大量的CPU资源,导致应用程序响应变慢甚至停止响应。

Spring源码用到的设计模式
这里主要考察面试者对于设计模式和Spring框架的综合理解,每种设计模式在Spring中的应用都有其特定的目的和场景,理解这些模式有助于深入掌握框架的内部机制。

SpringBoot和Spring
主要考察面试者对常用的两个开发框架的认知。Spring 是一个全面的框架,提供了企业级应用开发的各种功能,包括依赖注入、面向切面编程、事务管理、数据访问、MVC框架等。而Spring Boot是在Spring基础上发展起来的一个子项目,旨在简化Spring应用的初始搭建以及开发过程,强调约定优于配置的原则。我们可以从两个框架的联系与区别进行回答。
    

需要完整面经解析文档的,欢迎评论:面经解析
👥面试题目 #Java#  #面试#  #小红书招聘#  #秋招#  #面试交流地#
全部评论

相关推荐

2 4 评论
分享
牛客网
牛客企业服务