自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 double精度丢失问题

在Java中,使用double类型时可能会遇到精度丢失的问题。这是由于double类型是一种浮点数类型,在表示某些小数时可能会存在精度损失。这种情况通常是由于浮点数的二进制表示法无法准确地表示某些十进制小数,导致精度丢失。为了避免这种问题,可以考虑使用BigDecimal类来处理精确的十进制数值运算,因为BigDecimal类可以提供更高的精度和控制。另外,尽量避免直接比较两个double类型的值是否相等,而是考虑使用误差范围或者BigDecimal的compareTo方法来进行比较操作。

2024-02-09 10:15:52 611

原创 2023 总结对AI的总结和展望

各种测评视频大量散布在网络上面,一开始我只是认为他只是一个聊天小助手比较智能,跟普通的聊天机器人没有特别大的差别,所以也就没有引起特别大的重视,直到越来越多的用户开始测评的时候,然后才发现他不太像一个小孩子,他又有点像一个大学生的水平,它可以作为一个工作中的一些助手,平常你可能百度需要查好几个网页的东西,现在你只需要立即问他就能最快给你一些想要的一些信息,渐渐的我也开始重视起来,好奇他到底底层为什么可以实现解析人的语言,从而去执行某一些逻辑。又回到马斯洛的需求模型,每个人真的会追求最高的目标自我实现吗?

2024-01-19 08:50:14 493

原创 java使用jsch处理软链接判断是否文件夹

这一次主要是碰到一个问题。因为使用jsch去读取文件的时候,有一些文件它是使用软链接制作的一个映射。因为这里面有一个问题。如果它是软链接你就无法判断他到底是文件。还是文件夹?因为他没有提供可以直接读取的方法,用权限信息去判断,文件和文件夹都是l开头,所以这一篇博客的主要目的是介绍如何去处理软链接。判断是实际的文件还是文件夹。一开始我都打算直接用文件类去读取这个路径,去判断它到底是否方是否是文件或者文件夹。但是这样就会有一个问题。

2024-01-18 23:29:21 609

原创 使用Apache Spark处理Excel文件的简易指南

在日常的工作中,表格内的工具是非常方便的x,但是当表格变得非常多的时候,就需要一些特定的处理。Excel作为功能强大的数据处理软件,广泛应用于各行各业,从企业管理到数据分析,可谓无处不在。然而,面对大型且复杂的数据,Excel的处理能力可能力不从心。对此,我们可借助Apache Spark这一分布式计算框架,凭借其强大的计算与数据处理能力,快速有效地处理Excel数据。这些数据进行一个分析,整理,筛选,排序。分析整理有用的内容。虽然仅处理基础数据,但在集群环境下,Spark展现出优秀的大规模数据处理能力。

2024-01-18 17:58:15 741

原创 maven解决包冲突

这边篇文章主要是来讲解我们日常开发中碰到一些Maven包冲突的一个解决方案。如何去一步一步进行排查,然后找到思路解决某一个固定的痛点和问题。在我们日常的导入包当中,可能不经意间就会导入一些相同类名的包或者路径的包。因为不同的包,它可能依赖某一个版本的可能不是同一个版本,这样就会导致一个冲突产生。可能版本不一致也有一定的原因。最后我想说的是当发现一个问题的时候,我们需要逐步拆解,一步一步找到我们需要处理的问题的点。不得不说idea这个编辑器还是非常强大的。今天这篇文章主要是对我的一个解决冲突的一个思路的回顾。

2024-01-17 10:39:34 658

原创 手把手教你用Python实现IP子网计算

这里不得不又拿出了就以前的计算机网络原理,翻过来看一下。其实这里面也分为这种大类首先a类地址它的前缀长度为8位。然后是b的地址,它的前缀长度为16位,最后才是c类地址,它的前最长度为24位。基本上我们所用到的地址大部分都是c类地址。基本上都是192.168开头的。就一个局域网进行一个规划的时候,首先你要考虑到机器的数量,可以分配的IP数量。这就涉及到一个网络前缀长度。也就是子网掩码。通常来说,网络前最长度越长,它能分配的IP数就越少。这个可以根据你自己的需要来进行计算。详细的计算方公式上面已经提供了。

