自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

猫狗鼠鱼的储物间

放一点好玩的东西!!

  • 博客(52)
  • 资源 (2)
  • 收藏
  • 关注

原创 主子表联动实现文档

本文介绍了主子表联动功能的实现方法,通过主表行点击触发子表数据加载。核心步骤包括:1)设计关联数据结构,主表ID与子表routeId建立关联;2)监听主表行点击事件并保存当前行;3)根据主表ID查询子表数据;4)展示子表数据。关键技术点包括数据关联、状态管理、初始化处理和子表操作关联主表。优化建议涉及防止重复请求、添加加载状态和空状态提示。该模式适用于订单-明细等主从关系数据展示场景,实现原理简单高效。

2025-12-09 17:00:18 282

原创 nvm for windows切换node版本无法为单独项目切换版本的解决方案

本文分享了在Windows下使用nvm管理Node版本时的替代方案。由于nvm for Windows只能全局切换版本,作者通过在PowerShell配置文件中定义别名函数来解决这个问题,包括node14、npm14和npx14等命令,直接调用指定版本的Node.js可执行文件。此外还提供了设置和移除代理的实用函数。这种方案虽然不够优雅,但能实现多版本Node的并行使用需求。

2025-12-09 09:27:20 196

原创 Spring Cloud Gateway写好配置文件503 Service Unavalible的问题解决方案

摘要:当负载均衡器(lb)和服务名称配置正确但仍无法正常工作时,通常缺少必要的依赖项。解决方案是添加两个关键依赖:spring-cloud-alibaba-sentinel-gateway用于网关功能,以及spring-cloud-starter-loadbalancer(建议版本4.3.0)用于负载均衡支持。这两个依赖项能确保系统具备完整的负载均衡能力。

2025-11-21 00:01:38 194

原创 Powershell配置代理

在Windows终端通过curl下载GitHub文件可能因网络问题失败。通过PowerShell设置代理可以解决:1)创建配置文件;2)添加setproxy函数设置代理地址;3)使用removeproxy取消代理。设置代理后即可正常下载文件。这解决了因网络限制导致GitHub下载失败的问题。

2025-11-05 11:34:05 289

原创 JAVA程序启动相关参数(JVM调优)

本文总结了JVM堆内存调优的关键参数及其作用。核心参数包括:-Xms/Xmx控制堆初始/最大大小,建议设为相同值避免扩容停顿;-Xmn设置新生代大小,影响MinorGC频率;-XX:SurvivorRatio调整Eden与Survivor区比例;-XX:MaxTenuringThreshold控制对象晋升老年代的阈值。辅助参数如-XX:+PrintGCDetails用于分析GC行为,-XX:+ScavengeBeforeFullGC在FullGC前执行MinorGC以减少开销。调优要点在于平衡各区域大小,通

2025-10-30 21:20:49 398

原创 JVM分代回收

JVM 在执行某些操作时,会暂停所有用户线程(应用线程),只让 GC 线程(或某些系统线程)工作。当 STW 发生时:所有正在运行的 Java 应用代码(业务逻辑线程)都会被 挂起(suspend);JVM “冻结”整个世界;GC 或其他内部操作完成后,再让应用线程恢复执行。

2025-10-30 21:14:25 892

原创 什么是STW

STW(Stop-The-World)机制是JVM执行某些操作(如垃圾回收)时暂停所有用户线程的行为,仅允许GC或系统线程运行。STW期间,所有业务逻辑线程被挂起,JVM处于"冻结"状态,待操作完成后恢复线程执行。触发场景包括垃圾回收、安全点操作等,持续时间通常为毫秒级,但对高并发系统性能影响显著。优化STW时间是JVM调优的关键目标之一。

2025-10-30 21:12:48 224

原创 垃圾回收算法

2025-10-30 20:45:45 222

原创 什么时候使用String.inter()方法来进行调优?

摘要:字符串 intern() 方法适用于三种优化场景:1)堆中存在大量重复字符串时,通过常量池共享减少内存占用;2)作为高频重复的 Map Key 时,提升哈希比较效率;3)长期缓存的字符串数据,避免重复对象堆积。该方法通过确保相同内容字符串引用同一对象,优化内存和性能,适用于数据库、缓存系统等场景。(98字)

