自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(260)
  • 收藏
  • 关注

原创 Hugging Face入门(一)

Hugging Face介绍环境搭建敲两个例子是一家法美合资公司,总部位于纽约市,成立于2016年。它由法国企业家和在纽约市创立,最初是一家专注于开发面向青少年的聊天机器人应用的公司。该公司的初始产品是一个能够从用户互动中学习的对话代理。有趣的是,这个聊天机器人的名字来源于“拥抱脸”表情符号.随着该公司将聊天机器人背后的模型开源,它转变为一个专注于机器学习的平台。最著名的是其针对自然语言处理应用构建的库,以及允许用户共享机器学习模型和数据集并展示其工作的平台。

2024-04-07 10:24:58 872

原创 介绍几个AI相关的工具

国内比较好用的类chatgpt类型的AI了,响应速度快,支持大文本分析和联网,免费可用。本地音频视频轻松转文本、字幕并翻译、合成新的语音。

2024-03-31 21:34:32 349

原创 一次java.lang.NoClassDefFoundError的排查过程

最近项目的各类jar包依赖版本都进行了升级,然后测试环境出现一个很诡异的问题,所以记录一下排查过程。

2024-03-19 17:22:35 336

原创 RPA介绍

RPA(Robotic Process Automation),直译为机器人流程自动化,是一种技术,通过软件机器人或“机器人工作者”来模拟和自动执行人类在日常业务流程中执行的重复性任务。这些任务可能包括数据输入、文件处理、数据提取、报告生成等等。RPA的崛起改变了企业业务流程的方式,极大地提高了效率和准确性。

2024-03-17 18:48:56 344

原创 数据推送解决方案调研

对于不同的服务器软件来说,所消耗的资源是不一样的。Node 则是所有连接都使用同一个线程,因此消耗的资源会小得多,但是这要求每个连接不能包含很耗时的操作,比如磁盘的 IO 读写。EventSource又称SSE(Server-Sent-Events),一种服务器端到客户端(浏览器)的单项消息推送方案,它和轮询一样,也是基于http请求来完成的。文档编辑类型的需求,左侧是菜单栏,右侧是内容块,现在的需求时,如果多人同时编辑这个方案,当添加章节/调整章节顺序/删除章节时,其他用户能够及时感知到。

2024-03-08 17:18:07 520

原创 WebSocket服务多节点部署问题及解决方案

pubsub。

2024-02-25 14:15:05 694

原创 文件的版本管理

现在在做一个在线生成文档的东西,就是用户填写的时候都是结构化的东西,不如单选框,多选框,富文本,图片之类的,最后要给用户生成文档或者ppt,或者pdf,然后要做一个版本对比的功能,粒度比较粗糙,只需要知道每次发布之后,有哪些章节发生了变更就可以,不关心具体哪一行或者哪一个字发生了变化。MD5,是的,就是计算章节的MD5,我们的章节可以人为划分成几部分,比如章节信息,内容块信息,等等,每次保存的时候,涉及到哪块儿就计算哪块儿的MD5,并和上一版本进行对比,保存一下变更情况。

2024-02-18 10:43:44 486

原创 Spring Boot 2.x集成WebSocket

websocket的接入是非常简单的,就是可能会遇到起不来或者调不通的问题,大部分是因为jar包冲突,可以根据自己碰到的不同问题针对解决。该问题大概率是因为项目中混入了一个以上的容器,请把你能看到的所有jetty包都排除出去,推荐使用maven-helper辅助解决。

2024-02-05 14:04:08 1495

原创 java配置OOM时保存堆转储文件

这里使用了%t作为时间戳的占位符,会被JVM自动解析替换成堆转储时的时间戳。这样每次发生OOM时生成的heap dump文件名中就包含了对应的时间戳,便于后续分析和标识。%p- pid%n- 进程名%u- 用户名称可以灵活组合设置出有意义的堆转储文件名,帮助定位内存问题。

2024-01-25 15:39:46 551

原创 树状结构数据按照顺序排序

这里写两种实现,一种java,一种js。

2024-01-17 10:14:22 423

原创 如何理解鼠标点击事件在程序中的处理

理解鼠标点击事件的处理机制,有助于我们更好地把握用户界面的响应性和交互设计的流畅性。通过操作系统和应用程序的协同工作,鼠标点击事件得以高效、准确地传递和处理,为用户提供了直观和便捷的操作体验。