2024-01-05 00:33:33 481

原创 C++实现令牌桶过滤算法

令牌桶算法通过限制令牌桶的固定容量,实现对资源以及流量的延迟控制。请求者需先获取令牌,方可执行动作。若令牌桶内具有足够令牌便可通过消耗相等数量放过请求;而若令牌不足,则会拒绝请求。该算法具备平滑的资源使用率控制功能,有效避免突发流量对系统的破坏。此外,令牌桶算法还适用于流量控制、预防DDoS攻击及防止资源过载等多种场景。同时,因其能根据需求动态调整填充速率,故在各种流量模式下均可适用。

2023-12-27 21:54:03 504

原创 推荐一款神奇的火山写作软件

最后我想说的是,这是一款非常适合文案写作者的一款好的辅助工具。他不仅能给你提供相应的一些内容或写文本认识,还可以对你的内容进行一个总结。对其中的一些关键点进行一个分析梳理。这是一个非常好的榜首。如果你也觉得非常的好奇,那你可以去尝试一下,真的非常的好用。

2023-12-24 19:33:41 931

原创 YashanDB个人版体验总结

YashanDB数据库具有多项功能特性。首先,它是一个分布式数据库,支持水平扩展,能够将数据分散到多个节点上,从而提高系统的可靠性和性能。其次,YashanDB数据库具备高可用性,支持主从复制和自动故障转移,确保系统始终可用。此外,YashanDB数据库还注重高性能,采用了多种优化技术,如内存计算、异步IO和零拷贝等,以提升系统的性能。另外,YashanDB数据库支持ACID事务,保证数据的一致性和可靠性。

2023-12-21 22:20:42 452

原创 java自定义校验参数类型范围

像日常我们可能会进行一些枚举定义。一些状态的定义。这个时候你就需要去写一些。校验的方法和参数今天在小节,主要是讲如何自定义注解。来进行一个参数校验,非常的简单方便。首先我们自定义一个圆类型的注解。标注这个注解的使用范围。然后什么时候去使用都是些常用的配置。/*** 语言类型验证注解*/String message() default "语言类型错误";Class

2023-12-21 22:12:27 737

原创 巧用map实现springbean的命令模式

突然发现spring bean的map还可以这么用,你只是需要使用。命令模式的最基础的版本原型,首先创建一个命令。然后根据不同的实现最后注入到某个集合里面。你就可以根据自己的想法去进行一个调用,非常的简洁。显而易见,Spring的bean map不仅应用广泛且灵活。你仅需典型的命令模式和简单抽象,便能创造出各类命令。越来越多的人倾向于为其添加自定义称号,通常采用类名字母来回车难念法。你只须将这些命令浸入到特定的映射中或列表中即可,而此时会把接口的全部执行实例嵌入。若如是Map,则假名以小写形式内置。

2023-12-20 23:40:23 666

原创 java使用jackson标准化输出文件格式

当设计接口的时候,有时候总是需要去对不同的一些指标数据去进行一个格式化输出。通常可能会写一个实现方法。可能还不太一定能复用。今天这一节主要讲的是一个利用注解的方式。调用它的一些序列化方法对参数的结果。进行一个标准化格式输出,而且代码你还能够复用。非常的简单,方便。本文介绍了一种通过注解技术统一不同参数结果输出方式、提高代码复用性的设计理念。具体步骤包括创建JSON序列化接口,标记需注入的泛型类型,并实现及重写对应逻辑处理函数。

2023-12-20 23:37:19 455

原创 Sonarlint代码质量检查使用总结

当你在编写代码时,经常会遇到一些错误和问题,这些问题可能会导致代码的质量下降。SonarLint是一个非常好用的工具,可以帮助你发现并解决这些问题,提高代码的质量。总之,使用SonarLint可以帮助你提高代码质量,避免一些常见的错误和问题。如果你还没有使用过SonarLint,我强烈建议你尝试一下。SonarLint是一个非常有用的工具,它可以帮助开发人员提高代码质量和开发效率,同时也可以提高团队合作和协作效率。

