自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

日常记录

Hello World!

  • 博客(191)
  • 资源 (1)
  • 收藏
  • 关注

原创 常用地图坐标转换工具类Java

【代码】常用地图坐标转换工具类Java。

2024-09-23 17:44:19 239

原创 地图(高德)判断某一点位是否位于某一城市/区域/地区/行政区划内

得到如下数据,得到polyline是该地区的经纬度范围。是用来表示地理空间数据的重要几何类型,选择需要的使用。调用API(可以申请api选择web服务获取key)用类似的思路也可以自定义范围来判断。

2024-09-23 17:41:40 142

原创 JavaScript 中的回调函数(callback)

JavaScript 中的回调函数(callback)是一个传递给另一个函数作为参数的函数,并且这个传递的函数可以在其他函数内部被调用执行。回调函数是异步编程的一个核心概念,特别是在处理事件处理、服务器请求或者在操作完成后需要运行的代码时非常有用。

2024-08-08 00:15:00 991

原创 JavaScript中的异步编程:Promise、async 和 await

使用Promiseasync和await,可以使异步代码的结构更加清晰,更易于理解和维护。这些工具解决了传统回调地狱的问题,提供了一种更加强大和灵活的方式来处理 JavaScript 中的异步逻辑。

2024-08-07 15:10:54 1020

原创 Vue 2 和 Vue 3 生命周期钩子

在 Vue.js 开发中,了解生命周期钩子对于编写有效的组件至关重要。Vue 2 和 Vue 3 在生命周期钩子上大致相同,但 Vue 3 的 Composition API 引入了一种新的方式来处理它们。这里我会概述两者的生命周期钩子,并指出如何在 Vue 3 的 Composition API 中使用它们。

2024-08-07 11:55:18 1101

原创 Vue 常用组件间通信方式

在 Vue.js 中,组件间通信有多种方式,每种方式都有其适用的场景和优缺点。合理选择和组合这些方式,可以实现高效、清晰的组件间通信,满足不同的应用需求。Props 和 Event Emitting:适用于父子组件通信,简单直观,保持单向数据流。Event Bus:适用于兄弟组件通信,灵活高效,但难以调试和维护。:适用于跨层级组件通信,简化数据传递,但存在隐式数据依赖。Vuex:适用于全局状态管理,适合大型应用,但引入了额外的复杂性。$attrs 和 $listeners。

2024-08-02 18:29:18 784 1

原创 【Java 算法实现】移除数组元素(双指针)

请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。注意这五个元素可为任意顺序。你不需要考虑数组中超出新长度后面的元素。你不需要考虑数组中超出新长度后面的元素。例如,函数返回的新长度为。的元素,并返回移除后数组的新长度。函数应该返回新的长度。函数应该返回新的长度。,也会被视作正确答案。

2024-05-02 10:23:00 266

原创 【Java 算法实现】合并两个有序数组(逆向双指针)

给定两个按排列的整数数组nums1和nums2,以及两个整数m和n,分别表示nums1和nums2中的元素数目。你需要将nums2合并到nums1中,使合并后的数组同样保持排列。:合并后的数组不应由函数返回,而是直接存储在nums1中。为了应对这种情况,nums1的初始长度为m + n,其中前m个元素代表应合并的元素,后n个元素设为0以示占位,实际上应忽略。

2024-05-01 13:10:28 563

原创 【Java 算法实现】链表反转(迭代法)

【代码】【Java 算法实现】链表反转(迭代法)

2024-05-01 11:38:40 534 1

原创 Netty 进阶知识 编解码器、Protobuf、TCP粘包、出站入站

首先,在.proto文件中定义您的消息格式。通过这些步骤,可以在 Netty 应用程序中集成 Protobuf,利用其高效的二进制数据序列化/反序列化能力。这对于需要处理复杂数据结构或要求高性能的网络通信应用尤其有用。Protobuf 提供了一种高效、灵活的方式来定义和处理结构化数据。在分布式系统、大数据应用和微服务架构中,Protobuf 是数据交换的理想选择,特别是在对性能和带宽使用有严格要求的场景中。TCP流式传输TCP是面向连接的、面向流的协议,它不保留消息边界。

2024-01-17 11:55:45 1613

原创 Netty 介绍、使用场景及案例

https://github.com/netty/nettyNetty是一个高性能、异步事件驱动的网络应用程序框架,用于快速开发可扩展的网络服务器和客户端。它是一个开源项目,最初由JBoss公司开发,现在由社区维护。Netty的设计和实现以处理高并发、低延迟、可靠性和灵活性为目标,因此非常适合构建各种网络应用,包括网络服务器、代理、聊天应用、在线游戏、实时通信和分布式系统等。以下是一些Netty的主要特点和优势:异步和事件驱动:Netty采用异步非阻塞的IO模型,允许处理大量并发连接而不会阻塞应用程序线程。