2025-10-26 23:15:59 131

原创 StringTable性能调优

因为StringTable是由HashTable实现的,所以可以适当增加HashTable桶的个数,来减少字符串放入串池所需要的时间-XX:StringTableSize=桶个数(最少设置为 1009 以上)考虑是否需要将字符串对象入池可以通过 intern 方法减少重复入池

2025-10-26 22:48:00 105

原创 -Xmx10m -XX:+PrintStringTableStatistics -XX:+PrintGCDetails -verbose:gc

这组JVM参数用于调试内存回收和字符串常量池行为。-Xmx10m限制堆内存为10MB,便于观察小内存下的GC表现;-XX:+PrintStringTableStatistics在退出时打印字符串常量池统计信息;-XX:+PrintGCDetails和-verbose:gc配合输出详细的GC日志。该组合常用于分析字符串常量池使用情况、GC行为及小内存环境下的对象分配回收问题,特别适合调试String.intern()的内存占用和验证字符串常量池是否溢出。

2025-10-26 22:33:03 394

原创 StringTable存储位置

Java 8将方法区从永久代(PermGen)移至堆内存(Metaspace),主要改进包括:1.永久代大小固定易内存溢出;2.Metaspace使用本地内存动态扩展;3.降低Full GC频率提升性能;4.简化JVM内存管理。这是Java内存模型的重要优化。

2025-10-26 22:32:29 286

原创 StringTable存储位置

Java 8将方法区从永久代(PermGen)移至堆内存(Metaspace),主要改进包括:1.永久代大小固定易内存溢出;2.Metaspace使用本地内存动态扩展;3.降低Full GC频率提升性能;4.简化JVM内存管理。这是Java内存模型的重要优化。

2025-10-26 20:13:35 344

原创 JVM字符串常量池 StringTable

本文通过Java代码示例分析了String.intern()方法的行为特点。当使用StringBuilder创建字符串并调用intern()时,如果常量池没有该字符串,会将对象引用存入常量池;若已存在则直接返回引用。示例显示,不同的创建顺序会导致不同的引用比较结果:先intern()后创建字符串字面量时,所有引用都指向同一对象;而先创建字面量再intern()时,新建对象与常量池引用不同。特别地,使用new String("ab")会先在常量池创建"ab"再新建对象,

2025-10-26 20:06:45 217

原创 SQL题 笔试时候刷到的记录下

当时没想起来,下面想了一下,直接用dept_id group by一下,再拿having过滤一下就行了。现在要查询每个部门的最高工资员工信息(显示部门名,员工名和工资)这里用子查询拼一下也是可以的。

2025-10-19 12:52:00 171

原创 SnowFlake算法

摘要:SnowFlake是Twitter开源的分布式ID生成算法,生成64位long型ID,包含时间戳、机器标识和序列号。优点包括高性能、高吞吐量和有序ID;缺点是依赖系统时间。算法组成:1位符号位(固定0)、41位时间戳、10位机器标识(5位数据中心+5位机器)、12位序列号(每毫秒可生成4096个ID)。应用场景涵盖分布式系统、大数据处理、电商订单、日志记录等需要唯一ID生成的场景。可根据需求调整各字段位数以满足不同业务需求。

2025-10-18 13:17:05 359

原创 Maven配置镜像

【代码】Maven配置镜像。

2025-10-18 13:15:19 220

原创 archlinux选择指定java版本

【代码】archlinux选择指定java版本。

2025-10-18 13:14:45 300

原创 linux安装maven

参考这个:https://meowrain.cn/archives/maven-pei-zhi-jing-xiang。

2025-10-18 13:10:14 137

原创 centos mysql安装

本文介绍了MySQL 5.7.43在CentOS 7上的安装步骤。主要内容包括:下载rpm安装包并解压;安装所需依赖后,按特定顺序安装各组件rpm包;处理安装时可能出现的依赖报错;完成安装后启动服务并获取初始密码;修改root密码并设置远程访问权限。文章提供了详细的命令行操作过程,包括解决密码复杂度要求和远程访问配置的方法,适用于需要在CentOS 7系统上手动安装MySQL 5.7.43的用户参考。