2023-12-19 23:22:26 545

原创 stomp spring ws接口调用

STOMP(Simple Text Oriented Messaging Protocol)是一种用于在客户端和服务器之间进行实时消息传递的简单文本协议。在Spring框架中,STOMP被用于创建交互式的Web应用程序,通过提供一个基于WebSocket通信的子协议来实现。这使得客户端和服务器之间能够进行异步消息传递,从而实现Web应用程序中的实时更新和通知。这种方式比起websocket有一个非常好的特点,就是它可以使用几个注解就可以像接口编程一样。同时支持像ws一样全双工的操作方式或者像队列一样,发布订

2023-12-19 23:13:30 421

原创 @Spy、@SpyBean、@MockBean、@Mock、@RunWith、@ExtendWith对比

在写单元测试中经常会用到Mockito,但是这些类似的注解非常混乱,今天总结一下相关的注解,说明其中的含义和实现例子。@Spy、@SpyBean、@MockBean、@Mock、@RunWith、@ExtendWith,带bean的就跟集成测试有关,例如集成Spring,如果只是简单的单元测试可以配置不带Bean的,这里面最好区分的还是@RunWith和@ExtendWith,一个是JUnit4一个是JUnit5。

2023-12-18 23:31:38 1259

原创 Difference between @Mock, @InjectMocks and @Captor

这里是关于 Mockito 注释的Mockito 的注释最大限度地减少了重复的模拟创建代码。它们使测试更具可读性。对于注入@Spy和@Mock实例是必需的。

2023-12-18 23:30:29 1372

原创 Amazon EC2使用测评

每月/750小时为期 12 个月,通过AWS 免费套餐使用创建就有750个小时的免费使用额度是真的很香,几乎可以免费使用一年,对于一些喜欢自己搭建博客的用户几乎是发福利,整整一年的免费使用,对于新手来说确实很好,为上手实践,提供了很好的操作便利。作为一家针对全球的服务器厂商,企业的服务器生态做的很好,操作过后你就会发现,EC2服务器和一些其他的服务例如:Lambda服务,使他们配置集群负载均衡,非常的方便。

2023-12-17 23:48:24 395

原创 高性价比AWS Lambda无服务体验

之前听到一个讲座说到AWS Lambda服务,基于Serverless无服务模型,另外官网还免费提供 100 万个请求 按月,包含在 AWS 免费套餐中是真的很香,对于一些小型的起步的网站或者用户量不大的网站,简直就是免费,实在太好了。AWS Lambda是一个无服务器事件驱动型计算服务,你可以运行几乎任何类型的应用程序或后端服务的代码,而无需预置或管理服务器。您可以从 200 多个 AWS 服务和软件即服务 (SaaS) 应用程序中触发 Lambda,且只需按您的使用量付费。

2023-12-17 23:45:30 1593

原创 AWS向量数据库Amazon OpenSearch Service使用测评

在大模型盛行的当今,选择适宜的数据库显得尤为重要。因为你需要面对海量训练数据,快速的检索至关紧要,以及对于存储的要求也是至关重要的。对于海量的数据查询和存储是需要巨大的算力支持。向量数据库常用在一些图像文本或者视频的生成中进行训练,快速的检索能提高程序响应的速度,对于优化算法也是至关重要的。本文主要是针对AWS向量数据库进行的测评感受试用总结,看到每月最多 750 小时免费使用(在 t2 和 t3 small.search 实例上),包含在中,这确实很香。

2023-12-16 23:45:59 1269

原创 聊聊long类型装箱和拆箱性能问题

这个主题主要讨论Java中long类型自己手动装箱和系统自动装箱的性能问题,在Java中,long类型是基本数据类型,Long类型是long的包装类。在Java中,手动装箱指的是使用Long.valueOf()方法将long基本类型转换为Long对象,而系统自动装箱是指在需要Long对象的地方直接使用long基本类型。性能上,手动装箱会比系统自动装箱更高效,因为手动装箱避免了自动装箱过程中的额外对象创建和内存分配操作。因此,在对性能敏感的场景中,可以考虑使用手动装箱来提升效率。