2024-01-11 15:00:43 6554

原创 Java BIO、NIO(通信/群聊系统、零拷贝)、AIO

BIO适用于连接数较少的场景,NIO适用于中等并发场景,而AIO适用于高并发的异步操作场景,如网络服务器、文件传输等。选择适当的I/O模型取决于应用程序的性能和并发需求。

2024-01-09 10:23:15 860

原创 Java jSerialComm库串口通信(USB RS-485/232) 查询/应答、主动上报模式

要在Java中通过USB RS-485接口发送和接收特定的数据帧,你需要利用适当的串行通信库。在Java中,一个常见的选择是使用RXTX或jSerialComm库。这些库允许Java应用程序与串行端口进行通信。

2024-01-03 09:43:27 2455

原创 RabbitMQ 核心概念(交换机、队列、路由键),队列类型等介绍

RabbitMQ 是一个开源的消息代理(Message Broker),用于在应用程序之间传递消息。它实现了高级消息队列协议(AMQP),提供了可靠的消息传递和消息路由机制,以支持分布式系统的开发。AMQP:AMQP(Advanced Message Queuing Protocol)是一种协议,用于定义消息传递的规范。RabbitMQ是AMQP协议的一个流行实现之一,它允许不同的应用程序之间通过消息进行通信。生产者:生产者是消息的发送方。它们创建消息并将其发布到 RabbitMQ 的交换机上。

2023-12-29 17:21:05 4110

原创 CentOS安装MongoDB

但请注意,在将 MongoDB 公开到外部网络时,务必采取额外的安全措施,如配置身份验证、设置访问控制列表、定期备份数据以及监控数据库活动,以确保安全性和数据保护。这在生产环境中是不安全的,因此建议你设置 MongoDB 的身份验证密码以增强安全性。如果你的服务器上启用了防火墙(如Firewalld),你需要确保打开 MongoDB 的监听端口(默认是27017)以允许外部访问。要允许外网访问 MongoDB,你需要在 MongoDB 的配置文件中做一些更改,以及根据你的环境设置防火墙规则。

2023-12-25 15:04:58 1635

原创 Linux CentOS 安装 MySQL 8

CentOS 是 RedHat 的一个分发版本,功能与 RedHat 完全一致。如果已经安装了 MySQL,您可以通过以下步骤卸载它。输入上述命令获取的密码。

2023-12-15 10:45:10 862

原创 Redis KEY*模糊查询导致速度慢、阻塞其他 Redis 操作

在Redis中,使用通配符 `KEYS` 命令进行键的模糊匹配(比如 `KEYS key*`)可能会导致性能问题,尤其是在数据集较大时。这是因为 `KEYS` 命令的实现需要遍历所有的键来匹配模式,这个过程的时间复杂度是 O(N),其中 N 是键的总数,因此**使用KEYS*命令查询时,Redis的响应速度和Redis中数据量成正比**。在大规模的生产环境中,遍历所有键可能会导致阻塞其他 Redis 操作,因为 `KEYS` 命令会持有数据库的写锁。此外,这也可能对性能产生负面影响,因为它需要消耗大量的

2023-12-08 16:29:14 1788

原创 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 1232

原创 Spring Boot 下载文件(word/excel等)文件名中文乱码问题|构建打包不存在模版文件(templates等)

这样做完后,使用swagger测试接口大概率会出现"%A8%A1%E6%9D%BF.xlsx"这种格式,这是由于Swagger对文件名进行了URL编码,导致文件名在下载时显示为编码后的形式。Spring Boot 下载文件(word/excel等)文件名中文乱码问题|构建打包不存在模版文件(templates等)编写下载接口,返回要下载的模版文件,fileName可以根据需要灵活配置。准备文件,这里我放在resource下的templates路径。直接使用浏览器进行Get测试接口,文件编码正常,完美!

2023-09-13 14:57:16 2863

原创 Git commit 通用提交消息规范

一种常见的提交消息规范是使用 “Conventional Commits” 规范,它使用一些预定义的关键字来标识提交的类型和目的。采用这种规范的提交消息有助于清晰地了解每个提交的目的,提高代码审查的效率,追踪项目的变更历史,以及生成有意义的版本发布日志。格式(style):表示提交对代码的格式进行了修改,如缩进、空格、格式化等,但没有改变代码的逻辑。新功能(feature):表示提交引入了新的功能、功能改进或添加新的功能点。撤销(revert):表示提交撤销了之前的提交。

