自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

LYQ

LYQ

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

原创 深入理解java常用的线程池,以及如何优雅的使用和管理线程

本文通过一个模拟网络下载功能,开启多任务下载操作,其中每条下载都开辟新线程的例子,来具体介绍线程池的常用几种方法。我们每次点击下载按钮,都会开启一个新的线程来执行下载流程,可以看下图也就是说,我们每个任务开辟的都是一个新的线程,假如我们下载任务量非常庞大时,那开辟的线程将不可控制,先不说性能问题,如果出现了线程安全问题或者是线程的调度,处理起来都是非常困难的。所以这种情况下,非常的有必要引入线程池来管理这些线程。

2022-10-04 14:52:31 1561 6

原创 搞懂Nginx+keepalived实现双机热备,Nginx服务的高可用

在Keepalived服务正常工作时,主Master节点会不断地向备节点发送(多播的方式)心跳消息,用以告诉备Backup节点自己还活着,当主Master节点发生故障时,就无法发送心跳消息,备节点也就因此无法继续检测到来自主Master节点的心跳了,于是调用自身的接管程序,接管主Master节点的IP资源及服务。,因为需要一台备用机与主机配置一样,一般好一点的主机就很贵,如果主机一直不宕机,那么备机将一直空闲等待,这就造成了一个长期的浪费。从节点配置和主节点的一致,需要更改的地方为下方标记处。

2022-10-02 20:08:47 2201 4

原创 【MySQL踩坑日记】MySQL清除.bin日志文件后死活起不来服务