2023-12-16 23:43:07 464

原创 idea代码测试覆盖率

单元测试其实是检测代码最好的方式,单元测试,代码质量,这些都是很好的工具,单元测试需要结合mockito框架进行mock来测试,否则没用的数据写入到数据库里面也是占用空间,本身测试只是为了检查我的逻辑是否合理,流程是否通顺,判断是否到位。测试覆盖查看还是很方便的,只是你要把每种情况都要考虑到,提供对应的代码示例去执行对应的代码块。不得不说idea这个测试报告还是挺友好的对与那些测试人员可以直观的看到测试覆盖的结果,对于开发人员也非常友好,直接看到那些代码覆盖到没有覆盖到。

2023-12-15 15:01:35 1235

原创 String的intern方法使用场景

当你在进行一个对象锁的时候可以使用这种方式,锁定某个特定的对象,我这个示例其实随意创建一个对象都可以,只要保证每次都取的是唯一的就可以了,借此引出intern()的部分使用场景。记得曾经推特的工程师使用intern()对地址进行内存优化,使得原本相同的地址占用不同的内存问题得到了释放,intern()虽然会有性能影响,但是看你的使用场景。最后。

2023-12-15 14:58:53 525

原创 2023年终大事件回顾

回顾整个2023时间过得好快,一年就过去了。马上过去的2023也做一个总结吧。今年是疫情解封的第一年。疫情三年真的被困在家里,哪里也去不了。除了只能看看视频,刷刷手机之外,每天就是固定奔走在每一个核酸点。未来这会成为一个记忆,留在历史当中。先说说今年吧,今年做的最大的改变。就是开始写博客了,也开始进入社区去跟不同的人接触,了解不同的人,开始慢慢了解博客、博主这个群体自己也开始慢慢的积累粉丝。跟不同社区的一些博主认识建立起联系,技术不再是枯燥乏味,而是变得更哪儿更好玩,技术只是解决需求的一个工具。

2023-12-14 23:57:41 520

原创 手把手教你用Java实现用户登录注册的功能

说起用户登录注册其实主要还是几个点,首先第一个就是我们常说的一些验证码。因为验证码可以防止用户频繁的请求接口,比如有一些刻意攻击的请求用来检测账户是否存在,验证码起到了至关重要的一个作用防止重复恶意请求。接着就是一个用户的一个加密密码加密,不要小看这个加密,虽然说加密的方式千变万化,但是作为微服务程序来说,大部分网站还是会用HTTPS的证书,传输还是加密传输的,只是到服务端才进行加密校验。所以总的来说只是存的数据库的密码是进行一个加密的,这里我们采用的是一个加盐的md5加密的方式,虽然说md5也之前被破解过

2023-12-14 23:55:30 1808

原创 记一次测试环境git翻车经历

后面根据最新的de分支提交记录,查看记录找到46cb1af51点是最新的执行命令: git reset --hard 46cb1af51\HEAD 现在位于 46cb1af51 Merge branch 'prod' into dev呼终于回来了,面对困难的时候还是要冷静思考,git的操作和后悔机制还是很好的,360度无死角解决你各种问题,简直良心工具。

2023-12-08 18:05:34 548

原创 C++实现2024新年日历

首先大概日历最麻烦的就是2月份的计算了,因为会需要考虑到平年还是闰年。每年的2月份天数的计算方法,如果年份能被4整除但不能被100整除,或者能被400整除,那么这一年的2月份只有29天(闰年)。否则,这一年的2月份只有28天(平年),具体代码也就这一行(year % 4 == 0 && year % 100 != 0) || year % 400 == 0。更具计算规则计算平年或者闰年,配置二月份的天数。因为除了二月份很特殊,其他余份都很固定,一个大月和一个小月,大月31天,小月30天,周而复始。所以只需要

2023-12-08 18:02:33 1535

原创 使用python操作excel文档