2023-09-11 10:17:58 828

原创 Vue 学习记录与案例总结

https://gitee.com/pikachu2333/vue-learning

2023-09-05 14:27:34 122

原创 23种设计模式介绍+案例演示

对每个设计模式案例增加了详细注释和设计模式的介绍总结。这是一个学习java设计模式案例分析。参考书籍:《图解设计模式》

2023-08-04 13:07:07 99

原创 GitLab不同角色对应的权限

Owner(拥有者):拥有者是项目或组的创建者,拥有最高级别的权限。他们可以添加、删除项目成员,修改项目设置,管理访问权限,并进行项目转让。在组级别,他们还可以添加或删除子组和项目,并管理组设置。Maintainer(维护者):维护者拥有项目中的写入权限,可以推送代码、创建分支,管理问题和拉取请求。他们可以添加、删除项目成员,但不能对项目的高级设置进行修改。Developer(开发者):开发者通常具有项目中的读写权限,可以推送代码和创建分支。他们可以创建问题、合并请求等,但不能修改项

2023-08-04 08:07:55 11625

转载 MySQL 事务日志

为每一个事务分配一个页,是非常浪费的(除非你的事务非常长),假设你的应用的TPS(每秒处理的事务数目)为1000,那么1s就需要1000个页,大概需要16M的存储,1分钟大概需要1G的存储。可以发现每次对数据的变更都会产生一个undo log,当一条记录被变更多次时,那么就会产生多条undo log,undo log记录的是变更前的日志,并且每个undo log的序号是递增的,那么当要回滚的时候,按照序号依次向前推,就可以找到我们的原始数据了。了,当事务提交时,并不会立刻删除undo页。

2023-07-28 09:43:43 302

原创 事务基础知识

命令来查看当前 MySQL 支持的存储引擎都有哪些,以及这些存储引擎是否支持事务。能看出在 MySQL 中,只有InnoDB 是支持事务的。

2023-07-28 09:21:03 147

原创 数据库索引优化与查询优化——醍醐灌顶

哪些维度可以进行数据库调优关于数据库调优的知识点非常分散。不同的 DBMS,不同的公司,不同的职位,不同的项目遇到的问题都不尽相同。这里我们分为三个章节进行细致讲解。虽然 SQL 查询优化的技术有很多,但是大方向上完全可以分成和两大块。

2023-07-27 17:14:45 1975

原创 数据库性能分析工具的使用

定位了查询慢的 SQL之后,我们就可以使用 EXPLAIN 或 DESCRIBE 工具做针对性的分析查询语句。DESCRIBE语句的使用方法与EXPLAIN语句是一样的,并且分析结果也是一样的。MySQL中有专门负责优化SELECT语句的优化器模块,主要功能: 通过计算分析系统中收集到的统计信息,为客户端请求的Query提供它认为最优的 执行计划 (他认为最优的数据索方式,但不见得是DBA认为是最优的,这部分最耗费时间)。

2023-07-26 14:25:15 273

原创 索引的创建与设计原则

在实际使用中,根据数据表的访问模式和查询需求,选择合适的索引类型,并确保索引的设计能够提高查询性能和数据访问效率。同时,根据数据库的实际负载和查询频率,定期监测索引的性能,对索引进行优化和维护,是保持数据库高性能的关键。

2023-07-25 14:44:28 3980

原创 索引的数据结构

使用索引是为了加快数据库的查询速度和提高数据库的性能。索引是数据库表中的一种数据结构,它可以帮助数据库快速定位并检索所需的数据。当数据库表中的数据量较大时,如果没有索引,数据库系统需要逐行扫描整个表来查找满足查询条件的数据,这将会消耗大量的时间和资源。而有了索引,数据库系统可以根据索引中存储的信息快速缩小查询范围,直接定位到符合条件的数据,从而大大减少查询所需的时间和资源。

2023-07-25 10:24:01 1527

原创 MySQL 字符集

排序规则影响字符在比较和排序时的行为,因为在不同的语言和地区,对字符的排序方式可能有所不同。请注意,在 MySQL 中,“utf8” 和 “utf8mb4” 的存储方式略有不同,“utf8mb4” 的存储空间会稍微多一些,因为它支持更多的字节。例如,“utf8mb4_general_ci” 表示使用 “utf8mb4” 字符集,并采用不区分大小写的排序规则。对于大多数情况下,特别是需要支持表情符号、特殊符号或其他非常用字符的情况,建议使用 “utf8mb4” 字符集,以免出现字符存储和处理的问题。

2023-07-24 16:35:24 1465

原创 MySQL8 新特性——公用表表达式用法

