- 博客(170)
- 收藏
- 关注
原创 你能写出正确的网址吗?
严格地说,URI 不完全等同于网址,它包含有 URL 和 URN 两个部分,在 HTTP 世界里用的网址实际上是 URL——统一资源定位符(Uniform Resource Locator)。但因为 URL 实在是太普及了,所以常常把这两者简单地视为相等。
2024-07-15 16:42:17
909
原创 计算机网络浅谈—什么是 OSI 模型?
开放系统互连 (OSI) 模型是由国际标准化组织创建的概念模型,支持各种通信系统使用标准协议进行通信。简单而言,OSI 为保证不同计算机系统能够相互通信提供了标准。
2024-07-06 21:19:23
1399
原创 【报错解决】引入@ComponentScan注解注册bean容器后,导致的接口404问题
由于微服务开发中,经常需要在公共模块在引入一些公共模块,供其他服务使用,但是其他服务需要在启动类中配置@ComponentScan注解扫描这个公共模块下注册的 bean,但是,如果我们配置了@ComponentScan并且扫描了公共模块下的 bean,那么将会破坏@ComponentScan默认扫描的包,也就是@ComponentScan默认扫描的启动类同级目录下的包会破坏,此时我们当前模块的所有包都不会被注册,也就导致了 web 项目找不到控制器,从而报错 404。
2024-06-22 11:10:43
451
原创 计算机网络协议详解
计算机通信诞生之初,系统化与标准化未收到重视,不同厂商只出产各自的网络来实现通信,这样就造成了对用户使用计算机网络造成了很大障碍,缺乏灵活性和可扩展性。为解决该问题,国际标准化组织(ISO)在1978年提出了“开放系统互联参考模型”,即著名的OSI/RM模型(Open System Interconnection/Reference Model)。它将计算机网络体系结构的通信协议划分为七层。
2024-06-16 21:48:59
997
原创 FastDFS
FastDFS是一个开源的轻量级分布式文件系统。它解决了大数据量存储和负载均衡等问题。特别适合以中小文件(建议范围:4KB < file_size
2024-06-06 19:49:09
586
原创 【刷爆力扣之101.对称二叉树-100.相同的树】
这道题和上面的101对称二叉树本质上是同一道题,都是判断两颗二叉树的各个位置的节点是否相同,对称二叉树主要看同一颗树的左右两颗子树是否是相互对称的,因此需要判断左子树的内侧节点以及外侧节点与右子树的内侧节点与外侧节点是否相同,而本题主要判断两颗树相同位置的节点是否相同,本质上都是一样的,思路上也有很多相同之处。
2024-05-06 08:06:49
890
2
原创 【刷爆力扣之589-590. N叉树的前序遍历和后序遍历】
在后序遍历中,我们会先从左向右依次后序遍历每个子节点为根的子树,再遍历根节点本身。此时利用栈先进后出的原理,依次从右向左将子节点入栈,这样出栈的时候即可保证从左向右依次遍历每个子树。
2024-05-03 23:49:41
786
2
原创 RocketMQ SpringBoot 3.0不兼容解决方案
很多小伙伴在项目升级到springBoot3.0版本以上之后,整合很多中间件会有很多问题,下面带小伙伴解决springBoot3.0版本以上对于RocketMQ 不兼容问题
2024-05-03 20:07:46
450
原创 【刷爆力扣之637. 二叉树的层平均值】
使用深度优先搜索计算二叉树的层平均值,需要维护两个数组,counts 用于存储二叉树的每一层的节点数,sums 用于存储二叉树的每一层的节点值之和。搜索过程中需要记录当前节点所在层,如果访问到的节点在第 i 层,则将 counts[i] 的值加 1,并将该节点的值加到 sums[i]。
2024-05-01 22:02:35
545
原创 【刷爆力扣之二叉树】107. 二叉树的层序遍历 II
这道题要求进行自底向上的层序遍历,可以先使用正序层序遍历的方式对树进行遍历,然后将每一层的遍历结果放入一个栈数据结构中,等遍历完成后,将栈数据结构中的每一层的节点再弹出加入到结果集合,即可将原先栈中的数据顺序反转,实现自底向上的层序遍历
2024-05-01 20:55:36
418
1
原创 【刷爆力扣之二叉树】102. 二叉树的层序遍历
二叉树的层序遍历需要队列数据结构,还需要记录每一层节点的个数,可以定义一个变量记录,也可以直接使用队列中元素个数表示每一层的节点个数,每次获取队列头中的节点后,需要判断该节点是否有左右孩子,如果有,则放入队列,并且将记录每一层节点个数的变量加一。
2024-05-01 20:53:46
603
原创 排序算法大总结
排序算法(sorting algorithm)是用于对一组数据按照特定顺序进行排列。排序算法有着广泛的应用,因为有序数据通常能够被更高效地查找、分析和处理。排序算法中的数据类型可以是整数、浮点数、字符或字符串等。排序的判断规则可根据需求设定,如数字大小、字符 ASCII 码顺序或自定义规则。
2024-04-30 17:02:09
2009
原创 【今日刷题】LeetCode 199.二叉树的右视图(中等)
给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。
2024-04-10 17:35:34
328
原创 【面试手撕算法】冒泡排序算法
冒泡排序是一种简单的排序算法,它重复地遍历要排序的列表,一次比较两个相邻的元素,并且如果它们的顺序错误就交换它们。这个过程会持续多次,直到没有再需要交换,也就是说列表已经排序完成。这个算法的名字由于越小的元素会经由交换慢慢“浮”到数列的顶端,所以被称为冒泡排序。
2024-04-09 11:59:39
382
原创 【面试手撕算法】快速排序算法
快速排序(Quicksort)是一种常用的排序算法,它是一种分治算法,通过将问题分解成更小的子问题来解决整个问题。快速排序的基本思想是选择一个基准元素,然后将数组中小于基准元素的元素移到基准元素的左边,大于基准元素的元素移到右边,然后递归地对左右两个子数组进行排序。
2024-04-09 11:27:35
1067
原创 【深入理解设计模式】命令设计模式
命令模式(Command Pattern)是一种行为型设计模式,它将请求封装为一个对象,从而使你可以用不同的请求对客户端进行参数化,对请求排队或记录请求日志,以及支持可撤销的操作。
2024-03-13 14:54:46
983
原创 【深入理解设计模式】策略设计模式
策略模式(Strategy Pattern)是一种行为型设计模式,它定义了一系列算法,并将每个算法封装到具有公共接口的一系列具体策略类中,使它们可以相互替换。策略模式让算法独立于使用它的客户端。
2024-03-13 14:40:59
1124
原创 【深入理解设计模式】模板方法模式
模板方法模式是一种行为设计模式,它定义了一个操作中的算法骨架,将某些步骤延迟到子类中实现。模板方法模式使得子类可以不改变算法结构的情况下,重新定义算法的某些特定步骤。
2024-03-10 21:45:11
1063
原创 【深入理解设计模式】享元设计模式
享元设计模式(Flyweight Design Pattern)是一种用于性能优化的设计模式,它通过共享尽可能多的相似对象来减少对象的创建,从而降低内存使用和提高性能。享元模式的核心思想是将对象的共享部分提取出来,使得多个对象可以共享同一个享元对象,从而减少对象的创建。
2024-03-08 20:34:11
883
原创 【深入理解设计模式】组合设计模式
组合模式是一种结构型设计模式,它允许你将对象组合成树状结构来表现“整体-部分”关系。组合模式使得客户端可以统一对待单个对象和组合对象,从而使得代码更加灵活和易于扩展。
2024-03-02 21:17:49
974
原创 【深入理解设计模式】外观设计模式
外观设计模式(Facade Design Pattern)是一种结构型设计模式,旨在为复杂系统提供简单的接口。该模式通过为子系统提供一个高级接口,使得客户端与子系统之间的交互更加简单。外观设计模式通常被用来隐藏系统的复杂性,并且提供一个简化的接口,以便客户端能够更容易地使用系统。
2024-03-02 20:58:27
1155
原创 【深入理解设计模式】桥接设计模式
桥接设计模式是一种结构型设计模式,它旨在将抽象部分与实现部分分离,使它们可以独立变化,从而更好地管理复杂性。桥接模式通常涉及多个层次的抽象,其中一个层次(通常称为"抽象")依赖于另一个层次(通常称为"实现")的实例。
2024-02-26 21:37:52
1063
原创 【深入理解设计模式】装饰者设计模式
装饰者设计模式(Decorator Design Pattern)是一种结构型设计模式,它允许向现有对象添加新功能而不改变其结构。这种模式通常用于需要动态地为对象添加功能或行为的情况,而且这些功能可以独立于对象本身来进行扩展。
2024-02-26 16:25:43
1178
原创 【深入理解设计模式】适配器设计模式
适配器设计模式是一种结构型设计模式,用于将一个类的接口转换成客户端所期望的另一个接口,从而使得原本由于接口不兼容而不能一起工作的类能够一起工作。
2024-02-25 12:32:45
1176
原创 【深入理解设计模式】代理设计模式
代理设计模式是一种**结构型设计模式**,它允许你提供一个替代物或占位符来控制对其他对象的访问。在代理模式中,一个类代表另一个类的功能。这种类型的设计模式属于结构型模式,因为该模式涉及类和对象的组合。
2024-02-25 10:45:07
1435
原创 【深入理解设计模式】建造者设计模式
建造者设计模式(Builder Pattern)是一种创建型设计模式,旨在通过将复杂对象的构建过程拆分成多个简单的步骤,使得相同的构建过程可以创建不同的表示。该模式允许您使用相同的构建过程来创建不同的对象表示。
2024-02-23 09:36:37
1157
原创 【深入理解设计模式】原型设计模式
原型设计模式(Prototype Pattern)是一种创建型设计模式,它允许通过复制已有对象来创建新对象,而无需直接依赖它们的具体类。这种模式通常用于需要频繁创建相似对象的场景,以避免昂贵的创建操作或初始化过程。用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型对象相同的新对象。
2024-02-23 08:43:05
1229
原创 【深入理解设计模式】 工厂设计模式
工厂设计模式是一种创建型设计模式,它提供了一种在不指定具体类的情况下创建对象的接口。在工厂设计模式中,我们定义一个创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。
2024-02-21 09:24:27
1120
原创 【深入理解设计模式】单例设计模式
单例设计模式是一种创建型设计模式,其主要目的是确保类在应用程序中的一个实例只有一个。这意味着无论在应用程序的哪个位置请求该类的实例,都将获得同一个实例。这种模式通常用于控制某些共享资源的访问,或者在整个应用程序中管理唯一的状态。
2024-02-19 23:02:41
1291
原创 【深入理解设计模式】详细聊聊软件设计的七大原则
软件设计原则是指在进行软件系统设计时所遵循的一系列指导原则,它们旨在帮助软件工程师设计出高质量、易维护、可扩展和可重用的软件系统。这些原则是经过实践验证的,能够在软件开发的各个阶段提供指导和支持。七大软件设计原则,也被称为设计模式原则,是《设计模式:可复用面向对象软件的基础》一书中提出的。
2024-02-19 20:54:05
1643
原创 【数据结构与算法】手搓JDK底层ArrayList底层 - 动态数组
数组(Array)是一种线性数据结构,它由一组连续的内存空间组成,用来存储相同类型的数据元素。数组具有固定的大小,一旦创建后,其大小通常不能被动态改变。每个元素在数组中都有一个唯一的索引,通过索引可以快速访问数组中的元素。
2024-02-18 17:47:51
1090
原创 手把手带你Git入门,从下载到精通,常用git命令
Git是一种代码托管技术。在开发中,Git是一种代码托管技术,很多代码托管平台也是基于Git来实现的。Git可以帮我们做到很多的事情,比如代码的版本控制,分支管理等。
2024-01-29 12:31:34
748
原创 【自定义镜像—Dockerfile完全指南】常用的十三种dockerfile指令及构建Tomcat镜像例子
Dockerfile是一个文本格式的配置文件,用户可以使用Dockerfile快速创建自定义的镜像。
2024-01-29 12:20:33
3694
原创 Linux下软件安装的命令【RPM,YUM】及常用服务安装【JDK,Tomcat,MySQL】
以源代码安装软件,每次都需要配置操作系统、配置编译参数、实际编译,最后还要依据个人喜好的方式来安装软件。这个过程很麻烦很累人。
2024-01-22 10:11:58
1655
原创 【Linux常用命令——文件基本属性即权限操作】
Linux ls(英文全拼:list files)命令用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录)。Linux可以支持长达256个字符的文件名称,且文件名是区分大小写的,“abc” 与 "ABC"所代表的是不同文件。
2024-01-19 17:32:04
913
原创 【算法提升】LeetCode每五日一总结【01/07--01/12】
二叉搜索树是一种特殊的二叉树,其中每个节点的左子节点的值都小于该节点,每个节点的右子节点的值都大于该节点。
2024-01-19 17:21:11
996
原创 Docker部署Dubbo-Admin浏览器无法访问问题!
很多小伙伴在使用docker部署Dubbo-Admin会出现浏览器无法访问问题,但是虚拟机防火墙都是关着的,那么这可能是镜像源出现问题了,可以按照如下方法操作:
2024-01-18 16:28:13
821
2
java容器大总结思维导图
2023-11-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人