使用python进行文档操作还是非常简单快捷的,不需要考虑到文件流的关闭,这点python就很好,python作为一款人人都可以入门的编程语言,非常适合一些小型的文本操作不用太多的操作处理。

2023-12-06 15:25:13 480

原创 聊聊java的两种锁同步锁和重入锁

总体来说,重入锁相对于同步锁提供了更多的灵活性和控制能力,但使用起来也更加复杂。在大部分情况下,使用同步锁已经足够满足线程同步的需求。只有在需要更高级的功能或更细粒度控制时,才需要考虑使用重入锁。

2023-12-06 15:22:13 1279

原创 透过对话聊天聊网络tcp三次握手四次挥手

说起来网络,就让我想起的就是一张图。我在网上可以为所欲为,反正你又不能顺着网线来打我。接下来我们来详细说一下网络到底是怎么连接的。首先我会用男女生之间的聊天方式,来举一个例子。从tcp三次握手来说,首先一个男生看到一个女生。肯定会热情的打招呼说!Hello,你好。接下来有几种情况?对方没有听到或者没有听到,这就是404了第一次握手失败。如果对方已读不回,或者只是回复一句你好礼貌性的回复一下,那么第二次握手建立连接不稳固,这表示对方并没有想跟你聊天的意思,建议换个IP去访问。

2023-11-23 08:47:54 101

原创 AWS向量数据库Amazon OpenSearch Service使用测评

在大模型盛行的当今,选择适宜的数据库显得尤为重要。因为面对海量训练数据,及时的检索至关紧要。向量数据库是一种专门用于存储和处理向量数据的数据库系统。与传统的关系型数据库不同,向量数据库提供了针对向量数据的高效存储、索引和查询功能,以支持大规模的向量数据分析和检索任务。向量数据库能够将向量存储为高维点并进行检索,常用于大模型领域,如图像检索、推荐系统、自然语言处理和生物信息学等。

2023-11-20 13:57:17 206

原创 微服务架构下的工程化Docker

随着云计算和容器技术的发展,微服务架构已经成为了越来越多企业的首选。微服务架构可以将一个大型应用程序拆分成多个小型服务,每个服务都可以独立部署和扩展。这种架构可以提高应用程序的可伸缩性、可靠性和可维护性。而Docker则是实现微服务架构的重要技术之一。在微服务架构下使用Docker可以带来很多好处。首先,Docker可以将应用程序及其依赖项打包到一个容器中,使得应用程序可以在任何环境中运行,而无需担心环境差异性。其次,Docker可以提供一致性、可重复性和可移植性,从而简化了应用程序的部署和管理。

2023-10-30 14:30:51 48

原创 activemq artemis源码阅读,读取消息

本文旨在对阅读源代码的过程进行总结,深度揭示其工作原理,以及信息是如何被逐层读取的,并着重探讨关键数据的来源。看源码不能一次全部搞懂所有代码,只能先看主干,之后再看细枝末节,所以先总结到获取消息部分,这是一个系列的一部份代码。在阅读开源项目源码时,我们需要从整体把握到逐步深入,从顶层设计到底层实现,从主干流程到细节部分,从常规情况到特殊情况,不断深入和拓展自己的知识和技能。

2023-10-30 13:26:04 152

原创 腾讯Ckafka队列使用测评

腾讯CKafka是一个高性能、高可靠性的消息队列服务,适合企业级应用和高并发场景的使用。使用CKafka需要注意其规范和限制,并进行相应的配置和初始化,保证CKafka的稳定性和可靠性。用户可以根据业务需求选择适合的CKafka版本,如私有化部署版、云版等。在使用CKafka前,需要进行相关的配置和初始化。在消息生产方面,用户可以使用CKafka提供的Producer API进行生产消息,同时可以根据需要设置消息的发送模式、确认机制等。

2023-10-26 17:05:32 82

原创 Jmeter测试Activemq队列