在MySQL 8.0及更高版本中,引入了公用表表达式(Common Table Expressions,CTEs),它是一种方便且可重用的临时结果集,类似于子查询,但使用更简洁和易读的语法。CTEs通常用于在复杂的查询中创建临时表,以便于后续查询和分析。

2023-07-24 09:11:05 354

原创 MySQL8 新特性——窗口函数用法

窗口函数的特点是可以分组,而且可以在分组内排序。另外,窗口函数不会因为分组减少原表中的行数,这对我们在原表数据的基础上进行统计和排序非常有用。

2023-07-23 16:39:48 568

原创 MySQL 触发器

MySQL 触发器(Trigger)是一种在数据库中定义的特殊类型的存储过程,它在指定的数据库表上自动执行,当满足特定的触发条件时,触发器会被激活并执行相应的操作。触发器通常用于在数据库表发生特定事件时,自动执行一些操作,如更新其他表的数据、记录日志等。

2023-07-21 13:58:22 1231

原创 Redis 数据类型及其常见使用场景

Redis(Remote Dictionary Server)是一种高性能的键值存储数据库,它支持多种数据类型,使其成为广泛应用于缓存、消息队列、计数器、会话存储等场景的理想选择。下面简单介绍 Redis 的常见数据类型及其使用场景。

2023-07-20 14:22:57 235

原创 MyBatis XML方式常用元素用法示例

MyBatis XML 中的元素有很多种,每个元素都有不同的作用和用法。:用于定制 SQL 片段的前缀和后缀,并根据条件进行添加或删除。:用于循环遍历集合或数组,并生成对应的 SQL 语句。:根据条件判断是否包含某个 SQL 片段。:实现条件选择逻辑。

2023-06-28 16:00:15 631

原创 Mybatis注解形式用法

MyBatis 注解形式的用法提供了一种在接口方法上直接定义 SQL 语句和参数映射的方式,使得数据库操作更加简洁和直观。在使用注解形式时,需要确保正确配置了 MyBatis 的注解扫描和相关的配置信息,以便正确地执行数据库操作。除了以上示例,MyBatis 还提供了其他注解和用法,例如动态 SQL 注解(:指定方法参数的名称,在 SQL 语句中引用参数。:执行查询操作,用于查询单个结果或结果列表。:执行插入操作,用于插入数据。:执行更新操作,用于更新数据。:执行删除操作,用于删除数据。

2023-06-28 15:52:20 543

原创 MySQL基本知识复习补充

DDL:数据定义语言。create、alter、drop、rename、truncate(清空表)DML:数据操作语言。DCL:数据控制语言。因为查询语句使用频繁,可以把细分为DQL(数据查询语言),和commit、rollback细分为TCL(事务控制语言)

2023-06-08 16:27:46 2460

原创 Mac/Linux系统idea启动springboot项目慢;Oracle数据库连接:ORA-21561: OID generation failed

我用的黑苹果系统,但是之前遇到过问题就是idea启动spirngboot项目特别特别特别慢!!!要1,2分钟左右,找了好久原因也没找到,怀疑是黑苹果调度问题。直到今天,我尝试连接一个oracle数据库,连不上提示`ORA-21561: OID generation failed`,找了半天原因发现是当前系统的用户的hostname我设置的跟hosts文件不一致,被oracle的安全校验否决了于是我推测在其他项目连接mysql项目时也出现了这个问题,可能mysql用localhost连接不上又帮我试了

2023-04-19 17:22:17 850 1

原创 【软件设计师15】数据结构与算法应用

对应一个规模为n的问题,若该问题可以容易的结局(比如说规模n较小)则直接解决;否则将其分解为k个规模较小的子问题,这些子问题互相独立且与原问题形式相同,递归的解决这些小问题,然后将各个子问题的解合并得到原有问题的解。该问题的规模缩小到一定程度就可以容易地解决该问题可以分解为若干个规模较小的相同问题利用该问题分解出的子问题的解可以合并为该问题的解该问题所分解出的各个子问题是相互独立的。

2023-04-16 12:31:03 297

原创 【软件设计师14】UML建模

动态图,表现对象之间的交互关系,强调时间顺序;给出一些对象,引出生命线(竖直虚线),通过交互表达消息的传递一般会把某个消息去掉,让你分析题补充;其次是填对象名

2023-04-14 09:30:25 561

黑苹果EFT,亲测可用完美适配拯救者Y7000P-10875H

黑苹果EFT,亲测可用完美适配拯救者Y7000P-10875H 唯一问题系统亮度无法调节,但是可以下载Brightness Slider调节亮度 没有积分下载的兄弟萌可私信我看到会回复

2022-03-09

空空如也

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

TA关注的人

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