- 博客(85)
- 资源 (23)
- 收藏
- 关注
原创 MySQL的内存碎片
MySQL中的数据库表会存在物理存储碎片,这种情况通常发生在频繁执行插入、删除和更新操作的数据库中。这些操作会导致表中的数据页部分空间未被有效利用或数据在物理存储上的排列不连续,从而形成碎片。碎片的主要来源是因为存在频繁的DML操作,如insert、update以及delete,除此之外,还有如果我们使用varchar或者text这种可变长度字段存储的时候,更新时如果长度发生变化,也会存在碎片。
2025-01-20 15:43:03
537
原创 MySQL死锁案例分:先delete,再insert,导致死锁
session1 已获取到IX锁,gap锁, 等待rec insert intention(插入意向锁), session1, session2 都在等待插入意向锁, 插入意向锁与gap锁冲突,双方都没有释放gap锁,又都在等待插入意向锁,死锁发生。或独占锁,对记录加了排他锁之后,只有拥有该锁的事务可以读取和修改,其他事务都不可以读取和修改,并且同一时间只能有一个事务加写锁。加了读锁的记录,所有的事务都可以读取,但是不能修改,并且可同时有多个事务对记录加读锁。
2025-01-17 16:34:53
891
原创 IDEA 自定义注解(类注释、方法注释)
** gz* @Description: 一句话描述该类的功能* @UpdateRemark: 说明本次修改内容*/
2024-12-25 15:42:09
293
原创 Linux去除注释和空行
平时查看某些配置文件的时,我们会发现有很多注释(如:"#"开头的行),中间还有很多空行,看起来非常费劲,所以在这里总结下如何去除注释和空行的方法。这里选个简单点的文件,来演示下效果,我们可以看到一些空行和注释。效果和上面一样,这里就不继续贴图了。去除注释和空行的命令。
2024-12-16 16:45:11
314
原创 Spring面试题
Spring是一个Java开发框架,它提供了一种可扩展的模型来开发Java应用程序。Spring框架的目标是提供一个全面的解决方案,用于构建企业级应用程序。Spring框架的核心特点包括依赖注入(DI)、面向切面编程(AOP)、声明式事务管理、MVC框架等。Spring框架的核心是Spring容器,它是一个负责管理应用程序中的对象的容器。容器使用依赖注入技术来自动注入依赖项,使得开发者可以专注于编写应用程序的业务逻辑而不必关心对象创建和管理的细节。
2024-12-03 11:26:12
1041
原创 Mybatis面试题
Mybatis是一种流行的Java对象关系映射(ORM)框架,它将Java对象映射到关系型数据库中的表格。它提供了一种简单的方式来编写SQL语句并将其映射到Java对象,同时避免了很多传统JDBC的冗长代码。在使用Mybatis时,开发人员可以编写简洁的SQL语句,并且可以使用动态SQL和参数映射来进行高效和灵活的数据操作。除了ORM之外,Mybatis还提供了许多高级功能,如缓存机制、批量操作、分页等等。
2024-12-03 10:25:54
581
翻译 Java集合面试题
ArrayList是基于数组的集合,数组的容量是在定义的时候确定的默认为10,如果数组满了,再插入,就会数组溢出。HashMap的容量是2的n次幂时,(n-1)的2进制也就是1111111***111这样形式的,这样与添加元素的hash值进行位运算时,能够充分的散列,使得添加的元素均匀分布在HashMap的每个位置上,减少hash碰撞。多线程的put可能导致元素的丢失。右移16位,正好是32bit的一半,自己的高半区和低半区做异或,就是为了混合原始哈希码的高位和低位,以此来加大低位的随机性。
2024-12-02 16:06:07
52
原创 Lock wait timeout exceeded; try restarting transaction问题解析
一直处于锁等待状态,直到超时报错。因为使用的数据库为mysql,而InnoDB表类型会出现锁等待的情况,在出现锁等待时,会根据参数innodb_lock_wait_timeout(默认50s)的配置,判断是否需要进行timeout的操作,如果等待时间超过了设置的时间就会报错。本次问题是因为update语句导致的锁表,因为是在疲劳测试(压测12小时)过程中出现的问题,使用10并发进行压测,每秒差不多15笔申请调用,所以上述的1234都不符合,查看发现mysql资源不足,内存达到100%,确认实际异常原因。
2024-11-18 16:22:42
990
原创 Java进程CPU高负载排查
已经找到了这个罪魁祸首的线程 PID,并把它转换成了 16 进制的,第三步保存下来的线程栈中有所有线程的 PID 16 进制信息,我们在线程栈中查找这个16进制的线程 id (0x35bc)。通过top命令确认占用cpu过高的JAVA进程。获取进程使用CPU最高的线程。
2024-11-14 10:56:50
376
原创 Linux系统下minio设置SSL证书进行HTTPS远程连接访问
为了在生产环境中确保安全性,建议获取一个受信任的SSL证书,可以从证书颁发机构(CA)购买,或者使用免费的证书颁发机构(例如Let’s Encrypt)获取SSL证书。在生产环境中,使用自签名证书并不推荐,因为它们不受信任的证书颁发机构(CA)签署,可能会导致安全问题。是密钥库文件的路径。1.在上面的代码中,我们创建了一个SSLContext,其中的X509TrustManager会信任所有证书,无论其是否由信任的证书颁发机构(CA)签署。CA比较新或自行颁发的证书,需要将证书加入到jdk的信任证书库中,
2024-10-28 15:09:08
2978
翻译 List<Map<String,Object>>根据key排序(倒序升序)
List<Map<String,Object>>根据key排序(倒序升序)
2024-09-02 14:54:45
319
原创 修改jar包中任意文件,并重新打包成可执行jar文件
如果是class文件需要进行反编译,修改代码后,并重新编译成class。此处需要注意使用的jdk版本要与之前的class文件保持一致。例如如果之前是jdk1.8,修改完成编译class文件也要是1.8。进入到解压的目录,注意jar的lib包是不能压缩的。注意最后的/ 和 . 是有空格的。重点在于0不执行压缩打包。如果是配置文件等文本文件,打开文本编辑器修改保存即可。
2024-03-28 15:43:34
935
原创 springboot /tmp 临时目录
在linux系统中,springboot应用服务再启动(java -jar 命令启动服务)的时候,会在操作系统的/tmp目录下生成一个tomcat*的文件目录,上传的文件先要转换成临时文件保存在这个文件夹下面。上线后可能tomcat临时文件夹会被Linux删除,会报找不到错误,现在赶紧记录一下,已被不时之需。既然目录被删除了,重启一下服务,让系统重新生成该目录,临时解决(但是以后目录还可能被删除)因为流取一次消费之后,后面无法再从流中获取数据,所以缓存方便后续复用;
2024-02-29 10:21:57
2090
1
原创 mybatisPlus3.5.1最新代码自动生成器
官方源码地址: https://gitee.com/baomidou/mybatis-plus。官方文档 :https://baomidou.com/pages/56bac0/官网:https://baomidou.com/
2024-01-12 09:55:42
755
原创 MAC系统安装多版本JDK
打开配置文件添加环境变量 open .bash_profile 添加后使用command s保存,关闭这个文件(一定要关闭,不然source可能不生效,左上角x掉即可)在根目录下执行ls -af命令,看看是否存在.bash_profile文件,如果是新电脑,可能是没有这个文件的,需要自己创建。如果没有.bash_profile文件的话,执行touch .bash_profile来创建这个文件。解决方案:同样在当前用户目录下,使用该命令vi ~/.zshrc 打开配置文件。
2024-01-05 11:15:55
615
原创 Parallels虚拟机启动后,Mac主机无法上网怎么办
部分用户在运行Parallels Desktop的Windows 11打开后,Windows上网没有问题 ,但是Mac主机不能访问带域名的网站,而访问带ip的网站没问题,退出parallels虚拟机以后,mac网络恢复正常。退出 Parallels Desktop。打开 mac 系统终端并执行以下命令。
2024-01-04 15:46:28
1053
原创 Mysql主从复制Slave_SQL_Running:no
7.设置从库同步,注意该处的同步点,就是主库show master status信息里的| File| Position两项。今天突然发现从库的数据和主库的数据对不上了从库少了好多数据,赶紧排查了一下从库发现从库断了,将修复的操作记录一下。这里注意一点:数据库备份一定要定期进行,可以用shell脚本或者python脚本,都比较方便,确保数据万无一失。Slave_IO_Running:连接到主库,并读取主库的日志到本地,生成本地日志文件。1.先进入主库,进行锁表,防止数据写入。3.查看master 状态。
2023-12-09 14:24:42
2287
原创 IDEA 只格式化自己写的代码,不影响其他人代码格式
在公司多人协同开发,我们使用idea编辑代码在默认情况下,我们保存自己修改的代码,可能会对别人代码格式进行修改,会造成大量的改动,这种情况下我们如何做到只保存自己修改代码格式而不影响其他人代码格式,下面我们一一介绍。选择Only VCS changed test 点击Run,,然后修改本地代码,保存,git diff 试下咯…首先,File–>Settings–>Editor–>Code Style–>Java。勾选 Use tab character 和 Smart tabs。
2023-11-03 10:42:41
933
翻译 Java比较两个字符串是否相等(空指针安全方式,若两个字符串都有可能为空)
所以我们在使用Object.equals比较大小的时候,尽量保证两个入参类型相等。可以看到这个equals先检查了入参是否是Integer类型,如果不是直接返回了false。”运算符,equals()方法比较字符串对象中的字符,而“==”比较两个对象引用看它们是否引用相同的实例。但是,如果str1=null,再使用str1.equals(str2)来比较的话,便会产生空指针异常。使用 Objects.euqals() 方法比较即可避免空指针异常,因为它是空指针安全的。equals()方法和。
2023-10-17 10:23:03
1115
原创 MinIO的安装与使用
MinIO与传统的存储和其他的对象存储不同的是:它一开始就针对性能要求更高的私有云标准进行软件架构设计。所以他采用了更易用的方式进行设计,它能实现对象存储所需要的全部功能,在性能上也更加强劲,它不会为了更多的业务功能而妥协,失去MinIO的易用性、高效性。中文下载地址:http://www.minio.org.cn/download.shtml#/linux。中文文档: http://docs.minio.org.cn/docs/中文官网: http://www.minio.org.cn/
2023-10-11 15:06:18
618
原创 Java中InputStream写入到文件中
1.流是单向的有方向性的描述信息流的对象,InputStream是输入流的接口,对程序来说是入,是读,可以从文件读,缓存区读,网络节点读等等.2.写入文件,对程序来说是出,是写,就是FileOutputStream,可以写入int也可以byte[]基于流(Stream)的解决。
2023-09-26 16:09:44
1503
翻译 Docker修改MySQL、RabbitMQ、Redis密码
这个就是配置 Redis 访问密码的参数,在默认情况下 requirepass 参数是空的,这就意味着你无需通过密码验证就可以连接到 Redis 服务。其中myrabbitmq是自己的容器中 RabbitMQ 的名称,可通过docker ps进行查看,然后替换自己容器中的 名称 即可。则下次当客户端连接 Redis 服务时就需要密码验证,否则无法执行命令。设置密码后,使用重启命令docker restart redis。使用docker ps即可查看自己容器中的 Redis ID。
2023-06-05 21:20:00
895
翻译 mac m1 安装git、node
Homebrew是Mac上的一个包管理器,可以帮助你轻松地安装和管理各种开源软件。验证: 更新完成之后再输入 brew --version 验证, 如果输出brew 的版本号, 则已经成功了。按i进入编辑模式,粘贴source ~/.bash_profile后,点击Esc,再输入wq保存退出。原因: 自己是在bash中配置的环境变量,但是当前系统是使用的是shell。解决方法: 使用cd ~进入主目录, 输入ls -a显示隐藏的文件。查看当前使用的shell。最后测试一下,问题解决。一般选择 第一个就行。
2023-05-21 17:32:50
1250
原创 MAC免密登录服务器
进入上图中id_rsa和id_rsa.pub所在的文件夹,有可能要进入隐藏文件夹.ssh,可以使用Command + Shift +。这个快捷键来查看隐藏文件夹。第一个是私钥,.pub结尾的是公钥。输入ssh-keygen,一路enter即可,箭头处也可以输入密码。3.重启 ssh 服务。
2023-05-20 16:13:15
1155
原创 MAC配置JDK环境
shell 脚本在本地执行打包命令 mvn clean install -Dmaven.test.skip=true 报错 找不到JDK的错误,java的环境变量需要重新配置一下。shell用的zsh,配置文件在 .zshrc中。
2023-05-20 11:16:10
735
mac版 FileZilla_3.51.0_macosx-x86.app.tar.bz2
2022-04-24
mac版 Navicat+Premium_12.1.6_xclient.info.dmg
2022-04-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人