- 博客(53)
- 收藏
- 关注
原创 JVM + IOC + Bean 完整总结
元空间 Metaspace:存类的字节码、Class 元信息、常量池。类加载成功后,Class 信息放这里;一个类加载器下,同一个 Class 只会加载一次。实例化 Bean 那一刻才加载 Class,扫描阶段不加载 Class。堆 Heap:所有 Java 对象实例存放的地方。BeanDefinition 对象、Bean 实例 (target 原始对象 /proxy 代理对象)、BeanDefinitionMap、singletonObjects(ConcurrentHashMap)全部在堆。
2026-09-29 16:58:23
219
原创 Spring全家桶
【Spring生态区分】Spring Framework:底层核心框架,内置IOC、AOP、事务、Spring MVC模块,是所有Spring项目的基石。Spring MVC:属于Spring Framework内部web模块,处理HTTP请求。Spring Boot:基于Spring Framework的脚手架,自动配置、starter依赖、内置web容器,简化项目搭建。Spring Cloud:基于SpringBoot的微服务工具集合,解决分布式服务注册、调用、网关、熔断等治理问题。
2026-09-29 16:49:17
195
原创 Bean相关加载
IOC 容器包含两大核心 Map:BeanDefinitionMap 存放全部 Bean 模板 BeanDefinition;singletonObjects 单例池存放已经实例化完成的单例 Bean 引用。获取 Bean 时优先从单例池查找;不存在则读取 BeanDefinition 模板,实例化 Bean。prototype 每次根据模板新建实例,不存入单例池。
2026-09-15 15:42:42
115
原创 简化理解流程启动与相关内容
元空间:已经加载过的 Class 信息常驻,一般不会 GC 回收;堆内存singleton Bean:一直存活,IOC 单例池持有强引用,不会 GC。prototype Bean:用完之后,没有引用指向它,等待 JVM GC 回收堆对象。虚拟机栈:每次方法调用生成栈帧,方法结束栈帧销毁。
2026-09-15 15:21:52
215
原创 redis问题延伸-Redission锁
waitTime 不要给大值,http 接口不要阻塞 web 线程;锁在外,事务在内;锁释放晚于事务 commit;进程挂掉看门狗兜底;线程卡死进程活着才是看门狗最大风险;IO 一定要加超时,阻塞会引发 Redis 业务死锁;分布式锁只管并发互斥,解决不了网络异常、业务线程卡死问题。另外关于Redission的红锁Redis 作者没有废弃 RedLock 算法,是 Redisson 客户端把自己实现的 RedissonRedLock 类标记废弃。Redis 本身没有删除任何命令。
2026-08-21 16:41:43
154
原创 colneGitHup速度慢的解决方式
登录gitee,在gitee上创建githup的镜像,然后通过gitee克隆到本地就可以了。4.之后就在自己的仓库里面了,然后克隆到本机就可以了。3.导入gitee,右上角选择导入。2.复制gitHub上的http。然后克隆到本机就可以了。
2026-08-21 09:28:10
183
原创 切面学习笔记
execution(返回值 全类名.方法名(参数))// 匹配Jar中Controller指定方法 @Around("execution(* com.mingyoutech.mybi.boot.query.dataset.controller.Query_datasetController.exportFile(..))"):任意返回值(..):任意参数个数、任意参数类型支持多切点||方法1() || 方法2()里面的方法就是切点要处理的方法@Around环绕通知->方法前后都会处理。
2026-08-10 17:33:19
174
原创 设置右击新建Typora文件
6.重启电脑,然后右键新建即可创建 markdown文件。6.重启电脑,然后右键新建即可创建 markdown文件。1.win+R,输入regedit,打开注册表编辑器。出错了双击备份注册表恢复注册表。2.点击 ‘文件’->‘导出’,给注册表进行备份。中创建为字符串值命名为。
2026-08-10 10:18:46
234
原创 不能加事务的场景
Spring 事务仅对当前方法内的 INSERT / DELETE / UPDATE 生效,查询(SELECT)本身不参与事务回滚逻辑。异常类型:默认只捕获 RuntimeException/Error,检查型 Exception 不回滚。上层有事务时,进入该方法原事务被挂起,方法执行完再恢复原事务;嵌套使用会产生事务挂起 / 恢复,数据库开销更大,不要滥用。纠正:仅本次增删改涉及的表 / 行受事务管控。误区:加了事务,整个服务所有表都会被锁定。,挂起当前已有事务,互不影响。事务锁、数据回滚、隔离级别,
2026-07-01 17:24:15
170
原创 为什么使用LocalDateTime而不使用Date
一句话总结:Date->java1.0过时,值为时间戳需要实体类配置LocalDate->java8+,值直接是时间和日期,实体类不用配就是用于mybatis现在日期就直接用LocalDate就可以了Date = 过时、不安全、难用、时区混乱LocalDateTime = 现代、安全、简洁、和数据库完美匹配Date过时、线程不安全、时区易错乱是现代 Java 标准,安全、简洁、和数据库timestamp完美匹配。
2026-06-16 11:32:35
244
原创 volatile 在多线程中的用处
volatile 保证可见性、禁止指令重排不保证原子性,不能做计数自增(可以保证看到最新的,但是不能保证统一时间只有一个人能修改,所以只能作为布尔开关)只适合做布尔开关、状态标记多线程之间实时看见变量最新值对于对象只对修改引用地址生效,内部属性的修改并不能保证线程安全的示例:禁止指令重排创建对象 1.分配内存空间2.初始化对象(构造方法、成员赋值)3.把 instance 引用指向这块内存可能变成1,3,2 这个时候正常单线程没有问题,都现成的情况先就会出问题。
2026-06-08 14:45:42
235
原创 请求线程,普通线程,多线程与自定义线程
线程:进程里最小执行单元,一个进程可以有多条线程,共享内存、并发干活。请求线程SpringBoot 内置 Tomcat 提供,每来一次 HTTP 请求,分配一个请求线程处理接口全程;没配置时,默认:核心 10、最大 200,负责接收请求、走主业务逻辑。普通线程 / 自定义线程自己、实现 Runnable/Callable 创建的线程;用来做异步、耗时、后台任务。多线程不是某一种线程,是同时开启多个线程并发执行的编程方式,用来提速、并行处理。继承Thread类实现Runnable。
2026-05-06 13:49:46
196
原创 java-(double,BigDecimal),sql-(decimal,nuermic)
double是一把 “双刃剑”:它的优势是范围大、计算效率高,适合非精确场景;但精度丢失的特性使其在核心业务(尤其是金融)中完全不可用。核心原则若业务允许微小误差 → 用double;若要求绝对精确 → 必须用BigDecimal+ 数据库NUMERIC类型。DECIMAL和NUMERIC在大多数数据库中功能完全相同,都用于存储精确数值。核心是通过(p, s)控制总位数和小数位数,确保数值精度。与 Java 的BigDecimal配合使用,是处理金融等高精度场景的最佳实践。
2026-02-24 17:26:01
1340
原创 访问外部接口的方式
(最新版本为 HttpClient 5.x)是更底层的 HTTP 客户端库,提供更精细的配置和控制能力,适合复杂场景(如连接池、证书验证、高级会话管理等)。Hutool 是一个 Java 工具类库,对 HTTP 请求做了高层封装,API 简洁易用,适合快速实现接口调用,无需关注底层细节。—>极端复杂场景可考虑 OkHttp(第三方库,性能优秀)–>没用过。(更适合 Spring 生态)—>没用过。—>更底层一点 -->可以更精确的控制。—>若用 Spring 框架,可考虑。(简化 HTTP 请求)
2025-09-16 09:17:06
312
原创 exists和in的区别及适用场景
优先用EXISTS的情况子查询结果集大,或子查询涉及大表。需要通过关联字段(如)与主查询关联。子查询可能包含NULL值。优先用IN的情况子查询结果集小(如固定值列表或小表查询)。子查询无需与主查询关联(如独立的固定条件)。特殊说明现代数据库(如 PostgreSQL 12+、MySQL 8.0+)的优化器会自动转换IN和EXISTS为高效执行计划,部分场景下两者性能差异很小。实际开发中,建议通过EXPLAIN分析执行计划,再决定使用哪种方式。
2025-09-16 09:00:07
485
原创 exists和in的区别及适用场景
优先用EXISTS的情况子查询结果集大,或子查询涉及大表。需要通过关联字段(如)与主查询关联。子查询可能包含NULL值。优先用IN的情况子查询结果集小(如固定值列表或小表查询)。子查询无需与主查询关联(如独立的固定条件)。特殊说明现代数据库(如 PostgreSQL 12+、MySQL 8.0+)的优化器会自动转换IN和EXISTS为高效执行计划,部分场景下两者性能差异很小。实际开发中,建议通过EXPLAIN分析执行计划,再决定使用哪种方式。
2025-09-15 18:11:54
419
原创 gaussdb数据库学习
在中,模式管理权限、避免命名冲突、提高开发效率。支持数据隔离,特别是在多租户环境中,确保不同用户或功能模块之间的数据独立性。通过使用模式,用户可以更好地管理和维护大型数据库,特别是在复杂的应用场景中。简单的函数创建在存储过程是封装 SQL 语句的对象,可以提高代码复用性。存储过程使用语句创建,并可以包含输入、输出参数。存储过程支持常见的控制结构,如条件判断、循环和异常处理。存储过程的调用使用CALL语句。存储过程没有返回值,但可以通过输出参数返回结果。
2025-08-22 11:16:32
3061
原创 git可视化操作命令解释
显示与工作区差异,查看当前分支与本地工作区代码变动区别(图中部分显示不全,完整应为 “Show Diff with Worktree” ,即展示与工作树的差异 )。:删除,可删除对应分支(一般需满足分支可删除条件,如未被引用等 )。这些操作用于团队协作开发中,对代码分支进行管理、合并、更新等,保障代码版本控制有序。、里程碑等),用它可快速切换到对应标签的代码状态,便于查看历史版本代码、复现特定版本 bug 等。:检出,用于切换分支等操作,可将工作区切换到指定分支代码状态。
2025-08-19 17:04:46
1095
原创 gitLab的ssh连接
先查找之前是否生成过公钥如果你看到一个字符串开始 ssh-rsa 你已经有一个 SSH 密钥对。私有的就是去掉后面的.pub。
2025-08-19 16:53:34
854
原创 java中的请求和响应
在编程中,尤其是涉及到网络编程时,请求(Request)和响应(Response)通常会用不同的类来表示。具体使用哪些类取决于你使用的编程语言和框架。
2025-08-14 17:20:50
395
原创 电脑相关问题解决
打开浏览器,地址栏输入edge://flags/,看一下Choose ANGLE graphics backend是不是D3D11,如果不是就改成D3D11,可能看不见选项,盲选,紧接着重启就好了。微软浏览器(Microsoft Edge)更新最新版之后就打不开了,之后找解决方式在B站的评论区找到了解决方式,所以记录下来.
2025-08-14 14:10:43
328
原创 could not determine data type of parameter $1
直接判断数据是否为空,但是数据无法识别类型进行判断。解析:第一个参数找不到类型错误。
2025-08-07 11:10:59
483
原创 在无法查看已保存的密码的浏览器中查看已经保存的密码
4.然后把密码的类型从 type=‘password’ -> type=‘text’,这样密码就显示出来了.5.之后不用管他,刷新之后会自己加载回原来的模样的.3.然后点击检查元素的图标,再点击到密码框上。1.先把账号密码输入到如输入框中。2.然后点击F12进入开发者模式。
2025-07-25 09:50:48
429
原创 缺陷类型说明以及部分修复方式
问题:数据被攻击者放到了数据库中,导致用户请求之后返回的页面标签会展示用户前端,qq好像就经历过这种情况.解决:未解决问题:没有存在数据库中,但是用户请求之后还是 返回给用户解决:未解决问题:应用程序允许未验证的用户输入控制重定向中的URL,攻击通过构建URL,使用户重定向到 任意URL,利用这个漏洞可以诱使用户访问某个页面,挂马、密码记录、下载任意文件 等,常被用来钓鱼。解决:未解决问题:应用程序对用户可控制的输入未经合理校验,就传送给一个文件API。攻击者可能会使用 一些特殊的字符(如..和。
2025-06-26 18:55:27
408
原创 sublime配置,设置中文和不检测更新
点击tools,选择command palette(命令面板), 或使用快捷键ctrl+shift+p打开命令面板搜索install,点击insatll package controller(我这里已经安装过了)安装插件管理器, 然后等待出现提示,点击确认。之后再次使用快捷键ctrl+shift+p打开命令面板或点击tools,选择command palette(命令面板),之后点击package controller:install package然后进入加载插件列表。
2025-06-26 13:55:25
572
原创 linux基础操作命令
在 Ubuntu/Debian 等系统中,普通用户默认没有修改系统配置(如 IP、用户、文件权限等)的权限,必须通过。命令的使用取决于当前用户的权限。以下是关于是否必须使用。获取临时管理员权限。
2025-06-26 10:05:10
747
原创 通过idea使用git克隆远程仓库代码到本地
2.url中填入git地址, directory中是你要将代码克隆到的地址。4.下面再说一点git管理代码中遇到的一点问题.3.以gitee为例,这个就是克隆的地址。
2025-06-25 13:49:54
415
原创 idea常用设置
r设置为让文件保存时使用 \n作为行结束符,确保与 Unix/macOS 系统的兼容性,尤其在跨平台开发或版本控制时,这样的设置可以减少换行符导致的问题。\r\n\r\n。
2025-06-24 18:51:02
1857
原创 idea中解决i18n下配置文件乱码问题解决
2.解决:File→ Settings→ Editor→ File Encodings,选择 UTF-8。1.问题:在启动一个项目后发现i18n下的配置文件是乱码。3.apply之后就解决了这个问题.
2025-06-17 18:59:45
852
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