- 博客(218)
- 收藏
- 关注
原创 【案例】Java使用ffmpeg实现rtsp视频流转hls、rtmp流
linux系统直接运行命令ubuntu:centos:windows系统下载包+配置环境变量环境变量配置就在path中加一个你下载下来的包解压后的一直到bin目录的路径地址。
2025-02-26 14:44:01
892
原创 使用frp实现本地内网穿透
环境:linux (具有公网ip的线上服务器)、windows(本地)、frp首先下载下来下面两个文件概览 | frp一些概述,便于您快速的了解 frp。
2025-01-08 16:59:50
408
原创 BrianKernighan算法
看左程云大佬的算法课的时候觉得很精妙的算法,就整理总结了下来https://space.bilibili.com/8888480
2024-12-05 10:28:31
422
原创 基础排序算法概述
时间复杂度空间复杂度稳定性选择排序O(n^2)O(1)不稳定冒泡排序O(n^2)O(1)稳定插入排序O(n^2)O(1)稳定归并排序O(nlogn)O(n)稳定快速排序O(nlogn)O(logn)不稳定堆排序O(nlogn)O(1)不稳定基数排序O(n)O(m)稳定数据量很小的情况下直接用插入排序比较快且易于实现;性能优异、实现简单、不在乎稳定性且利于改进,选择随即快排;性能优异、不在乎额外空间占用、在乎稳定性,选择归并排序;
2024-12-02 16:29:37
442
1
原创 Netty核心源码与优化
如果有复杂的业务逻辑操作,建议IO线程和业务线程分离,对于IO线程,由于互相之间不存在锁竞争,可以创建一个大的NioEventLoopGroup线程组(具体线程数量要根据CPU核心数、连接数和负载情况调整,线程过多会带来线程上下文切换开销大,反而可能性能降低),所有Channel都共享同一个线程池;在Netty中Boss线程主要负责接受客户端的连接请求,通常默认为Boss线程数为一个线程,当有大量设备或客户端同时连接,Boss线程的处理能力可能会成为瓶颈;,确保每个 Channel 都具有一致的配置;
2024-10-29 14:27:14
1230
1
原创 Netty核心组件
入站处理流程中,如果对原消息不做处理,调用 ctx.fireChannelRead(msg) 把原消息往下传,由流水线最后的 TailHandler 完成自动释放。如果截断了入站处理流水线,则可以继承 SimpleChannelInboundHandler ,完成入站ByteBuf自动释放。出站处理过程中,申请分配到的 ByteBuf,通过 HeadHandler 完成自动释放。
2024-10-23 09:32:06
735
原创 RPC通讯基础原理
RPC是一种通过网络从远程计算机上调用程序的技术,使得构建分布式计算更加容易,在提供强大的远程调用能力时不损失本地调用的语义简洁性,提供一种透明调用机制,让使用者不必显式的区分本地调用和远程调用;
2024-10-17 19:37:23
1537
原创 SpringBoot项目热部署-devtools
DevTools 会使用两个类加载器(一个用于加载不变的类,一个用于加载可能会变化的类),每次重启只重新加载管理变化的类的加载器,因此会快很多。
2024-10-14 15:50:05
740
原创 设计模式-行为型模式-中介者模式
定义一个单独的(中介)对象,来封装一组对象之间的交互,将这组对象之间的交互委派给中介对象交互,从而避免对象之间的交互;中介者模式主要解决对象间的交互复杂性问题,而代理模式则主要用于控制对某个对象的访问;
2024-09-23 14:46:19
648
原创 设计模式-行为型模式-命令模式
命令模式将请求封装为一个对象,这样可以使用不同的请求参数化其他对象(将不同请求依赖注入到其他对象),并且能够支持请求的排队执行、记录日志、撤销等功能;
2024-09-20 11:13:51
777
原创 设计模式-行为型模式-备忘录模式
在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以在以后将对象恢复到原先保存的状态;
2024-09-13 17:27:43
717
原创 设计模式-行为型模式-访问者模式
允许在运行时将一个或多个操作应用于一组对象,将操作与对象结构分离;访问者模式主要解决的是数据与算法的耦合问题,尤其是在数据结构比较稳定,而算法多变的情况下,为了不污染数据本身,访问者会将多种算法独立归档,并在访问数据时根据数据类型自动切换到对应的算法,实现数据的自动响应机制,并确保算法的自由扩展;
2024-09-13 16:38:37
1045
原创 设计模式-行为型模式-迭代器模式
迭代器模式提供一种对容器对象中的各个元素进行访问的方法,而不需要暴露该对象的内部细节;在软件系统中,容器对象有两个职责:一是存储数据,二是遍历数据;从依赖性上看,前者是基本职责,而后者是可以变化的,又是可以分离的,因此可以将遍历数据的行为从容器中抽取出来,封装到迭代器对象中,由迭代器来提供遍历数据的行为,这将简化聚合对象的设计,更加符合单一职责原则;对于迭代器模式,设计时很少用到,但编码时经常用到,目前大多数编程语言中,迭代器已经成为一个基础的类库,直接能用来遍历集合对象;
2024-09-06 16:47:07
944
原创 设计模式-行为型模式-状态模式
允许一个对象在其内部状态改变时改变他的行为,用于解决系统中复杂对象的状态转换以及不同状态下行为的封装问题,状态模式将一个对象的状态从该对象中分离出来,封装到专门的状态类中,使得对象的状态可以灵活变化;
2024-09-06 15:24:58
1055
原创 设计模式-行为型模式-职责链模式
避免讲一个请求的发送者与接收者耦合在一起,让多个对象都有机会处理请求,将接受请求的对象连接成一条链,并且沿着这条链传递请求,直到有一个对象能处理他为止;
2024-09-05 10:49:50
887
1
原创 设计模式-行为型模式-策略模式
定义一系列算法,将每个算法封装起来,并使他们可以相互替换,使得算法可以随着使用他的客户端变化而变化;当实现某一个功能存在多种算法或策略,我们可以根据环境或者条件的不同选择不同的算法或者策略来实现该功能;
2024-09-05 09:56:52
648
原创 设计模式-行为型模式-模板方法模式
模板方法模式在父类中定义了一个算法的框架,允许子类在不修改结构的情况下重写算法的特定步骤;是一种基于继承的代码服用技术,其结构只存在于父类与子类之间的继承关系下;
2024-09-04 17:14:38
677
1
原创 设计模式-结构型模式-享元模式
摒弃了在每个对象中保存所有数据的方式,通过共享多个对象所共有的相同状态,从而让我们能在有限的内存容量中载入更多对象;
2024-08-30 14:48:31
1293
原创 设计模式-结构型模式-组合模式
将对象组合成树形结构以表示整个部分的层次结构,组合模式可以让用户统一对待单个对象和对象的组合;其更像是一种数据结构和算法的抽象,其中数据可以表示成树这种数据结构,业务需求可以通过在树上的递归遍历算法来实现;
2024-08-29 16:58:56
742
原创 Linux字体缺失导致EasyExcel报错
安装ttmkfdir,当你在 Linux 系统中加了新的字体,可以使用 ttmkfdir 生成相关的字体配置文件,使得字体能被 X11 系统识别和使用;系统未联网:最烦的就是版本问题,直接从官网下载版本一直冲突,于是我用另一个同样centos7系统下载下来包然后移到问题服务器;环境:centos7(华为云服务器),jdk17,springboot3。在问题服务器中创建文件夹,然后将字体文件移过来。easyExcel的配置中别忘了设置字体。回到windows系统找要用的字体。保存,然后刷新字体缓存。
2024-08-29 16:12:01
875
原创 设计模式-结构型模式-外观模式
为子系统中的一组接口提供统一的接口,它定义了一个更高级别的接口,使得子系统更易于使用;相当于公司部门之间通过代表来沟通,这样减少无效、复杂的沟通;
2024-08-28 09:28:20
540
原创 设计模式-结构型模式-装饰器模式
装饰器模式动态的给一个对象添加一些额外的职责,就扩展功能而言,装饰器模式提供了一种比子类更加灵活的方案;在软件设计中,装饰器模式是一种用于替代继承的技术,通过一种无需定义子类的方式给对象动态的增加职责,使用对象之间的关联关系取代类之间的继承关系;
2024-08-23 14:21:24
1315
原创 设计模式-结构性模式-桥接模式
桥接模式就是将抽象部分与他的实现部分分离,使他们都可以独立的变化;桥接模式用一种巧妙地方式处理多层继承存在的问题,用抽象关联来取代传统的多层继承,将类之间的静态继承关系转变为动态的组合关系,使得系统更加灵活,并易于扩展,有效地控制了系统中类的个数;
2024-08-23 10:44:39
776
原创 设计模式-创建型模式-工厂模式
工厂模式提供了一种创建对象的最佳方式,在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象;工厂模式分为三种:简单工厂、工厂方法和抽象工厂;
2024-08-06 11:17:03
684
原创 设计模式-六大设计原则
一个类或者模块只负责完成一个职责;【实例】上面这个类,当此类只是用来展示用户信息,则设计符合单一职责;当此用户的地址经常需要使用,比如电商平台类的项目,则需要将地址信息分离出来才符合单一职责。1.1 如何判断一个类是否违反单一职责类中代码行数、函数、属性过多类依赖的其他类过多(如果某个 service 类需要依赖多个不同功能的 service 类来完成一个复杂的业务逻辑,但自身的职责仍然是单一的,那么这也是符合单一职责原则的)私有方法过多。
2024-07-31 14:11:35
903
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人