- 博客(301)
- 资源 (8)
- 收藏
- 关注
原创 《java虚拟机》jvm内存模型,jvm优化
线程 概述 程序计数器 线程私有 随线程生,随线程死. 1.每个线程分配一个独立的计数器. 2.用来记录需要执行的下一个指令. 3.在处理器内部. Java虚拟机栈 线程私有 随线程生,随线程死...
2018-10-28 22:52:51
346
原创 python虚拟环境应用
Python虚拟环境(Venv)是一个隔离Python项目的工具,可以创建独立的环境来安装第三方模块,避免与全局环境冲突。使用virtualenv工具可以创建和管理虚拟环境,通过命令行进入目标目录后执行命令即可创建。创建后需进入环境目录激活才能使用。虚拟环境能够确保项目间的依赖隔离,解决不同项目版本冲突问题。
2025-11-03 22:24:50
417
原创 Python 中的 class(类)___ python笔记
Python中的class是面向对象编程的核心,用于创建自定义对象类型。文章首先介绍了类的基本概念,包括类属性、实例属性和方法,并通过Dog类示例演示了如何定义类、创建实例和调用方法。接着详细讲解了类的核心组件(self参数、init__方法)和属性分类(类属性与实例属性)。然后阐述了面向对象三大特性:封装(访问控制)、继承(子类扩展父类)和多态(不同对象响应相同方法)。最后介绍了特殊方法(如__str)、类方法和静态方法的区别与使用场景。全文系统性地讲解了Python类的核心概念和应用要点。
2025-10-19 11:27:05
976
原创 避免时区问题的最佳实践, 数据库, mybatis
【摘要】本文总结了避免时区问题的最佳实践方案:1)数据库连接配置需明确指定时区(如MySQL的serverTimezone、PostgreSQL的TimeZone参数);2)推荐使用java.time包(LocalDateTime/LocalDate/Instant)并统一时区处理;3)提供工具类封装中国时区转换逻辑;4)避免使用java.util.Date和系统默认时区。核心建议包括:数据库字段使用TIMESTAMP/DATETIME类型,应用层统一时区处理,以及数据库连接配置显式声明时区参数。
2025-10-13 13:46:26
338
原创 CMS、OA、CRM、ERP 是企业管理中四种核心的软件系统,它们各有侧重,但又可能在某些功能上重叠。
企业管理四大核心系统解析:CMS(内容管理系统)专注网站内容发布,如WordPress;OA(办公自动化系统)实现内部协同办公,如钉钉;CRM(客户关系管理系统)管理客户全生命周期,如Salesforce;ERP(企业资源计划)整合企业财务、供应链等核心资源,如SAP。CMS对外宣传,OA内部协同,CRM管理客户,ERP统筹资源。四者各司其职又相互关联:CRM接单后ERP执行,OA流程可触发ERP操作。企业通常按需分阶段部署,从小规模协同到全面资源整合。
2025-10-08 15:21:40
774
原创 OpenJDK 和 Oracle JDK 该如何选择
OpenJDK与OracleJDK核心功能相同,主要差异在于license和商业支持。OpenJDK采用GPL协议完全免费,适合大多数开发者;OracleJDK生产环境需付费订阅才能获得长期udal支持更新。rea历史差异已消失,现在两者代码库一致。建议优先选择EclipseAdoptian等供应商提供的OpenJDK构建版本,既有免费LTS支持又避免法律风险。仅宁可OracleJDK特殊情况:深度依赖Oracle商业技术支持且愿意付费的企业。社区主流已转向OpenJDK+第三方支持的模式。
2025-10-02 17:47:08
868
原创 rpm包的安装方法
RPM是RedHat系列Linux的核心包管理工具,但存在依赖关系管理缺陷。为解决此问题,推荐使用YUM或DNF工具,它们能自动处理依赖问题。在CentOS7/RHEL7中使用yum install,在CentOS8/RHEL8/Fedora中使用dnf install来安装本地RPM包,比直接使用rpm命令更高效。建议使用yum -y install ./package.rpm或dnf install ./package.rpm命令,其中-y参数可自动应答确认提示。
2025-10-02 17:38:39
418
原创 宽带的M 和存储的M一样吗? bit与Byte的区别
宽带网速中的"M"指Mbps(兆比特每秒),而文件下载速度单位是MB/s(兆字节每秒)。1Byte=8bit,因此100M宽带的理论下载速度为100Mbps/8=12.5MB/s,200M宽带则为25MB/s。这解释了为什么实际下载速度与宽带标称值存在差异。
2025-09-25 11:13:24
385
原创 jmeter压力测试
JMeter是一款用于网站性能测试的开源工具,可模拟多用户并发访问。核心组件包括线程组(设置虚拟用户数)、采样器(定义请求类型)和监听器(查看结果)。使用四步:1)创建线程组设置用户数;2)添加HTTP请求定义测试目标;3)添加监听器(结果树和聚合报告);4)运行测试并分析响应时间、吞吐量等指标。注意正式测试时避免使用内存消耗大的结果树监听器,登录测试需添加HTTP头信息。
2025-09-19 13:53:53
314
原创 文件句柄数配置: 问题Too many open files
Linux系统中"Too many open files"错误是由于文件句柄数超过限制导致的。文件句柄是内核为进程分配的资源标识符,用于管理打开的文件、网络连接等I/O资源。系统通过两个维度限制文件句柄数:系统级全局限制(通过/proc/sys/fs/file-max配置)和用户/进程级限制(通过/etc/security/limits.conf或ulimit设置)。高并发服务如Nginx、MySQL需要调高默认值(通常1024)以避免资源耗尽。解决方法包括修改limits.conf增大
2025-09-16 15:04:06
742
原创 Java中的record类有什么用
Java14引入的record特性旨在简化不可变数据类的创建。它通过一行代码自动生成构造器、访问器、equals()、hashCode()和toString()方法,大幅减少样板代码。record组件默认为final,强调不可变性,支持自定义构造器和方法实现,但不能继承或声明额外实例字段。适用于DTO、值对象等纯数据场景,但不适合需要可变状态或复杂业务逻辑的类。Java16将其确立为标准特性,为数据载体类提供了更简洁高效的解决方案。
2025-09-11 15:25:16
772
原创 mysql中find_in_set()函数的使用, ancestors字段,树形查询
FIND_IN_SET()函数用于查询逗号分隔字符串列表中特定字符串的位置,返回1开始的位置索引或0/NULL。该函数适用于处理逗号分隔数据,但存在性能缺陷(无法使用索引导致全表扫描)和设计问题(违反第一范式)。典型应用场景包括标签查询、树形结构处理等,但在规范化的数据库设计中应避免使用,建议改用关系表+JOIN的方式。使用时需注意精确匹配、区分大小写和仅支持逗号分隔等限制。
2025-09-04 17:30:13
540
原创 大模型之RAG, 检索增强生成
RAG(检索增强生成)是一种将信息检索系统与大语言模型相结合的技术框架,通过"先检索后生成"的方式解决大模型存在的事实性错误、知识过时和处理私有数据等问题。其工作流程分为检索、增强和生成三步,核心优势包括提高准确性、知识实时更新、处理专有数据、可追溯性和成本效益。RAG广泛应用于智能客服、企业知识库、研究助手等领域,但仍面临检索质量、上下文长度限制等挑战。这一技术已成为构建可靠AI应用的重要基石,为语言模型配备了外部"精确记忆体"。
2025-08-29 17:58:48
730
原创 SpringBoot整合MQTT教程
本文介绍了如何在Spring Boot项目中集成MQTT协议实现消息收发功能。首先简要说明了MQTT协议的特点和核心概念(发布者、订阅者、主题、代理),然后详细讲解了开发步骤:1)安装EMQX或Mosquitto代理;2)创建Spring Boot项目并添加MQTT相关依赖;3)配置MQTT连接参数;4)实现消息发送服务;5)配置消息订阅处理;6)创建测试接口。文章提供了完整的代码示例,包括配置类、服务类和控制器实现,并说明了测试方法。最后还提到了一些扩展功能,如QoS设置、认证和SSL加密等注意事项。
2025-08-29 11:00:54
1379
原创 Spring Boot 整合 SSE, http长连接
摘要:SSE(Server-Sent Events)是一种基于HTTP的服务器推送技术,适用于实时数据更新场景。Spring Boot 2.2+原生支持SSE,只需引入web依赖。实现分为三步:1)创建返回SseEmitter的控制器,管理客户端连接;2)添加消息发送接口;3)编写前端页面通过EventSource监听事件。测试时客户端连接后,服务端可主动推送消息,前端实时显示。SSE相比WebSocket更轻量,适合单向通信需求。
2025-08-28 11:13:30
738
原创 关于 Java Bean Validation 中 groups 属性的经典问题。@NotNull丶@NotBlank丶@NotEmpty中的groups 怎么用?
摘要:@NotBlank注解中的groups属性用于校验规则分组,解决不同场景下的差异化校验需求。通过定义分组接口(如CreateGroup/ModifyGroup)并标注校验规则,结合@Validated指定使用场景,可实现在创建时校验所有必填字段,更新时跳过非必要校验(如密码字段)。该机制提高了校验灵活性,支持默认组、继承和组序列等特性,使同一实体能适应多种业务场景的校验要求。(149字)
2025-08-28 10:14:34
453
原创 MCP即模型上下文协议(Model Context Protocol)
MCP(模型上下文协议)是AI领域的"USB接口",通过标准化协议连接大模型与外部数据源。它由客户端、服务器和传输层三部分组成,基于SSE和JSON-RPC实现双向通信。MCP采用权限分离设计保障安全性,支持动态上下文加载和模块化扩展,具有语言无关性优势。该协议让AI助手能安全、可控地调用各类工具和数据,如同餐厅点餐系统:用户控制权限,AI发送请求,服务器处理并返回结果,形成高效的工具生态。
2025-08-26 16:46:39
924
原创 字节开发工具-Trae CN
本文介绍了如何通过自定义Trae快捷键设置来提升开发效率。通过合理配置快捷键,开发者可以快速执行常用操作,减少重复劳动,从而优化工作流程。文章提供了快捷键设置的基本方法和实用建议,帮助用户根据个人习惯定制高效的操作方式,适用于各类开发场景。
2025-08-20 15:46:32
262
原创 DNS是什么, 配置DNS: 114.114.114.114
而Google表示推出免费DNS服务的主要目的就是为了改进网络浏览速度、改善网络用户的浏览体验,为此Google并不使用BIND等广为使用的DNS程序,而是以自行开发的软件对DNS服务器技术进行了改进,在两层计算机簇上,缓存DNS服务器平衡负载以提升性能,同时保证了DNS服务的安全性和准确性。为域名拼写自动纠错, 让上网更方便。阿里公共DNS是阿里巴巴集团推出的DNS递归解析系统,目标是成为国内互联网基础设施的组成部分,面向互联网用户提供“快速”、“稳定”、“智能”的免费DNS递归解析服务。
2025-07-13 09:22:18
907
原创 Java内存溢出示例及解析,内存溢出(OutOfMemoryError)常见类型
摘要:本文介绍了Java中四种常见的内存溢出类型及示例代码:1)堆内存溢出,由对象过度创建导致;2)元空间溢出,由动态类生成过多引起;3)栈溢出,因递归调用过深造成;4)直接内存溢出,因直接分配过多本地内存产生。文章提供了每种溢出的VM参数配置和模拟代码,并给出了排查建议:使用HeapDump参数生成转储文件、使用MAT工具分析、调整JVM内存参数等。最后提出了预防建议,包括合理设置参数、及时释放资源、使用流式处理等。(149字)
2025-07-09 10:38:19
353
原创 前后端传输 Long 类型数据时(时间戳,雪花算法ID),精度丢失的根本原因
前后端传输 Long 类型数据时,精度丢失的根本原因是 JavaScript 的 Number 类型无法精确表示超过 53 位(64 位双精度浮点数)的整数,而 Java 的 Long 类型是 64 位整数。当后端返回的 Long 值超过 (即 )时,前端解析会出现精度错误。后端修改(Spring Boot 示例):局部方案:在字段上添加 注解 全局方案:配置 Jackson 序列化规则 前端处理:直接使用字符串类型的 ID,避免用 类型解析:javascript方案
2025-05-28 17:41:02
799
原创 Mybatis使用update更新值为null时不生效问题解决
MyBatis-Plus更新null值失效问题源于FieldStrategy默认非空策略。解决方法:1)全局配置field-strategy为IGNORED(可能影响业务);2)为特定属性添加@TableField(strategy=IGNORED)注解;3)使用LambdaUpdateWrapper明确设置null值。第三种方式能精准控制更新字段,推荐使用。
2025-05-27 16:17:45
1775
原创 RabbitMQ 为什么引入 Exchange 的概念, 交换机有什么作用.
解耦:生产者不依赖队列的具体实现。灵活性:通过多种路由策略支持复杂业务场景。扩展性:动态绑定和解绑队列,适应系统变化。标准化:符合 AMQP 协议,确保生态兼容性。如果没有 Exchange,消息路由的复杂性将直接转移到生产者和队列,导致系统僵化且难以维护。
2025-04-15 17:42:12
1042
原创 FireCrawl爬虫工具, Craw4ai
是一款开源的AI爬虫工具,专门用于Web数据提取,并将其转换为Markdown格式或其他结构化数据。FireCrawl特别适合处理使用JavaScript动态生成的网站,能够自动抓取网站及其所有可访问的子页面内容,并将其转换为适合大语言模型训练的数据格式12。
2025-04-14 23:44:02
1343
原创 aviator 自定义表达式
/ 自定义函数类@Override@Override// 注册自定义函数// 定义一个调用自定义函数的表达式// 创建一个 Map 用于存储变量的值// 执行表达式求值,并传入变量环境System.out.println("表达式 " + expression + " 的计算结果是: " + result);
2025-04-11 17:34:26
508
原创 一致性哈希算法原理与应用
一致性哈希通过环形拓扑和虚拟节点技术,解决了分布式系统中节点动态变化时的数据路由问题,显著降低了数据迁移成本并提升了负载均衡能力。(通常范围是 0∼2的32次方−1),将节点和数据映射到环上,数据按顺时针方向找到最近的节点。但若节点数量变化(如节点宕机或新增节点),哈希结果会因模数 N 的改变而完全打乱,导致几乎所有数据需要重新分配。例如,环上新增节点 D,仅需将原属于节点 B 的部分数据迁移到 D。:Google 提出的算法,无需虚拟节点,但仅支持顺序节点增减。:节点宕机时,数据自动迁移到下一个节点。
2025-02-19 16:23:35
1059
原创 nginx负载均衡, 解决iphash不均衡的问题之consistent
确保使用完整客户端IP,或结合其他字段(如User-Agent)增强哈希多样性。:增删节点时,传统ip_hash未使用一致性哈希,导致分布重置。:例如仅使用IPv4前24位,不同IP可能哈希到同一值。:使用工具(如Prometheus)实时监控服务器负载。:部分IP段请求集中,导致哈希到同一后端。:调整配置前,在测试环境验证负载均衡效果。:逐步应用新配置,避免一次性变更引发问题。:检查各后端请求量,确认分布是否倾斜。:分析是否有特定IP段请求量过大。参数,减少节点变动时的分布波动。
2025-02-19 15:54:40
912
原创 pandas.core.series.Series 转json
在Python中,可以使用Pandas库中的方法将Series对象转换为JSON格式的字符串。方法中的参数orient决定了输出的JSON格式。常用的orient'split': 字典形式,包含索引、列标签和数据。'records': JSON行的列表,每个记录是一个键值对的字典。'index': JSON行的列表,每个记录是索引值和数据项的键值对。'columns': JSON行的列表,每个记录是列名和数据项的键值对。'values': 纯数据值的列表。根据需要选择合适的orient参数。
2024-07-25 15:45:20
617
原创 mybatis的xml标签用法, Mapper.xml
动态 SQL 是 MyBatis 的强大特性之一。在 JDBC 或其它类似的框架中,开发人员通常需要手动拼接 SQL 语句。根据不同的条件拼接 SQL 语句是一件极其痛苦的工作。例如,拼接时要确保添加了必要的空格,还要注意去掉列表最后一个列名的逗号。而动态 SQL 恰好解决了这一问题,可以根据场景动态的构建查询。动态SQL(code that is executed dynamically),它一般是根据用户输入或外部条件动态组合的SQL语句块。
2024-07-19 13:49:42
1496
原创 工作流之节点回退, 回退到上一个节点
工作流审批流程会遇到, 审批不通过, 回退到指定节点, 或者回退到上一个节点.回退到指定节点, 通过moveTo 实现回退到上一个节点, 假如当前节点流入得分支有很多, 该如何判断上个节点是谁呢?
2024-05-24 11:53:08
784
原创 Maven之The packaging for this project did not assign a file to the build artifact
我使用的是Plugins中的插件,但我并没有在pom.xml中配置该插件。1、在pom.xml中配置该插件,稍微麻烦一些。2、改用Lifecycle中的方法。
2024-05-11 10:30:29
1449
原创 主机关、专设机关、派出机关 区别
是由县级以上地方人民政府在一定区域内设立的行政机关,不是一级行政政权,而是受派出人民政府委托,进行行政管理。派出机关通常包括行政公署、区公所、街道办事处等,它们的职能是综合的,权限是多方面的,对所管辖的某一区域或领域内的经济和社会事务进行管理。设机关通常是主机关下属的工作部门, 如财政局、教育局等,它们专门负责财政、教育等领域的工作。例如,某县政府是一个典型的主机关,它负责该县范围内的行政管理工作。是指具有独立法人地位的政府机构,它们通常负责一个行政区域内的全面工作。
2024-04-19 16:37:27
543
原创 flowable的流程变量设置setVariables 和 setVariablesLocal区别?
在流程执行或者任务执行的过程中,用于设置和获取变量,使用流程变量在流程传递的过程中传递业务参数。对应的表:act_ru_variable:正在执行的流程变量表act_hi_varinst:流程变量历史表。
2024-04-02 18:19:04
700
原创 内网穿透Neutrino-Proxy, 中微子代理
neutrino-proxy: NeutrinoProxy(中微子代理) 一款基于solon、netty的内网穿透神器!
2024-01-19 18:40:37
918
原创 java执行python乱码问题
用Runtime.getRuntime.exec()调用Python脚本时,Java端捕获脚本有中文输出时,输出的中文可能会是乱码,因为Python安装在Windows环境下的默认编码格式是GBK。
2023-12-11 13:43:08
488
原创 java获取classpath路径, maven项目获取classpath路径
有一个类位于 src/main/java/com/qunar/MyClass.java。test.txt和MyClass并不在一个层级,因为MyClass之前还有两个包。有一个文件位于 src/main/resources/test.txt。此时的路径是相对于MyClass这个类在运行时路径而言的,通过当前类的加载路径使用相对路径来获取资源地址。而classpath可以通过如下代码获取。可以直接获取文件路径。
2023-12-08 11:52:43
353
html转pdf的几个demo(wkhtmltox,com.pd4ml,itext)
2016-12-06
elasticsearch-5.6.0.zip
2017-09-15
加密解密,前端加密,后端解密
2017-09-14
elasticsearch-5.6.0.tar.gz
2017-09-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