2025-10-18 13:08:34 133

原创 Git不小心提交了100M以上文件导致无法提交解决方案

文档: https://rtyley.github.io/bfg-repo-cleaner/可以直接用这个Scala写的bfg。

2025-10-18 13:07:07 186

原创 HashMap和ConcurrentHashMap的区别

JDK1.7和1.8版本中HashMap与ConcurrentHashMap的结构和性能对比: 1.7版本HashMap采用数组+链表结构,ConcurrentHashMap使用分段锁保证线程安全;1.8版本引入红黑树优化,HashMap结构变为数组+链表+红黑树,ConcurrentHashMap改用CAS+synchronized机制。1.7版本在多线程环境下存在性能瓶颈,1.8版本通过缩小锁粒度和优化数据结构,显著提升了并发性能和查找效率。单线程下1.8的HashMap由于红黑树结构,在长链表场景下查

2025-10-18 13:05:14 277

原创 HashMap原理

HashMap是基于哈希表的键值对存储结构,采用数组+链表+红黑树解决哈希冲突。核心通过键的hashCode计算哈希值,使用(n-1)&hash确定数组索引位置。默认容量16,负载因子0.75,超过阈值会扩容2倍。Java8优化了哈希扰动函数,将高16位与低16位异或,使分布更均匀。当链表长度超过8且数组容量≥64时,链表转为红黑树;节点数低于6时转回链表。put方法先检查桶是否为空,为空则直接插入;否则处理冲突,匹配则更新,不匹配则链式存储或树化。

2025-10-18 13:02:23 1036

原创 ConcurrentHashMap1.7和1.8的区别

JDK1.7的ConcurrentHashMap采用分段锁机制,默认16个Segment实现有限并发,但扩容不灵活。JDK1.8取消分段锁,改用synchronized锁单个节点,通过CAS提升并发度。1.7按Segment扩容,1.8实现全局CAS扩容;1.7通过尝试统计size,1.8直接使用LongAdder计算。1.8在锁粒度、扩容机制和并发性能上均有显著优化。

2025-10-18 12:59:01 742

原创 JUC CAS ABA问题

ABA问题是并发编程中,在使用无锁(lock-free)算法,特别是基于 比较并交换(Compare-And-Swap, CAS) 操作时可能出现的一种逻辑错误。它之所以被称为"ABA"问题,是因为一个变量的值从 A 变成了 B,然后又变回了 A。对于一个只检查当前值是否等于期望值的CAS操作来说,它会认为值没有发生变化,从而成功执行操作,但实际上变量在期间已经被修改过了。想象一个无锁的栈(Stack),其pop()操作需要原子地更新栈顶元素。栈顶top指向元素A。

2025-10-18 12:57:25 258

原创 Spring Bean的生命周期

Spring Bean的生命周期包含10个关键步骤:1.实例化Bean;2.属性赋值;3.处理Aware接口(BeanNameAware等);4.BeanPostProcessor前置处理;5.执行InitializingBean的afterPropertiesSet();6.执行自定义init方法;7.BeanPostProcessor后置处理;8.Bean就绪使用;9.执行DisposableBean的destroy();10.执行自定义destroy方法。其中Aware接口让Bean获取容器信息,In

2025-10-18 12:52:42 348

原创 Spring中的BeanFactory与FactoryBean

BeanFactory是一个工厂接口,是一个负责生产和管理bean的一个工厂。BeanFactory只是一个接口,不是IOC容器的具体实现,所以Spring容器给出了很多种实现,如XmlBeanFactory、AnnotationConfigApplicationContext,ApplicationContext等。

2025-10-18 12:50:40 854

原创 Spring配置相关的注解

本文介绍了Spring Boot中常用的属性配置注解,主要分为三类:值注入(@Value)、配置源(@PropertySource, @TestPropertySource)和批量绑定(@ConfigurationProperties, @EnableConfigurationProperties)。其中,@Value适用于简单属性注入,@PropertySource用于加载外部配置文件,而@ConfigurationProperties是最推荐的方式,支持类型安全的批量属性绑定。@EnableConfig

