- 博客(212)
- 收藏
- 关注
原创 手写mini-spring项目梳理
spring相关的异常BeanDefinition类:Bean的定义(核心),不包含Bean的具体信息BeanDefinitionRegistry接口:注册Bean(核心),定义注册Bean方法BeanFactory接口:IoC容器的核心接口,定义获取Bean的方法(核心)SingletonBeanRegistry接口:定义了一个获取单例对象的接口。
2025-11-21 10:53:55
818
原创 黑马点评逻辑梳理+面试题
我参与的 “XXXXXX系统” 是一个基于 SpringBoot 的前后端分离项目,主要围绕本地生活服务场景,实现了短信验证码登录、店铺查找、优惠券秒杀、到店点评的业务流程。其中最大的难点我认为就是优惠券秒杀,这里遇到过超卖问题和一人一单问题,超卖问题是我在进行测试时发现100张优惠券生成了120个左右的订单,这里明显是有问题,后来我进行排查发现原来是库存判断和扣减的非原子性操作,从而导致超卖。
2025-11-19 13:29:54
636
原创 Linux&git入门&设计模式(常考点)
System.out.println("去医院看病了~");//由于现在不知道该开什么处方,所以只能先定义一下行为,然后具体由子类实现//大致的流程先定义好就行//开药同理//开处方操作根据具体病症决定了//拿药也是根据具体的处方去拿。
2025-11-09 18:48:00
933
原创 操作系统面试题学习
操作系统是计算机系统中管理硬件和软件资源的中间层系统,屏蔽了硬件的复杂性,并且为用户提供了便捷的交互方式,比如说 Windows、Linux、MacOS 等操作系统核心有四大功能:文件、cpu、内存、IO管理文件管理:提供文件增删改的功能,并维护文件的存储结构cpu管理:也就是进程管理,用于创建和终止进程内存管理:为进程分配资源,并存储应用信息IO管理:管理连接设备以及网络IO与os的交互用户态和内核态的划分主要源于内存的划分,操作系统的内存分为内核空间和用户空间,
2025-11-09 16:22:24
521
原创 计算机网络面试题
OSI 是理论上的网络通信模型,TCP/IP 是实际应用层面上的网络通信模型OSI模型包括7层:应用层:负责给应用程序提供统一的接口表示层:负责数据格式转换会话层:维护通信会话传输层:负责端到端的传输网络层:负责主机到主机的传输数据链路层:进行数据的封装、寻址物理层:在物理链路中进行传输TCP/IP模型包括四层:应用层 :支持HTTP、DNS(SMTP、FTP)等协议,为用户提供应用功能传输层:负责端到端的传输(TCP、UDP协议)网际层:实现主机到主机的传输,依靠于IP协议。
2025-11-09 15:32:20
570
原创 高频八股自用
是不可变类,实现原理是String类里有final数组来存放字符串,本身类也是final不可被继承修改,而且提供的方法对字符串操作都不会修改源字符串,会新建一个返回。负载因子是0.75,当HashMap里元素的数量超过容量*负载因子时会发生扩容至原来的2倍。负载因子如果太低,比如0.5则会浪费很多空间,如果是0.9则会发生太多冲突导致性能下降。0.75 是 JDK 作者经过大量验证后得出的最优解,能够最大限度减少 rehash 的次数。而且由于容量是2的幂,所以算出来的数恰好都为整数。
2025-11-05 15:48:33
780
原创 codetop高频(6)
dp[i][j]表示word1的前i个字符(最大下标i-1)与word2的前j个字符(最大下标j-1)的最少操作数。否则取dp[i-1][j]\dp[i][j-1]\dp[i-1][j-1]最小加1。简单模拟,用StringBuilder存答案,因为是倒序所以最后要反转。从末尾遍历两个字符串,转换为数字相加,留下进位,取模存到ans里面。dp经典题目,首先dp数组初始化两边,并且考虑指针越界问题。退出循环有两种可能,要么走到同一节点,要么都为null。如果当前两位置相等,则直接等于dp[i-1][j-1]
2025-10-22 12:33:50
148
原创 codetop高频(5)
层序遍历,再用collections反转偶数层。注意用两个list,一个存ans一个存layer,一个queue,存树节点。使用快慢指针,一个两步,一个一步。每次都要判断right及right的下一个节点不为空,因为要移动否则会报空指针异常。遍历四周,直到元素等于总和停下,每次加入前都要判断。i,j算位置,注意回溯及移位,回到最左边前layer++,算最外层有多厚。
2025-10-21 10:20:28
348
原创 codetop高频(4)
依旧要维护四个指针,反转过程中的cur和pre,left和right存反转的前一个节点和反转开始节点,这样最后把这四个节点连起来就能将反转链表插入原链表中。使用ArrayDeque实现栈,如果为前置符号直接放入后置对应符号,如果为空或者栈内符号不等于当前符号,证明后置错误,返回false。pre存最小的价格,如果当前比之前高就比较一下,每次更新一下pre。为空或pq就返回该节点(假设pq在同一颗子树上会直接返回最高节点)然后查左子树右子树,如果都不为空则pq在两边,返回中间。最后栈不为空返回false。
2025-10-20 13:10:32
256
原创 codetop高频(3)
dfs:遍历四个方位算出当前位置,如果越界就跳过,如果不是岛屿或者走过了就跳过。先去找最小位置的下标,然后再判断去左右哪边进行二分查找,注意越界和不等情况。使用arraydeque来实现队列存放Node节点,集合的使用较为多。一个path数组,一个visit数组(回溯算法需要path)初始化4个方位的数组,一个岛屿二维数组和visit数组。遍历每一个元素,如果找到了没走过的岛屿就dfs并+1。dfs遍历的时候注意删除判断,用size()-1进行。在就返回,不在就放入。否则标记走过并进入。
2025-10-19 15:22:10
255
原创 codetop高频(2)
如果i==j并且字符串长度小于等于3(2、3长度回文)或i-1==j+1(3以上长度回文)就让dp为true。主函数直接调用,quicksort分左右两侧遍历,不稳定,元素相等会交换位置。<2直接返回,默认最小值为1,dp[i][j]表示i到j的字符串是否回文。一个循环判断即可,比较当前节点的值小的放进来,然后移动两个指针。注意先排序,然后第一个位置重复了跳过,里面重复了跳过。还有swap函数,注意i,j,l,r的大小关系。dp(最佳写法,还有中心扩散法但不如dp)初始化一个头结点,和一个新链表指针。
2025-10-16 21:11:42
288
原创 codetop高频(1)
初始化时简历linkedHashMap并初始化accessorder为true,让它按找访问顺序排序(get\put时更新),这里它会自动将最近访问移到链表最前面,还有重写里面的removeEldestEntry方法,它会在put新元素时检查是否要移除最老元素,如果为true则移除。(其实这个代码有一个小bug,那就是对于未访问但已过期的元素没有及时删除,不过要实现完整的在面试的短时间内感觉够呛,这样感觉应付面试官也够用了)使用集合 O(Nlogk),最小堆存元素,超过k了就移除堆顶,实现简单。
2025-10-15 14:45:35
422
原创 SSM面试题学习
IoC:即控制反转的意思,它是一种创建和获取对象的技术思想,依赖注入(DI)是实现这种技术的一种方式。传统开发过程中,我们需要通过new关键字来创建对象。使用IoC思想开发方式的话,我们不通过new关键字创建对象,而是通过IoC容器来帮我们实例化对象,并进行Bean对象生命周期的管理,可以大大降低对象之间的耦合度。AOP:是面向切面编程,能够将那些与业务无关,却为业务模块所共同调用的逻辑封装起来,以减少系统的重复代码,降低模块间的耦合度。
2025-10-07 19:26:23
926
原创 Redis面试题学习
redis作为缓存主要有四个问题,分别是缓存穿透、缓存击穿、缓存雪崩以及缓存一致性问题。缓存穿透是指当用户访问的数据,既不在缓存中,也不在数据库中,导致出现大量Redis不存在数据的请求落入DB,从而导致DB出现瓶颈或者直接被打宕机,整个系统陷入瘫痪。解决方案也有几种,对于恶意攻击我们可以做ip限流和非法校验,在redis中缓存一个空值或默认值,或者也可以使用布隆过滤器快速判断是否存在。
2025-10-07 13:22:33
832
原创 demo:基于 SpringMVC 的用户管理系统
其实这个demo的有些逻辑并不是非常合理,主要是自己动手体验一下mvc的架构,并且多熟悉一下其中的注解和配置,我争取后续的demo中业务逻辑更加的完善一些。
2025-06-30 19:56:55
490
原创 SSM重点复习
使用@RequestBody注解将json数据转换为Java对象前提:导入jackson依赖、使用注解@EnableWebMvc(配置json转换器)//接受Cookie//接受请求头 使用@RequestHeader共享域:request\session\servletcontext\model家族。
2025-06-17 10:33:14
719
原创 面试算法刷题3(核心+acm)
哈希表,将元素,下标键值对存储进去,然后遍历查找即可。string数组转为int数组再遍历,最后输出答案。不断递归根节点,根据深度来判断加在哪一层上。时空复杂度都为O(n)
2025-05-20 15:33:44
381
原创 计算机网络:网络层知识点及习题(二)
在RIP中,假设路由器X和路由器K是两个相邻的路由器,X向K说:“我到目的网络Y的距离为N(假设N小于15)”,则收到此信息的K就知道:“若将到网络Y的下一个路由器选为X,则我到网络Y的距离为”A. 在进行路由信息交换时,OSPF协议中的路由器向本自治系统中的所有路由器发送信息,RIP协议中的路由器仅向自己相邻的路由器发送信息。B. 在进行路由信息交换时,OSPF协议中的路由器发送的信息只是链路状态数据库中的部分内容,RIP协议中的路由器发送的信息是整个路由表。
2025-01-04 19:26:37
1173
1
原创 计算机网络:网络层知识点及习题(一)
网络层实现主机到主机的传输,主要有分组转发和路由选择两大功能路由选择处理机得出路由表,路由表再生成转发表,从而实现分组从不同的端口转发网络层向上层提供的两种服务:面向连接的虚电路服务、无连接的数据报服务。因特网采用后者。
2025-01-02 19:53:18
1382
原创 计算机网路:运输层知识点及相关习题
主机甲和主机乙之间建立了一个TCP连接,TCP最大段长度为1000字节,若主机甲当前发送窗口为6000字节,不考虑拥塞窗口,在主机甲向主机乙连续发送三个最大段后,成功收到主机乙发送的第一个段的确认段,确认段中通告的接收窗口大小为4000字节,则此时主机甲还可以向主机乙发送的最大字节数是。主机甲和乙建立了TCP连接,主机甲向主机乙发送了两个连续的TCP段,分别包含200字节和300字节的有效载荷,第一个段的序号为100,主机乙正确接收到两个段后,发送给主机甲的确认号是。
2024-12-28 18:44:21
942
原创 计算机网络:数据链路层(三)
3 在下图中,假设交换机的转发表是空的,主机H2给H3发送一个单播帧,则能收到该单播帧的主机有。A. IEEE 802.1Q帧对以太网的MAC帧格式进行了扩展,插入了4字节的VLAN标记。C. 交换机之间传送的帧可能是IEEE 802.1Q帧,也可能是普通以太网帧。2 假设交换机的转发表是空的,当交换机收到某个单播帧后,会将该帧。D. 记录数据包的目的IP地址与该数据包进入交换机的端口号。B. 记录帧的目的MAC地址与该帧进入交换机的端口号。A. 记录帧的源MAC地址与该帧进入交换机的端口号。
2024-12-12 16:06:38
1385
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