- 博客(10)
- 收藏
- 关注
原创 Java泛型擦除导致的类型转换异常:一次老代码二开的教训
这个案例提醒我们,即使代码在编译时没有问题,运行时仍可能出现意外的类型转换异常。充分理解Java泛型机制及其局限性保持接口与实现的高度一致编写全面的测试用例对老代码进行二开时要特别小心,因为可能隐藏着这类"定时炸弹"
2025-09-19 09:28:43
639
原创 实现单点登录(SSO)(前端)
本文详细介绍了单点登录(SSO)的前端实现方案,包括基于Cookie和基于Token(JWT)的两种主要方式。SSO系统由SSO服务器、客户端应用和用户浏览器三部分组成。基于Cookie方案通过跨域Cookie实现会话共享,而Token方案则利用JWT进行认证。文章提供了完整的React组件代码示例,涵盖登录状态检查、登录重定向、会话验证、Token自动刷新等核心功能。同时介绍了处理跨域问题的解决方案,如iframe通信和JSONP技术。最后总结了SSO的完整流程,包括用户访问、登录验证、会话维护和单点登出
2025-09-15 11:13:58
1030
原创 java解析背包问题,简单易懂
dp[i - 1][w - (int) weights[i - 1]] + values[i - 1] // 装。关键判断:如果当前物品比剩余容量轻(weights[i] <= w),就看看装它会不会更划算。// 能装下时:比较"装"和"不装"哪个更划算。dp[i - 1][w], // 不装。时间管理:把"重量"换成"小时","价值"换成"任务收益",帮你高效安排周末。dp[i][w]的意思:用前i个物品、限重w时能获得的最大价值。
2025-09-15 10:40:18
1162
原创 Java中synchronized锁升级实现原理深度解析
理解锁升级过程有助于优化同步代码的性能避免在热点代码路径上使用synchronized对于高竞争场景,考虑使用ReentrantLock等更灵活的同步机制通过JVM参数(-XX:+UseBiasedLocking)可调整偏向锁行为#Java #并发编程 #synchronized #锁升级 #JVM #CAS #MarkWord #Monitor #自旋锁。
2025-09-12 17:40:58
588
原创 MySQL聚簇索引与普通索引的区别
聚簇索引与普通索引核心区别在于存储结构:聚簇索引的叶子节点直接存储完整数据行,物理有序,主键查询高效但维护成本高;普通索引只存键值和主键,需回表查询,适合非主键列检索。实践建议合理设计主键、为高频查询列建索引,并避免过度索引。InnoDB中主键即聚簇索引,MyISAM则不支持该特性。
2025-09-12 17:15:57
712
原创 informix如何用sql查询索引名称或者查询索引归属于哪张表
若要通过sql查询informix数据库某张表对应的索引名称,或者通过索引名称反查归属表,可参考下面的sql:
2025-05-12 15:56:00
209
原创 kettle指定步骤的报错信息输出到日志文件:“定义错误处理“
在使用Kettle进行数据对接时,常因库表结构或业务逻辑差异导致报错,且日志中难以定位具体错误数据,影响数据拉取流程。为解决此问题,可通过定义错误处理步骤,将错误数据输出至指定文件,便于排查且不中断数据拉取。具体操作包括:1.为特定步骤定义错误处理;2.选择错误处理输出方式,如文件输出,以便集中查看和处理错误数据。这种方法提高了数据处理的效率和准确性。
2025-05-12 15:52:59
668
原创 kettle关于“插入/更新”步骤的一个注意点
原来是因为,a表有数据,b表没有数据,这条数据按理就是insert的逻辑,我又没有指定policy_no,导致主键插入空值报错,所以,兄弟们,”更新字段“中千万要加上主键字段啊!我在使用kettle抽取a表数据到b表时需要用到“插入/更新”步骤;kettle报错:a表主键值为空,经排查没有这种数据。
2025-05-12 15:01:22
369
原创 Informix数据库查询表的锁级别
在informix数据库中查看表的所级别:select tabname,locklevel,tabid from systables where tabid > 99可以在系统表中查看到所有用户表的锁级别P为页锁,R为行锁例如我要查询a表的锁级别,sql语句可以写成:select tabname,locklevel from systables where tabname = 'a';查询结果P为页锁,R为行锁...
2021-12-20 13:35:35
1853
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