2025-10-18 12:49:56 711

原创 Spring如何解决循环依赖

Spring通过三级缓存机制解决循环依赖问题。核心原理是提前暴露未完全初始化的Bean:1)创建Bean A时,将半成品A存入三级缓存;2)当A依赖B时创建B,B又依赖A时从三级缓存获取A的半成品;3)完成B的初始化后,B存入一级缓存;4)最终完成A的初始化。三级缓存(ObjectFactory)主要服务于AOP代理,确保在循环依赖时能正确获取代理对象。整个过程通过缓存转移(三级→二级→一级)确保Bean的正确注入,同时避免重复创建。

2025-10-18 12:44:31 302

原创 什么是Spring循环依赖?

循环依赖就是指两个或者多个模块,类组件之间互相依赖,形成一个闭环。就像上面这种情况,就属于循环依赖。

2025-10-18 12:43:31 120

原创 SQL217 获取当前薪水第二多的员工的emp_no以及其对应的薪水salary

这篇文章介绍了两种不使用ORDER BY查询第二高薪员工的方法。第一种是嵌套查询:先找出最高薪,再找比最高薪小的最大值,最后关联员工表获取信息。第二种是自连接分组:通过薪水自连接并分组,找出出现次数等于2的薪金值。两种方法都实现了在不使用ORDER BY的情况下准确查询第二高薪员工信息,适用于SQL面试题或特定限制场景。文章包含建表语句、详细步骤和结果截图,适合SQL学习者参考。

2025-10-17 17:30:22 419

原创 Go数组和切片练习

for i := 0;

2025-02-11 15:05:20 327

原创 利用channel和go的exec包调用系统命令

【代码】利用channel和go的exec包调用系统命令。

2025-02-11 15:04:15 142

原创 Go 接口

Go语言提倡面向接口编程。

2025-02-11 15:03:08 484

原创 Go语言 Web框架Gin

返回json和都是用于处理静态文件的 Gin 框架路由处理方法,但它们有一些区别。::总体而言,更简单,适用于基本的静态文件服务,而提供了更多的灵活性,允许你自定义静态文件的加载方式。选择使用哪一个取决于你的具体需求。HTTP状态码中的301和302分别表示重定向(Redirect)。它们之间的主要区别在于重定向的性质和原因:301 Moved Permanently(永久重定向):302 Found(临时重定向):总体来说,使用301通常是在确定资源永久移动的情况下,而302通常用于暂时

2025-02-11 15:02:19 892

原创 Go文件读写

参考文档:https://www.liwenzhou.com/posts/Go/file/

2025-02-11 15:00:31 310

原创 Golang设计模式

Golang设计模式Golang设计模式一.面向对象设计原则​1.1 单一职责原则类的职责单一,对外只提供一种功能,而引起类变化的原因都应该只有一个。//不遵守单一职责原则package mainimport "fmt"/*在这个例子中,Clothes 类包含了两个方法 onWork() 和 onShop(),这两个方法描述了在不同场景下(工作和购物)穿着相同的装扮。问题在于这两种场景虽然使用了相同的装扮,但它们实际上是两种不同的行为或上下文。*/type Clothes

2024-11-19 20:30:19 1094 1

原创 Linux C网络编程笔记

转换ipinet_pton()inet_pton 函数用于将字符串表示的 IP 地址转换为网络字节序的二进制格式。与 inet_ntop 相反,inet_pton 的用途是从人类可读的字符串格式转换到机器可读的二进制格式。函数原型#include <arpa/inet.h>int inet_pton(int af, const char *src, void *dst);参数af:地址家族,可以是 AF_INET(表示 IPv4)或 AF_INET6(表示 IPv6)。sr

2024-06-13 22:11:17 1178 1

原创 Shell编程-《变量》

使用。

2023-10-28 13:44:10 234

原创 Gnome恢复托盘

Gnome安装托盘

2023-10-28 13:41:57 534

Emoji包(中文版).zip

Emoji包(中文版).zip

2021-01-29

chrome插件视频加.zip

chrome插件视频加.zip

2021-01-29

空空如也

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

TA关注的人

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