SpringBoot面经——SpringBean部分
SpringBoot面经——SpringBean部分 Spring组成 Core Container Spring 框架的核心模块,也可以说是基础模块,主要提供 IoC 依赖注入功能的支持。 Spring 其他所有的功能基本都需要依赖于该模块,我们从上面那张 Spring 各个模块的依赖关系图就可以
螺旋矩阵
螺旋矩阵 leetcode.59 给定一个正整数 n,生成一个包含 1 到 n^2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。 示例: 输入: 3 输出: [ [ 1, 2, 3 ], [ 8, 9, 4 ], [ 7, 6, 5 ] ] 纯动脑题,理清逻辑即可,注意开区间闭区间的事就行。
简单公告
简单公告 基于客户端的公告实现 招新平台的公告设计确实简单,除了发布、查询、编辑功能以外,对用户的已读/未读状态维护得并不完整,用户的已读状态在客户端保存,通过轮询发送本地已读公告id请求服务端未读id,如果有新未读id,直接显示。 在赶进度/人手不足状态下是可理解的,因为从业务角度讲,公告的已读状
邮箱验证码
邮箱验证码 在注册账号、重置密码、验证身份等场景下,需要利用验证码验证用户身份,在确认用户操作后再执行下一步操作。 拆解为关键节点: 生成验证码 设计逻辑验证验证码有效期 利用SMTP服务发送邮件 验证验证码有效性 生成验证码 简单的六位随机数 private String genCode(){
长度最小子数组
长度最小子数组 Leetcode.209 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 子数组 [numsl,..., numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。 滑动窗口 解决这个问题。 相比
搜索插入位置
搜索插入位置 Leetcode.35 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 实际上是 二分查找 plus,关键是领悟如果结果不存在,此时应该返回的下标是left还是
雪花ID
雪花ID 在复杂分布式系统中,往往需要对大量的数据和消息进行唯一标识。如在美团点评支付系统中,数据日渐增长,对数据分库分表后需要有一个唯一 ID 来标识一条数据或消息,数据库的自增 ID 显然不能满足需求;特别一点的如订单、骑手、优惠券也都需要有唯一 ID 做标识。 全局唯一 ID 应当具备什么样的
注解
Java注解 定义 注解提供了一系列数据用来装饰程序代码(类、方法、字段等),但是注解并不是所装饰代码的一部分,它对代码的运行效果没有直接影响,由编译器决定该执行哪些操作。 注解的生命周期有 3 种策略,定义在 RetentionPolicy 枚举中。 SOURCE:在源文件中有效,被编译器丢弃。
RBAC权限管理
RBAC权限管理 Role-Based Access Control:基于角色的权限控制。通过角色关联用户,角色关联权限的方式间接赋予用户权限。在后端开发场景下,权限即表示对某path的可访问性or能访问到什么地步。具体到实现上,一是验证这个请求能否访问这个path,二是验证这个请求的参数是否符合他
二叉树
二叉树 基本定义 二叉树(binary tree)是一种非线性数据结构,代表“祖先”与“后代”之间的派生关系,体现了“一分为二”的分治逻辑。与链表类似,二叉树的基本单元是节点,每个节点包含值、左子节点引用和右子节点引用。 类型 平衡二叉树(balanced binary tree)中任意节点的左子树