今天开发的业务需求的时候遇到一个问题,开发数据库链接不上,进入虚拟机通过df -h命令查看到是磁盘满了,通过大文件命令find / -type f -size +200M查看,原来是大量的.bin日志文件占用了磁盘的存储空间,然后通过命令sudo rm -f mysql-bin.000*删除了今天以前的.bin日志文件。(提示,一定要保留最后一个,不然后面会报错)然后通过登录命令mysql -uroot -p进入MySQL却一直报错,提示ERROR 2002 (

2022-05-16 11:22:00 7622 4

原创 【VUE踩坑记录】[Vue warn]: Error in render: “TypeError: Cannot read properties of undefined

在渲染用户物品列表的时也能完整的渲染出对应的数据,可是控制台却一直报错 [Vue warn]: Error in render: "TypeError: Cannot read properties of undefined (reading 'categoryNums')",具体错误如下图错误翻译如下:翻译的意思就是没有找着“categoryNums”这个对象的属性值。捣鼓了一整子,发现是赋值的变量太长了,原来的赋值变量是一个三段式,而在VUE的渲染机制中,异步数...

2022-02-15 21:37:36 10575 3

原创 1024——HelloWorld

每一个伟大的工程师都是从HelloWorld开始的!

2023-10-24 09:11:11 172

原创 快速降低javacv依赖包的大小

由于在项目中需要对视频进行缩略图的截图处理,引入了javacv-platform的包,但是打包后发现打出来的jar包非常的大后面得知是因为javacv-platform会将所有平台的包集中起来处理,导致包特别的大。

2023-08-07 11:27:41 1185 2

原创 SpringBoot通过获取请求参数或者Headers上的特殊标识实现i18n国际化

i18n国际化

2023-07-07 16:43:50 751

原创 SpringBoot+Vue实现阿里云OSS服务器签名直传并且返回回调数据

SpringBoot+Vue实现阿里云OSS服务器签名直传并且返回回调数据。

2023-07-06 15:02:20 1042

原创 Redis异常报错出现 WRONGTYPE Operation against a key holding the wrong kind of value

去Redis中删除此键,更改代码中键值的读写方式就可以解决,只要是相同数据类型的方式一般就不会出现这个问题。本来是想设置一个list类型的数据,存入的时候却是使用的string类型,使用type命令查看了一下此键值的类型,结果显示是字符串。所以读取的时候使用list相关命令是无法执行的。

2023-06-26 09:37:43 1221

原创 通过vue实现一个上下滑动框进行分页的效果

由于工作项目的需要,需要使用到一个上下滑动框进行分页展示图片,下面是实现效果。

2023-06-07 15:13:40 822 2

原创 在MyBatis XML文件中处理特殊符号的方法,如“>”、“<”、“>=”、“<=”这些符号XML会报错如何处理

在MyBatis的XML映射文件中,我们经常需要使用特殊符号,比如"大于"、"小于"、"大于等于"、"小于等于"等比较操作符。然而,这些符号在XML中具有特殊的含义,因此需要进行特殊处理,以避免引起XML报错。

2023-05-22 13:37:55 11686 2

原创 C#如何引入并且使用Redis

在.NET中使用Redis缓存是一种非常常见的需求。本文介绍了如何在C#中使用Redis,包括连接Redis,设置和获取键值对的最佳实践。希望这些实践对.NET开发者在使用Redis缓存时有所帮助。

2023-04-29 22:52:52 1422 1

原创 Windows下安装zookeeper,以及相关问题的解决办法

在安装配置zookeeper之前需要配置jdk的环境变量,zookeeper在启动服务端的时候会基于java环境启动,所以在启动的时候会检测 jdk 是否安装,如果配置过的可以直接跳过此项,没有配置过的会报错**JAVA_HOME is not set**

2023-04-04 09:44:59 1128 2

原创 关于C#:“/”应用程序中的服务器错误。编译器错误消息 编译器失败,错误代码为 -2146232576。

花了大量时间也没查出个所以然来,网上都说是框架的版本不匹配。试着在虚拟机上面部署个后端项目,但是却提示编译失败。但是具体原因不得而知,知道的小伙伴么可以说一下。问题得以解决,页面也出来了。后面根据他人的博客得知需要。

2023-04-03 19:01:11 464

原创 “Windows Server 2012 R2安装VMwareTools提示“安装程序无法验证是否已安装所需的Microsoft更新KB2919355”的解决办法

Windows Server 2012 R2安装VMwareTools提示“安装程序无法验证是否已安装所需的Microsoft更新KB2919355。若下载后安装还提示报错,说此更新不适用于你的计算机的话,则是需要先下载其他补丁(KB2919442)网上查询资料说是Windows Server 2012 R2缺少补丁KB2919355。然后再次点击安装VMware Tools,发现安装界面就出来了。下载并且安装补丁(KB2919442)即可。一直下一步,安装就行了。

2023-03-30 16:19:50 6129 1

原创 百万数据的表如何在带排序的情况下进行MySQL分页查询的优化

MySQL的带条件排序的分页查询是非常常见的操作,但是如果数据量很大,查询性能可能会很低。如果遇到相关问题,我们应该确认问题:首先,需要确认查询很慢的具体原因。可以使用MySQL自带的查询分析器,例如EXPLAIN语句,来分析查询的执行计划和索引使用情况。这样可以确定查询慢的原因,例如是否需要优化查询语句或添加索引等。优化查询语句:在确认查询慢的原因后,可以考虑优化查询语句。例如,可以考虑修改查询条件、添加索引、使用JOIN语句等。

2023-03-26 23:05:39 1119

原创 SpingBoot 如何实现自动装配

自动装配,简单来说就是自动把第三方组件的 Bean 装载到 Spring IOC 器里面,不需要开发人员再去写 Bean 的装配配置。在 SpringBoot 应用里面,只需要在启动类加上@SpringBootApplication 注解就可以实现自动装配。@SpringBootApplication 是 一 个 复 合 注 解 , 真 正 实 现 自 动 装 配 的 注 解 是@EnableAutoConfiguration。自动装配的实现主要依靠三个核心关键技术。

2023-02-23 16:16:51 488

原创 Java集合之HashMap源码分析

HashMap的组成部分:数组 + 链表 + 红黑树。HashMap的主干是一个Node数组。Node是HashMap的基本组成单元,每一个Node包含一个key-value键值对。HashMap的时间复杂读几乎可以接近O(1)(如果出现了 哈希冲突可能会波动下),并且HashMap的空间利用率一般就是在40%左右。

2023-02-22 15:59:19 95

原创 HashMap是如何进行put操作的

判断table是否为空,如果空的话,会先调用resize扩容;根据当前key的 hash 值,通过 (n - 1) & hash计算应当存放在数组中的下标 index;查看 table[index] 是否存在数据,没有数据就构造一个 Node 节点存放在 table[index] 中;存在数据,说明发生了 hash 冲突,继续判断 key 是否相等,如果相等,用新的 value 替换原数据(这里onlyIfAbsent 为 false);

2023-01-31 09:18:14 2788

原创 docker登陆MySQL提示密码错误,Navicat也连接不上

今天在操作自己云服务器MySQL数据库的时候发现使用root进行远程登录的时候被拒绝了,一直提示Access denied for user ‘root‘@‘localhost‘ (using password: YES)。可以确认自己账号密码是没有错的。后来以为是远程访问出问题了,进入到容器内部,使用命令进行登录也报错。不明白是什么原因造成的。

2022-12-17 18:27:55 2103 2

原创 JUC并发编程之 CAS 机制

CAS 是 Java 中 Unsafe 类里面的方法,它的全称是 CompareAndSwap,字面意思为比较并交换。它是一条CPU并发原语,比较工作内存值(预期值)和主物理内存的共享值是否相同,相同则执行规定操作,否则继续比较直到主内存和工作内存的值一致为止。这个过程是原子的(AtomicInteger类主要利用CAS(compare and swap)+volatile和native方法来保证原子操作,从而避免synchronized的高开销,执行效率大为提升。

2022-12-17 10:46:12 259

原创 Spring中的事务@Transactional,你真的会用么?

在Spring中,事务的实现方式分为两种:编程式事务和声明式事务,编程式事务编程式事务是指在代码中手动的管理事务的提交、回滚等操作,代码侵入性比较强。声明式事务声明式事务建立在AOP之上,原理是对方法进行拦截,在目标方法执行之前添加事务,目标方法执行后根据执行情况进行事务的提交或回滚。@Transactional注解是实现声明式事务的方式之一,它能保证方法内多个数据库操作要么同时成功、要么同时失败。

2022-11-25 08:10:03 1768

原创 利用Nacos实现动态化线程池

在日常的项目后台研发中,我们会经常用到线程池来处理一些并发场景,提高任务的处理效率。然而,由于系统运行过程中存在的不确定性,我们对于线程池核心参数的配置很大程度上依靠经验,致使我们很难一劳永逸地规划一个合理的线程池参数,只能在项目运行过程中,不断地调整线程池参数,然后重启服务,但是这样进行线程池参数的调整会致使成本升高。那么我们该如何在不重启服务的前提下动态的调整线程池参数呢?

2022-11-06 21:18:57 173 1

原创 4×1024=4096,入行的第四个1024

入行的第四个1024了。或许外界对程序员依旧存有许多刻板印象,但不可否认,正是程序员们夜以继日的技术钻研,才有了我们如今智能便捷的现代生活。另外JAVA才是最好的编程语言

2022-10-24 09:41:54 465 1

原创 实现Nginx挂掉,keepAlived发现故障,切换VIP节点时发送邮件

实现Nginx挂掉,keepAlived发生故障切换VIP节点时邮件

2022-10-02 21:45:32 415 1

原创 java.util.ConcurrentModificationException异常原因及解决方法

通过错误提示,知道了异常出现在checkForComodification这个方法上,异常原因是modCount!在网上查询得知,在很多容器中,都有一个变量记录你从结构上修改此容器的次数,叫做modCount,查看ArrayList的add()和remove()方法就可以发现,每次你调用add方法()向容器里面增加了一个元素,或者你调用Remove()方法删除了其中的某个元素,这个值都会增加1。

2022-10-01 18:44:01 6093

原创 Nginx反向代理RabbitMQ出现交换机和队列出现Not found The object you clicked on was not found; it may have been。。。

Nginx反向代理RabbitMQ出现交换机和队列出现Not found The object you clicked on was not found;

2022-09-19 21:34:56 2919

原创 一文搞懂Docker

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。

2022-09-15 16:22:23 1664 5

原创 MyBatis-Plus公共字段自动填充

我们在开发中经常遇到多个实体类有共同的属性字段,例如在用户注册时需要设置创建时间、创建人、修改时间、修改人等字段,在用户编辑信息时需要设置修改时间和修改人等字段。这些字段属于公共字段,也就是很多表中都有这些字段,能不能对于这些公共字段在某个地方统一处理,来简化开发呢?MybatisPlus公共字段自动填充,也就是在插入或者更新的时候为指定字段赋予指定的值,使用它的好处就是可以统一对这些字段进行处理,避免了重复代码。...

2022-07-30 09:28:20 1614 2

原创 学习orm全自动框架MyBatis-Plus,看这篇就够了

MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。

2022-07-30 08:38:58 2751

转载 CentOS7.6安装MySQL8.0

CentOS7.6安装MySQL8.0(图文详细篇

2022-07-21 18:06:49 2500 2

原创 ClassLoader 类加载器和双亲委派模型

Java在需要使用类的时候才会将类载入,Java中类的载入是由来实现的。

2022-07-21 17:08:11 2350 1

原创 Java反射详解+实战案例

Java反射机制是在运行状态中,对任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。“反射之所以被称为框架的灵魂”,主要是因为它赋予了我们在运行时分析类以及执行类中方法的能力,这种能力也就是我们常说的动态性,利用这种性质可以使编写的程序更灵活更通用。反射机制可以用来:官方文档:https://docs.oracle.com/javase/tutorial/reflect/index.ht

2022-07-21 17:00:39 4202 1

原创 面向对象理解——多态

何为多态

2022-05-27 22:11:29 9457 2

原创 C#:找不到指定的模块。 For more information about the error, run iisexpress.exe

For more information about the error, run iisexpress.exe

2022-05-15 17:07:23 5891

原创 Java代理模式详解

由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时,访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之间的中介。在这个模式中,我们通过创建代理对象作为“替身”替代了原有对象,从而达到我们控制对象访问的目的。通俗来说,代理=代替处理。是由另一个对象来代替原对象来处理某些逻辑。举个例子:房产中介、代跑腿业务、送外卖、火车站卖票...静态代理虽然能够实现我们所说的代理模式,完成了解耦,但是静态代理类的代码维护依然非常复杂。

2022-05-15 16:55:34 6340

原创 画业务架构图有感

关于业务结构图有以下疑问:1、业务架构图是什么?答:业务结构图是一种表达业务层级和关系的图2、想要表达什么?答:表达了各个业务系统之间的关系,可以帮助我们很好的梳理业务关系。3、有什么用?答:业务架构图可以将复杂的业务逻辑简单化,降低我们理解业务的难度。4、给谁看?答:业务架构图给用户看,让用户了解我们这一款软件有什么业务我们在画业务架构图之前,要明白业务结构图是其他架构的基础,没有业务去谈架构都是空谈,业务架构图主要从需求和功能出发描述系统架构,业务架构图服务于业务目标,用于描绘业

2022-05-15 16:38:53 6042

原创 Java生成树型结构

由于业务需要,后端需要返回一个树型结构给前端,包含父子节点的数据已经在数据库中存储好,现在需要做的是如何以树型结构的形式返给给前端。数据库表结构如下:实现思路如下:1、拿到有父子节点的集合数据2、遍历集合数据,拿到所有的根节点3、遍历根节点,拿到所有的子节点4、递归子节点,将递归的子节点接上其父节点,直到子节点为空,递归完成5、递归好后以集合形式返回,返回前端时以JSON格式转换后返回具体代码如下:1、造数据,和数据库表数据一致package com.lyq.g

2022-05-03 01:21:09 8137 2

原创 【Redis踩坑日记】Redis由于目标计算机积极拒绝,无法连接

问题:按理说启动Windows上的Redis需要先启动redis-server.exe服务,再接着打开redis-cli.exe控制台界面的,可是在启动redis-server.exe服务的时候直接闪退,再接着点击redis-cli.exe打开控制台界面却报错Could not connect to Redis at 127.0.0.1:6379: 由于目标计算机积极拒绝,无法连接。解决办法:在Redis的安装目录直接cmd,在控制台输入启动命令redis-server.exe redis.w.

2022-04-14 17:49:32 14360 3

原创 vue计时器组件的封装,实现暂停、开始、重置等一系类功能

由于业务上的更改,前端需要一款倒计时组件,这个业务需要倒计时组件的时间能暂停、开始、重置等一系列的功能,本来有那么多优秀的UI组件可以实现这个功能,但是老项目不支持引入其他UI组件,所以只能自己写了,实现的效果如下:调用代码如下:<template> <div style="text-align: center;"> <countdown ref="vCountDown" :time="times" format="mm:ss" autoStart @cha

2022-04-02 11:25:33 8630 1

C#WinForm版网咖收费系统,包含人脸注册、识别,在线点歌、论坛、实时计费、语音播报等功能,资源里同时包含文档,图等。.rar

C#WinForm版网咖收费系统,包含人脸注册、识别,在线点歌、论坛、实时计费、语音播报等功能,资源里同时包含文档,图等。

2021-02-28

空空如也

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

TA关注的人

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