2023-12-31 22:07:54 542

原创 java.util.function包下类的实现的例子

这个接口用于表示一个接受类型为T的参数并执行某些操作的函数,通常用于消费数据而不是返回结果。这个接口用于表示一个接受两个参数,一个类型为T,另一个类型为U,并返回类型为R的结果的函数。这个接口用于表示一个接受两个相同类型T的参数并返回相同类型的结果的函数,通常用于二元操作。这个接口用于表示一个接受类型为T的参数并返回相同类型的结果的函数,通常用于一元操作。这个接口用于表示一个接受类型为T的参数并返回布尔值的函数,通常用于判断条件。这个接口用于表示一个接受类型为T的参数并返回类型为R的结果的函数。

2023-12-24 20:57:14 424

原创 函数和函数表达式

对于初等数学和基础运算来说,大多数函数还是可以用y=f(x)这种简单的函数表达式表示出来。我和chatGPT以及claude讨论了这个问题,他俩给我举的不符合的例子我觉得都不是很恰当,所以这个问题暂时存疑。

2023-12-16 17:23:17 455

原创 java匿名类和匿名函数

匿名类(Anonymous Classes):匿名类是一种没有名字的类,它在创建对象时动态地继承一个现有类或实现一个接口。它们通常用于实现一次性或简单的功能,而不需要为这个功能创建一个单独的类。匿名类的主要优点是它们可以减少代码的冗余,使代码更简洁。创建匿名类的步骤:a. 继承一个现有类或实现一个接口。b. 在需要使用该类的实例的地方,创建一个匿名子类。c. 重写父类或接口的方法(如果需要)。d. 创建匿名子类的对象。

2023-12-10 21:40:19 458

原创 关于java的引用类型

其实我想问的是,此时list,map和maplist中的Bob对象,是不是同一个对象?答案是,是同一个对象。打印出来是何情景呢?

2023-11-23 16:41:44 100

原创 java8流处理器list转map的对比

写代码的时候,经常会需要处理拿到的数据,比如把list转成map,就有好多种写法,所以写文章理一下区别。

2023-11-16 15:43:19 401

原创 spring-session-core导致的接口调用问题,排查记录

我之所以一开始选择第一版,就是因为我不知道这个SESSION是啥时候设置的,所以我只能曲线救国,结果失败了,所以还是要直面这个问题,但是程序里引了那么多的包,我咋知道是哪里这么写了一句呢,我先把sso的包排查了一遍,没找到哪里设置cookie,也没找到设置session的地方,然后全局搜索“SESSION”,真的被我找到一个地方,有一个@Bean,是获取CookieSerializer的,里面有一句。然后通过自定义的那个Bean把咱们自定义的这个返回去。

2023-11-06 18:59:01 557

原创 spring-session-core排除某些接口不设置session

需求实现。

2023-11-05 13:18:12 259

原创 java初始化list的几种方式

以上主要是通过实现类构造函数、静态工厂方法等方式初始化List。另外也可以通过集合的add()方法逐步添加元素来初始化List。

2023-10-29 14:43:03 836 1

原创 controlleradvice和handlerinterceptor

介绍@InitBinder和preHandle使用场景@ControllerAdvice注解是在Spring 3.2 中作为@ExceptionHandler、@InitBinder 和@ModelAttribute的组合形式引入的,用来定义@ExceptionHandler、@InitBinder、@ModelAttribute修饰的方法适用于全局,这些方法会作用在所有的@RequestMapping注解的方法上。

2023-10-22 20:49:21 219

原创 微信小程序发布流程

上周写了如何写一个小程序,然后经过查资料,改bug,找chatgpt美化页面,我写了一个计算代谢率的小工具,写完了之后该怎么办呢,当然是发布上架,然后我就开始了发布的折腾。

2023-10-08 16:56:07 235

原创 如何开发一个微信小程序

微信小程序是微信公众平台推出的一种全新的应用形态,它具有跨平台、小巧、高效等特点,深受用户喜爱。一直想学习开发小程序,最近找了一个教程来看,发现原生小程序写起来还是挺简单的,主要分为以下几步。

2023-10-01 18:39:07 198

原创 github pages 部署单页面