我是拿着50000数据的发布订阅模式来统计的,本地代码发送接收处理耗时26904ms,平均下来一秒1858条数据,有时候差一点1秒1697条,jmeter测试统计平均1秒1200条数据,考虑到本地会有其他的进程在跑所以有一定误差成分,之前在两台机器之间发布订阅发现误差毫秒级,但是到了本地和服务器两台机器之间的延迟蛮严重的。单击“线程组”面板底部的复选框以启用/禁用额外字段,您可以在其中输入测试持续时间和启动延迟 您可以配置“持续时间(秒)”和“启动延迟(秒)”来控制每个线程的持续时间组以及在多少秒后开始。

2023-09-26 18:14:24 367

原创 客户端请求502 Bad Gateway和413Request Entity Too Large问题

我一直觉得这是一个nginx的配置问题,413问题倒是正常,因为本身就限制了传输,只是程序和nginx之间会有点出入,导致这个空隙到底谁来处理,这中间是个问题,况且文件还蛮大几百兆,先优化到这里吧,之后再贴个文继续后续优化,优化需要灵感需要时间不是一蹴而就。

2023-09-21 16:35:22 355

原创 测试Activemq artemis队列生产消费ack场景优化版本

这个测试主要是测试ActiveMQ Artemis消息中间件,因为业务的特殊性,需要测试消息一来一回算一次,单次统计结果可以参考上一篇测试的结果。是指最后单条消息消耗需要耗费的时间,通常队列的消费先进先出,所以最后一条的消费耗时代表木桶的最高那块,也是耗时最久的,一开始的耗时几乎都趋近于几百毫秒。之前的一篇测试结果发现单个消息1秒一万多条消息是没有压力的,超过了可能产生堆积的情况,最明显的区别就是发送时间和处理时间。

2023-09-15 16:15:22 109

原创 apollo自动驾驶的功能和趋势

当今世界,自动驾驶技术正变得越来越普遍,而Apollo自动驾驶平台就是其中的佼佼者。Apollo自动驾驶平台是百度公司推出的一款自动驾驶解决方案,它提供了一整套完整的硬件和软件解决方案,帮助车辆实现高度自动化驾驶。本文将介绍Apollo自动驾驶平台的功能和趋势。

2023-09-06 10:40:08 201

原创 测试Activemq artemis队列生产消费ack

这个测试主要是测试ActiveMQ Artemis消息中间件,因为业务的特殊性,需要测试消息一来一回算一次,单次统计结果可以参考上一篇测试的结果。之前的一篇测试结果发现单个消息1秒一万多条消息是没有压力的,超过了可能产生堆积的情况,最明显的区别就是发送时间和处理时间。这次主要模拟处理消息然后回复ack的场景,发现大打折扣,消息处理只能达到5千多点。毕竟是一来一回这样的情况,在原来的基础上又发了一次。另外发现当消息的大小不超过1kb的时候是符合上面的测试结果的,但是超过了1kb,发送也会很耗时。

2023-08-28 18:07:29 93

原创 使用云函数实现定时签到

云函数 Serverless 是一种无服务器计算服务,可以帮助用户在云端运行代码而无需管理服务器,用户只需编写业务逻辑代码并上传到云端,云函数会根据请求量自动扩容,按照实际使用的计算资源付费,同时支持与其他云服务集成,如对象存储、消息队列、数据库等。云函数 Serverless 可以用于处理数据、构建应用程序、自动化工作流程等多种场景。云函数是一种基于云平台的技术,可以执行各种任务,包括但不限于定时任务。除了签到活动,云函数还可以用于各种应用场景,例如自动化流程、数据处理、实时通信等等。

2023-08-25 14:29:28 209

原创 测试Activemq artemis队列生产消费

在考虑消费情况时,1万数据量可以轻松处理,没有任何压力,但这只是单机测试的结果,只能作为参考。如果消费没有耗时,3万数据量也可以处理,但前提是所有消费都堆积在缓存中。因此,在实际应用中,需要根据具体场景和需求来确定数据量的大小和处理方式。同时,还需要考虑系统的其他性能指标,如响应时间、错误率等来综合评估系统的性能表现。

2023-08-24 16:21:39 295

空空如也

空空如也

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

TA关注的人

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