最近在排查一个ORM层相关的生产BUG时,在网上查找资料,看到一些人反馈mybatis 3.3.0之前版本的一个空指针BUG,于是自己看源码研究了一下,还真有这种问题,下面以mybatis 3.1.1版本源码作为说明。 BUG产生的源头在OGNL表达式上,直接根据结论放上自己的一个测试类,断点选择在 ...
分类:
其他好文 时间:
2021-04-15 12:39:39
阅读次数:
0
Pattern和Matcher的介绍: Pattern对象是正则表达式编译后在内存中的表示形式,因此正则表达式宇符串必须先被编译为Pattern对象,然后再用该Pattern对象创建对应的Matcher对象,执行匹配所涉及的状态保留在 Matcher 对象中 多个 Matcher 对象可共享同 Pa ...
分类:
编程语言 时间:
2021-04-15 12:34:06
阅读次数:
0
一、正则表达式对象 obj = compile(pattern,flags = 0) 功能:获得正则表达式对象 参数:pattern:正则表达式 flags:功能标志位,提供更丰富的匹配 返回值:正则表达式对象 obj.findall(string,pos,endpos) 功能:通过正则表达式匹配字 ...
分类:
其他好文 时间:
2021-04-15 12:27:31
阅读次数:
0
属性名表达式 用途:允许表达式作为属性名、方法名,表达式需要写在方括号里 说明: 注意:属性名表达式时一个对象时,会自动将对象转为字符串 例子: let obj = { [propKey]: true, ['a' + 'bc']: 123 }; let obj = { ['h' + 'ello']( ...
分类:
其他好文 时间:
2021-04-15 12:18:28
阅读次数:
0
关于mongodb的高级操作,包括聚合、主从复制、分片、备份与恢复、MR。 一、聚合 aggregate聚合(aggregate)主要用于计算数据,类似sql中的sum()、avg() 语法: db.集合名称.aggregate([{管道:{表达式}}]) 管道:管道在Unix和Linux中一般用于 ...
分类:
数据库 时间:
2021-04-14 12:40:50
阅读次数:
0
大量的等待事件,系统缓慢,从AWR看DBtime已经满负载了,主要等待事件如下 Enq: KO - Fast Object Checkpoint 占比DBTime的45%。通过ASH查询阻塞关系,等待该事件的用户SQL都被796会话阻塞,而该用户是CKPT进程。 SYS@orcl1>select s ...
分类:
其他好文 时间:
2021-04-14 12:38:41
阅读次数:
0
背景 经常做后端服务开发的同学,或多或少都遇到过 CPU 负载特别高的问题。 尤其是在周末或大半夜,突然群里有人反馈线上机器负载特别高,不熟悉定位流程和思路的同学可能登上服务器一通手忙脚乱,定位过程百转千回。 对此,也有不少同学曾经整理过相关流程或方法论,类似把大象放进冰箱要几步 传统的方案一般是4 ...
分类:
其他好文 时间:
2021-04-14 12:37:46
阅读次数:
0
Java8新特性汇总(两小时高效率学习Java8新特性知识) 文档及资料已汇总至gitHub专区: Java8NewProperty 1.Lambda表达式 Java8中引入了一个新的操作符“->”,该操作符称为箭头操作符或Lambda操作符,箭头操作符将Lambda表达式拆分成两部分。 左侧:La ...
分类:
编程语言 时间:
2021-04-14 12:35:34
阅读次数:
0
一、 MongoDB 聚合管道 用途:表关联查询、数据统计。 db.COLLECTION_NAME.aggregate(AGGREGATE_OPERATION) 二、 MongoDB Aggregation 管道操作符与表达式 管道操作符 SQL 和 NOSQL 对比 Description $pr ...
分类:
数据库 时间:
2021-04-14 12:33:34
阅读次数:
0
利用timer_create实现一个C++的计时器。 #实现地址 Eddylib/CPPTimer 实现原理&技术 语言层面 使用类成员可变参数函数指针,以支持各种类型的timer函数,使用值拷贝(引用拷贝会导致lambda表达式绑定的参数出现冲突),建议参数不要为大的类对象。 see CPPTim ...
分类:
编程语言 时间:
2021-04-13 12:26:06
阅读次数:
0