GitHub Pages是一个免费的托管服务,可以直接从GitHub存储库中创建和托管网站。可以使用GitHub Pages来构建自己的网站或为项目生成网站。每个GitHub帐户和组织都可以拥有一个站点,以及无限的项目站点。主站点的地址就是用户名.github.io,项目名就是在此基础上加uri以区分。

2023-09-24 15:21:20 240

原创 mysql入门,各种概念了解

MySQL 是一个关系型数据库管理系统,展现形式上使用表格存储数据,底层的数据存储方式主要涉及到存储引擎(Storage Engine)的实现。

2023-09-17 22:57:38 170

原创 与面试相关的redis

掌握这些高级Redis知识点将使你在面试中展现出对Redis的深刻理解和实际应用经验。同时,还应准备答案,以解释你在实际项目中如何使用Redis来解决特定的问题和挑战。

2023-09-08 16:17:53 617 1

原创 如何保证消息幂等

消息的幂等性是指无论对同一条消息执行多少次操作,最终的结果都是一致的。具体来说,对于同一条消息的多次处理不会引起不一致或重复的影响。这在分布式系统和消息传递中是非常重要的概念,因为在这些环境中,消息可能会因为网络问题、故障恢复或其他原因而多次传递或处理。

2023-09-03 11:45:50 285

原创 【mq】如何保证消息可靠性

总的来说,无论是 RocketMQ 还是 Kafka,它们都提供了多种策略来确保生产者发送的消息的可靠性,包括等待确认、重试、缓冲和事务等机制,以满足不同应用场景的需求。在 Kafka 中,ZooKeeper 协调消费者组的成员关系和消费进度,而在 RocketMQ 中,消费者协调是由 Broker 和 NameServer 共同完成的。NameServer 主要用于 RocketMQ 集群的消息管理和路由,而 ZooKeeper 在 Kafka 中的作用更广泛,涵盖了集群的配置、状态、协调等多个方面。

2023-08-27 11:20:55 619

原创 AbstractQueuedSynchronizer

它的主要设计思想是,当某个线程尝试获取锁时,如果锁不可用,该线程会被放入等待队列,然后被阻塞。的实现中扮演着不同的角色,从构建等待队列、表示等待线程、实现条件等待机制,到支持不同模式的锁等待。通过这些内部类的使用,AQS能够支持各种同步场景和锁的实现,从而实现多线程的协调和同步。不同的变量在整个机制中扮演着不同的角色,以实现正确的多线程同步行为。AQS的子类,其实基本上实现了ReentrentLock的大部分方法,ReentrentLock开放出来的大部分方法其实都是直接调用的Sync里的方法。

2023-08-13 18:22:07 152

原创 记录一道算法题-split和Integer.parseInt()

比如, 2001:0db8:85a3:0000:0000:8a2e:0370:7334 是一个有效的地址。所以, 2001:db8:85a3:0:0:8A2E:0370:7334 也是一个有效的 IPv6 address地址 (即,忽略 0 开头,忽略大小写)。比如, 2001:0db8:85a3::8A2E:0370:7334 是无效的 IPv6 地址。比如, 02001:0db8:85a3:0000:0000:8a2e:0370:7334 是无效的。是一个十六进制表示的字符串,使用。

2023-07-31 14:34:16 144

原创 java中双引号和单引号的区别

运算符在比较对象时,并不是比较它们的内容,而是比较它们在内存中的地址是否相同。但是在比较字符串(使用双引号表示的内容)是否相等时,应该使用。总结:双引号用于表示字符串,单引号用于表示字符,它们在使用场景和表示的数据类型上有很大的区别。需要注意的是,使用双引号包含的是字符串,使用单引号包含的是字符。运算符比较两个char类型的值时,它会比较它们的Unicode码点是否相等。在Java中,对于字符串(使用双引号表示的内容),应该尽量避免使用。运算符会比较它们在内存中的地址,而不是比较字符串的内容。

2023-07-30 21:54:59 2505

原创 自己动手做一个Server酱-cloudflare workers实现通过微信公众号发送消息

不知道大家有没有用过server酱,一开始发现这个工具的时候,我觉得也太好用了,好多场景都可以用起来,我也一直在用,不过后来也出现了收费还有限制条数这些情况,并且作者其实提供了开源版的实现,所以我一直想自己搞一个自己用的。要求就是我给某个地址发消息,消息可以通过微信收到就可以。server酱的原理其实很简单,其实就是将服务号/测试号的接口进行了封装,让我们可以只关心要发送的内容,不用处理鉴权和其他一些参数要求。

