
编程技巧
文章平均质量分 64
摘星喵Pro
蜡笔小新.com
展开
-
Java jSerialComm库串口通信(USB RS-485/232) 查询/应答、主动上报模式
要在Java中通过USB RS-485接口发送和接收特定的数据帧,你需要利用适当的串行通信库。在Java中,一个常见的选择是使用RXTX或jSerialComm库。这些库允许Java应用程序与串行端口进行通信。原创 2024-01-03 09:43:27 · 3231 阅读 · 0 评论 -
RabbitMQ 核心概念(交换机、队列、路由键),队列类型等介绍
RabbitMQ 是一个开源的消息代理(Message Broker),用于在应用程序之间传递消息。它实现了高级消息队列协议(AMQP),提供了可靠的消息传递和消息路由机制,以支持分布式系统的开发。AMQP:AMQP(Advanced Message Queuing Protocol)是一种协议,用于定义消息传递的规范。RabbitMQ是AMQP协议的一个流行实现之一,它允许不同的应用程序之间通过消息进行通信。生产者:生产者是消息的发送方。它们创建消息并将其发布到 RabbitMQ 的交换机上。原创 2023-12-29 17:21:05 · 5166 阅读 · 0 评论 -
Redis交互速度慢,CPU占用100%,集群方案,报错等问题
## 问题描述:执行top命令发现redis占用达到100%redis交互速度慢,一次要几十到一百毫秒一次## 解决思路查看redis数据量,比如我这里达到了30万经过本地测试,redis交互的速度跟redis交互量成正比,也就是说redis没数据时交互在10ms以内,数据量大的话一次可能花费更久的时间## 集群方案我在本地虚拟机建立了3个主节点3个从节点的redis集群,经过压力测试单节点情况cpu占到30%;改为集群模式redis每个节点占用在10%以下可以得出结论集群方案确实能降原创 2023-12-04 11:51:59 · 1585 阅读 · 0 评论 -
Git commit 通用提交消息规范
一种常见的提交消息规范是使用 “Conventional Commits” 规范,它使用一些预定义的关键字来标识提交的类型和目的。采用这种规范的提交消息有助于清晰地了解每个提交的目的,提高代码审查的效率,追踪项目的变更历史,以及生成有意义的版本发布日志。格式(style):表示提交对代码的格式进行了修改,如缩进、空格、格式化等,但没有改变代码的逻辑。新功能(feature):表示提交引入了新的功能、功能改进或添加新的功能点。撤销(revert):表示提交撤销了之前的提交。原创 2023-09-11 10:17:58 · 953 阅读 · 0 评论 -
23种设计模式介绍+案例演示
对每个设计模式案例增加了详细注释和设计模式的介绍总结。这是一个学习java设计模式案例分析。参考书籍:《图解设计模式》原创 2023-08-04 13:07:07 · 124 阅读 · 0 评论 -
GitLab不同角色对应的权限
Owner(拥有者):拥有者是项目或组的创建者,拥有最高级别的权限。他们可以添加、删除项目成员,修改项目设置,管理访问权限,并进行项目转让。在组级别,他们还可以添加或删除子组和项目,并管理组设置。Maintainer(维护者):维护者拥有项目中的写入权限,可以推送代码、创建分支,管理问题和拉取请求。他们可以添加、删除项目成员,但不能对项目的高级设置进行修改。Developer(开发者):开发者通常具有项目中的读写权限,可以推送代码和创建分支。他们可以创建问题、合并请求等,但不能修改项原创 2023-08-04 08:07:55 · 12612 阅读 · 0 评论 -
Redis 数据类型及其常见使用场景
Redis(Remote Dictionary Server)是一种高性能的键值存储数据库,它支持多种数据类型,使其成为广泛应用于缓存、消息队列、计数器、会话存储等场景的理想选择。下面简单介绍 Redis 的常见数据类型及其使用场景。原创 2023-07-20 14:22:57 · 304 阅读 · 0 评论 -
MyBatis XML方式常用元素用法示例
MyBatis XML 中的元素有很多种,每个元素都有不同的作用和用法。:用于定制 SQL 片段的前缀和后缀,并根据条件进行添加或删除。:用于循环遍历集合或数组,并生成对应的 SQL 语句。:根据条件判断是否包含某个 SQL 片段。:实现条件选择逻辑。原创 2023-06-28 16:00:15 · 677 阅读 · 0 评论 -
Mybatis注解形式用法
MyBatis 注解形式的用法提供了一种在接口方法上直接定义 SQL 语句和参数映射的方式,使得数据库操作更加简洁和直观。在使用注解形式时,需要确保正确配置了 MyBatis 的注解扫描和相关的配置信息,以便正确地执行数据库操作。除了以上示例,MyBatis 还提供了其他注解和用法,例如动态 SQL 注解(:指定方法参数的名称,在 SQL 语句中引用参数。:执行查询操作,用于查询单个结果或结果列表。:执行插入操作,用于插入数据。:执行更新操作,用于更新数据。:执行删除操作,用于删除数据。原创 2023-06-28 15:52:20 · 624 阅读 · 0 评论 -
JSON序列化/反序列化,指定自定义字段名key转换注解配置
输出结果: 可以看到直接输出key也是自定义的,但这里用的是alibaba.fastjson注解完成的,和上面使用场景不一样,因为springboot使用fastjson序列化对象。在springboot请求接口返回对象得到的结果:(因为springboot使用fastjson序列化对象)实体类属性上增加@JSONField(name = “属性名”)注解(alibaba.fastjson)实体类的属性上面增加@JsonProperty(“字段名”)注解(fastjson)原创 2023-01-13 15:40:39 · 7396 阅读 · 0 评论 -
处理MySQL执行SQL语句,表名不支持大写问题
Linux下的MySQL默认是区分表名大小写导致的;处理MySQL执行SQL语句,表名不支持大写问题。修改/etc/my.cnf文件。原创 2023-01-13 14:10:34 · 687 阅读 · 0 评论 -
【微服务技术10】Docker
镜像是将应用程序及其需要的系统函数库、环境、配置、依赖打包而成。Dockerfile就是一个文本文件,其中包含一个个的指令(Instruction),用指令来说明要执行什么操作来构建镜像。每一个指令都会形成一层Layer。语法说明请参考官网文档: https://docs.docker.com/engine/reference/builder指令说明示例FROM指定基础镜像ENV设置环境变量,可在后面指令使用COPY拷贝本地文件到镜像的指定目录RUN。原创 2022-12-27 09:56:35 · 296 阅读 · 1 评论 -
【微服务技术08】基于Feign远程调用
Feign是一个声明式的http客户端,其作用就是帮助我们优雅的实现http请求的发送,解决上面提到的问题。1、引入依赖 < dependency > < groupId > org.springframework.cloud < artifactId > spring-cloud-starter-openfeign原创 2022-12-14 14:06:21 · 461 阅读 · 0 评论 -
【微服务技术07】Nacos配置管理
解决服务部署实例越来越多,需要逐个修改微服务配置的问题Nacos一方面可以将配置集中管理,另一方可以在配置变更时,及时通知微服务,实现配置的热更新。从微服务拉取配置微服务要拉取nacos中管理的配置,并且与本地的application.yml配置合并,才能完成项目启动。但如果尚未读取application.yml,又如何得知nacos地址呢?因此spring引入了一种新的配置文件:bootstrap.yaml文件,会在application.yml之前被读取,流程如下:首先,在user-servic原创 2022-12-14 11:21:55 · 280 阅读 · 0 评论 -
【微服务技术05】Ribbon负载均衡
1、Ribbon负载均衡规则规则接口是IRule默认实现是ZoneAvoidanceRule,根据zone选择服务列表,然后轮询2、负载均衡自定义方式代码方式:配置灵活,但修改时需要重新打包发布配置方式:直观,方便,无需重新打包发布,但是无法做全局配置3、饥饿加载开启饥饿加载指定饥饿加载的微服务名称。原创 2022-12-13 16:55:49 · 468 阅读 · 0 评论 -
【微服务技术04】Eureka注册中心-服务注册与发现
在Eureka架构中,微服务角色有两类:**EurekaServer:**服务端,注册中心记录服务信息心跳监控**EurekaClient:**客户端**Provider:**服务提供者,例如案例中的 user-service注册自己的信息到EurekaServer每隔30秒向EurekaServer发送心跳**consumer:**服务消费者,例如案例中的 order-service根据服务名称从EurekaServer拉取服务列表。原创 2022-12-13 15:18:22 · 148 阅读 · 0 评论 -
Mysql create table 建表报错: Row size too large. The maximum row size for the used table type, not count
原因:mysql单表所有行定义大小之和不得超过65535,除TEXT/BLOB类型UTF-8:一个汉字占3个字节,字母1个字节。 GBK:一个汉字占2个字节,字母2个字节。解决方案:将长文本类型属性改为TEXT或者在合理要求内降低varchar的最大范围等,总之要符合以上规则可以将长文本分表存储提高查询效率原创 2022-12-12 17:47:35 · 1865 阅读 · 0 评论 -
Mac 安装使用 Mongodb
## 解压到安装目录我的安装目录:/usr/local/mongodb## 创建目录/usr/local/mongodb/data/usr/local/mongodb/log## 配置环境变量可以参考:https://blog.youkuaiyun.com/a2272062968/article/details/127065267增加:`export PATH=${PATH}:/usr/local/mongodb/bin`终端输入source ~/.bash_profile使配置生效(我这里仅在当前原创 2022-12-08 17:17:28 · 386 阅读 · 0 评论 -
springboot kafka配置与使用
可以根据情况只配置生产着或消费者;每个groupId都可以完整消费指定topic的所有数据,要想重新消费所有数据可以更换groupid组原创 2022-11-25 16:53:07 · 3681 阅读 · 0 评论 -
Java内置注解用法、自定义注解
使用@interface自定义注解时,自动继承java.lang.annotation.Annotation接口分析:@interface用来声明一个注解,格式:public @interface 注解名{定义内容}其中的每个方法实际上是声明一个配置参数方法名称就是参数名称返回值类型就是参数的类型(返回值只能是基本类型、Class、String、enum)可以通过default来声明参数的默认值如果只有一个参数成员,一般参数名为value。原创 2022-09-09 14:31:41 · 373 阅读 · 0 评论 -
数据结构--二叉树--创建,复制,计算高度,叶子结点总数,叶子总数--c++
【代码】数据结构--二叉树--创建,复制,计算高度,叶子结点总数,叶子总数--c++原创 2021-03-31 21:50:27 · 440 阅读 · 0 评论 -
XML可扩展标记语言
XML可扩展标记语言和html格式类似,有开始和结束成对标记标签名要有意义,建议使用英文,小写字母,单词之间用"-"分割。多级标签之间不要存在同名的情况可以使用适当的注释与缩进让格式清晰标签属性用于描述不可或缺的信息,对标签分组或者为标签设置ID时常用属性表示XML支持5种实体引用实体引用对应符号说明<<小于>>大于&&和号'’单引号"原创 2021-04-23 09:24:20 · 129 阅读 · 0 评论 -
Java将base64字符串保存为图片/图片转base64字符串
Base64 编码普遍应用于需要通过被设计为处理文本数据的媒介上储存和传输二进制数据而需要编码该二进制数据的场景。这样是为了保证数据的完整并且不用在传输过程中修改这些数据。Base64 也被一些应用(包括使用。(binary-to-text)的编码规则,使得二进制数据在解释成 radix-64 的表现形式后能够用 ASCII 字符串的格式表示出来。中储存复杂数据时使用。...原创 2022-08-09 10:54:40 · 3067 阅读 · 0 评论 -
Java web/springboot上传word/doc/docx文档(含图片)与HTML富文本导入/导出互相转换解析!附项目源码
当导出word文件时,先对HTML文档img的src进行解析,增加服务器的静态资源访问位置路径,这样就能访问到图片输出为word。上传word文件,解析出HTML内容,图片存储到定义好的静态资源目录,主题HTML文档中img的src存储的是相对路径。注意target/classes/word/image目录和content.docx模版文档要存在。利用刚刚解析出来的HTML导出为Word。可以根据需求可以替换成图片资源服务器~用于定义图片存储和模版文件等。访问导出接口即可下载文档。.............原创 2022-08-08 15:25:47 · 4203 阅读 · 1 评论 -
Java web 富文本内容生成转为word格式并导出下载
思路:Word是完全支持html标签的,但是富文本内容并不是完整的html代码,需要先补全html标签,然后转码输出依赖包```xml org.apache.poi poi 4.1.2```上代码```java /** * 导出 word 文档 * * @para.........原创 2022-08-02 16:21:40 · 1705 阅读 · 0 评论 -
Docker应用
联合文件系统,UnionFS镜像类似于Java中的类,而容器就是实例容器的这一层是可以修改的,而镜像是不可以修改的同一个镜像可以生成多个容器独立运行,而他们之间没有任何的干扰hub.docker.com公有、私有client提供给用户一个终端,用户输入Docker提供的命令来管理本地或远程的服务器deamon:服务端守护进程,接受Client发送的命令并执行相应的操作重点:Linux系统安装Mac和Windows直接下载软件安装…docker images #查看本地镜像docker pull nginx镜原创 2022-06-19 22:18:49 · 512 阅读 · 0 评论 -
Mac运行‘Tomcat x.x.x‘时出错,无法打开调试器端口(127.0.0.1:x):java.net.SocketException “Socket closed“
Mac运行’Tomcat x.x.x’时出错,无法打开调试器端口(127.0.0.1:x):java.net.SocketException “Socket closed”问题: Mac使用IDEA运行web项目无法启动Tomcat,开始以为是端口被占用,但是翻译一下报错信息"permission denied"可以看出是权限被拒绝!解决方案: 使用终端进入Tomcat的bin目录,执行命令"chmod 777 *.sh"特别注意: 一定看好了千万要在tomcat目录执行给权限的命令!!!!!!如果在原创 2022-05-18 19:49:17 · 2515 阅读 · 0 评论 -
Mac OS Visual Studio Code(VSCode) C/C++环境配置
Mac Visual Studio Code C/C++环境配置安装插件:C/C++ 选择Microsoft的Code Runner 运行CodeLLDB 调试插件配置对Code Runner选择常用的扩展配置,点击插件 - 设置按钮 - 扩展设置Code-runner: Clear Previous Output Whether to clear previous output before each run.代码运行程序:清除以前的输出 是否在每次运行前清除以前的输出。原创 2022-03-28 11:00:20 · 5034 阅读 · 1 评论 -
Mac安装wget
wget 是一个从网络上自动下载文件的自由工具,支持通过 HTTP、HTTPS、FTP 三个最常见的 TCP/IP协议 下载,并可以使用 HTTP 代理。“wget” 这个名称来源于 “World Wide Web” 与 “get” 的结合。所谓自动下载,是指 wget 可以在用户退出系统的之后在继续后台执行,直到下载任务完成。Mac安装wget官网下载包wget1.8.tar.gz包:http://ftp.gnu.org/gnu/wget/解压到想安装的路径打开终端进入wget解压的路径依次执原创 2022-03-23 17:51:37 · 1985 阅读 · 1 评论 -
PTA|团体程序设计天梯赛-练习题库集
L1-001 Hello World! (5 分)本题要求编写程序,输出一个短句“Hello World!”。输入格式:本题目没有输入。输出格式:在一行中输出短句“Hello World!”。L1-002 打印沙漏 (15 分)本题要求你写个程序把给定的符号打印成沙漏的形状。例如给定17个“*”,要求按下列格式打印*****************所谓“沙漏形状”,是指每行输出奇数个符号;各行符号中心对齐;相邻两行符号数差2;符号数先从大到小顺序递减到1,再从小到大顺序递增;首尾符原创 2022-03-15 21:02:57 · 18903 阅读 · 0 评论 -
操作系统批处理作业和交互系统进程调度算法案例
批处理作业调度算法先来先服务FCFS短作业优先SJF高响应比调度算法HRRN交互系统进程调度算法时间片轮转RR优先级调度算法多级反馈队列调度算法MLFQ原创 2021-12-20 16:42:42 · 667 阅读 · 0 评论 -
Java Web开发组件
在SSM整合配置基础上开发BootStrapBootstrap是全球最受欢迎的前端组件库,由推特(TWitter)开源Bootstrap用于开发响应式布局,移动设备优先的WEB项目Bootstrap提供完整的HTML,CSS和JS开发工具集https://v4.bootcss.com/docs/getting-started/introduction/Art-Template 腾讯JS模版引擎http://aui.github.io/art-template/用法:数据变量用双花括号括起来原创 2021-12-08 11:26:09 · 1913 阅读 · 0 评论 -
Eclipse导入web项目的坑
Eclipse导入web项目的坑虽然用我idea但是有时后需要搞一下eclipse。。。导入非maven项目File - Import选择General下的Existing Projects into Worksapce选择你要导入的工程路径找到server-tomcat服务,如果没有:在server空白处右键 new - server 选择项目对应的tomcat版本和路径最后在添加进来的tomcat服务上右键 - Add and Remove,选择工程,调试/运行导入maven原创 2021-11-28 13:53:44 · 578 阅读 · 0 评论 -
Java——Lambda表达式
Lambda表达式JDK8开始支持Lambda表达式,用来让程序编写更优雅利用Lambda可以更简洁的实现匿名内部类与函数声明与调用基于Lambda提供stream流式处理极大简化对集合的操作Lambda语法格式(参数列表) -> 实现语句(参数列表):使用逗号分隔参数;参数类型可省略;单参数括号可省略实现语句:单行直接写;多行用{}包括Lambda表达式只能实现有且只有一个抽象方法的接口,Java称为"函数式接口"案例:MathOperation.java 四则运算接口pa原创 2021-07-31 12:36:47 · 363 阅读 · 0 评论 -
设计模式——工厂模式
设计模式设计模式是前辈总结的设计经验设计模式的目标的代码更容易理解,更容易维护通过设计模式可以让代码更加可靠设计模式的分类创建型模式结构型模式行为型模式工厂模式工厂模式用于隐藏创建对象的细节;工厂模式核心:工厂类(Fcatory);工厂模式可细分为简单工厂、工厂方法与抽象工厂;面向接口编程,隐藏具体类实现的细节简单工厂原始的设计模式,客户类要了解每一个类的具体功能简单工厂设计模式,对原始的具体类抽象出来一个具体的接口,根据客户的要求,由工厂类创建对应的实现类,客户原创 2021-07-26 21:11:33 · 146 阅读 · 0 评论 -
Maven项目管理工具
Mavenmaven.apache.orgMaven是项目管理工具,对软件项目提供构建与依赖管理Maven是Apache下的Java开源项目Maven为Java项目提供了统一的管理方式,已成为业界标准Maven核心特性项目设置遵循统一的规则,保证开发环境的兼容性强大的依赖管理,项目依赖组件自动下载、自动更新可扩展的插件机制,使用简单,功能丰富Maven的坐标GroupId:机构或团体的英文,采用"逆向域名"形式书写ArtifactId:项目名称,说明其用途,例如:c原创 2021-07-26 12:53:16 · 574 阅读 · 1 评论 -
Git知识
为了解决这个问题,人们很久以前就开发了许多种本地版本控制系统,大多都是采用某种简单的数据库来记录文件的历次更新差异。版本控制的作用:- 实现跨区域多人协同开发- 追踪和记载一个或多个文件的历史记录- 组织和包含你的源代码和文档- 统计工作量- 并行开发、提高开发效率- 跟踪记录整个软件的开发过程- 减轻开发人员的负担,节省时间,同时降低人为错误...原创 2021-07-18 12:47:49 · 819 阅读 · 0 评论