2023-07-13 21:24:14 1802 7

原创 【算法】链表反转

给定一个单链表的头结点pHead(该头节点是有值的,比如在下图,它的val是1),长度为n,反转该链表后,返回新链表的表头。经反转后,原链表变为{3,2,1},所以对应的输出为{3,2,1}。要求:空间复杂度 ,时间复杂度。如当输入链表{1,2,3}时,

2023-07-06 20:10:18 361 1

原创 【mysql】当前读和快照读,幻读和可重复读

我们从快照读和当前读的角度解释一下,第一次和第二次和第三次查询都是使用的快照读,但是更新的时候,一定使用的当前读,update操作会更新当前时刻所有符合条件的数据,不会看快照是什么样的,但是一旦当前事务更新了其他事务新插入的数据,这条数据的最后一次更新就变成了当前事务id,所以第三次查询的时候,这条数据符合快照读的条件,就被查出来了。不同的隔离级别下,快照读的行为也有所不同。可以看到,在上面的表格中,可重复读没有解决幻读问题,但是实际上在我们开发中,如果数据库使用的是可重复读隔离级别。

2023-06-25 23:23:13 1047

原创 Spring AOP之MethodInterceptor原理

代理对象通过实现MethodInterceptor接口并协调拦截器链,与各MethodInterceptor实现相结合,最终执行完所有相关通知逻辑并将结果返回给客户端。MethodInterceptor是Spring AOP中的一个重要接口,用来拦截方法调用,它只有一个invoke方法。拦截器链中的每个拦截器通过mi.proceed()调用下一级,并在前/后执行本拦截器的通知逻辑,形成完整的通知调用链。这几个类都实现了MethodIntercepter,并且分别对应了不同的通知类型。是代理类还是原对象?

2023-06-18 18:14:14 1595

原创 【Java】lambda表达式,Stream API,函数式编程接口

在Java中,函数式编程的实现方式是Lambda表达式语法Stream API是基于函数式编程思想设计的,强调对集合数据进行流式处理和转换。它提供了一系列函数式操作,如映射、过滤、排序、聚合等,使得我们可以以一种更函数式的风格来操作数据。

2023-06-10 17:48:40 593

原创 y=gap++;y等于几

后缀自增操作符(post-increment operator)是一种用于增加变量值的操作符。在大多数编程语言中,包括Java,后缀自增操作符用两个加号表示 “++”。后缀自增操作符的作用是将变量的值加1,并返回变量的旧值。使用变量的旧值进行表达式的计算或赋值操作。将变量的值加1。int x = 5;在这个例子中,后缀自增操作符应用于变量x。首先,将x的旧值5赋给y,然后将x的值增加1。因此,y的值是5,而x的值变为6。

2023-05-24 15:21:23 724 1

原创 音频提取字幕开源模型-whisper

Whisper 是一种通用的语音识别模型。它是在包含各种音频的大型数据集上训练的,也是一个可以执行多语言语音识别、语音翻译和语言识别的多任务模型。

2023-05-06 20:38:32 1124

原创 使用Notion搭建博客,并使用Cusdis评论系统

昨天在网上闲逛的时候,看到关注的一个博主说自己用notion搭建了博客,非常感兴趣,所以我自己也来实践一下,下面写一下简单的搭建流程。

2023-04-15 12:48:20 349

原创 js生成二维码和解析二维码

这个整了好久,用的包换了好几次,所以记录一下。

2023-04-08 16:04:53 727

原创 HandlerInterceptor拦截器的原理

大致流程总结一下就是,我们编写的拦截器,会通过我们的配置类,被spring的容器管理起来,也就是程序启动时就被加载到容器中,然后当我们需要使用的时候,DispatchServlet初始化的时候,拦截器会被加载到它的属性中,注意,这是个list,我们的接口和拦截器都只属于其中的一个,就是这个属性,找到对应的处理器之后,就按照流程执行了以上,其实就HandlerInterceptor。

2023-03-31 12:16:26 724

reqrcode和qrcode

js生成二维码和解析二维码需要的js文件

2023-04-08

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除