笔记
Giaciayan
这个作者很懒,什么都没留下…
展开
-
为啥方法区的垃圾回收很难
回收方法区主要回收的是不使用的常量以及类型。如果要回收不使用的类型首先要满足这个类以及这个类的派生类的实例在堆中没有然后加载这个类的类加载器已经被回收然后这个类的class没有被任何地方引用,就是无法在任何地方使用这个类的class...原创 2021-12-23 15:27:13 · 81 阅读 · 0 评论 -
2021-02-01
关于异步处理中 子线程异常 线程不回滚的原因如下:原因1:@Transactional只能控制单线程事务,所以子线程中的方法B不受A方法上的事务控制原因2:@Transactional只能在public声明的方法上生效(那么把上边例子中的private改成public就可以了吗?并不能,因为原因3)原因3:@Transactional是通过proxy实现的,所以B方法要放在新的类中,不能放在A方法所在的类中...原创 2021-02-01 10:06:26 · 100 阅读 · 0 评论 -
2020-12-11
给varchar数据库类型做递增时 用触发器 配合lpad函数 很好用原创 2020-12-11 11:11:25 · 63 阅读 · 0 评论 -
2020-09-18
业务中需要定时同步上游的数据 最开始用truncate加insert发现 truncate不会回滚 后面换成delete from 后 可以进行事物 切事物默认只回滚runtimeexception 和error原创 2020-09-18 16:43:08 · 56 阅读 · 0 评论 -
2020-09-16
原子类的aba问题原创 2020-09-16 16:40:45 · 48 阅读 · 0 评论 -
2020-08-04
cbo 执行代价sql优化器 1 收集统计信息原创 2020-08-04 09:49:24 · 83 阅读 · 0 评论 -
2020-07-31
双检索的第一个判断对象是否是null 是为了防止已经创建对象了 还进去同步代码块 第二个同步里面的判断null 是为了 多线程抢占时 避免创建重复对象 双检索加volatile 是为了 防止 指令重排 造成的 对象不完整。...原创 2020-07-31 16:40:06 · 83 阅读 · 0 评论 -
2020-07-30
enum 做单例 1 静态初始化时 clinit 保证了 类加载时的并发安全性 2 constructor反射实例时 newinstence 如果发现是enum 会抛出异常 唯一的劣势是 不能继承父类 因为enum是final类型的原创 2020-07-30 19:52:23 · 76 阅读 · 0 评论 -
2020-07-30
如果在终端中执行java -jar xxx.jar&命令,当终端关闭时,xxx.jar也会同时结束运行,但是如果执行nohup java -jar xxx.jar&命令,则程序会在后台一直运行,值得注意的是,此时程序控制台输出会被转移到nohup.out文件中...原创 2020-07-30 14:35:08 · 70 阅读 · 0 评论 -
2020-07-30
on where在 innerjoin的时候 没啥区别 但是在left right 有区别 因为比如left join on后面的条件只对右边的表有效 所以 如果要筛选左表 要把条件放在where中原创 2020-07-30 11:33:07 · 74 阅读 · 0 评论 -
2020-07-23
stream的foreach 无法向外抛出异常 你如果写了throw 必须捕获。。。原创 2020-07-23 20:13:32 · 60 阅读 · 0 评论 -
2020-07-16
数据库优化的漏斗法则基本可分为5个层次:减少数据访问(减少磁盘访问)索引,减少全表扫描返回更少数据(减少网络传输或磁盘访问)根据实际业务需求返回所需数据减少交互次数(减少网络传输)缓存存储过程批量查询减少服务器CPU开销(减少CPU几内存开销)批量处理在客户端处理大量负责运算利用更多资源(增加资源)硬件资源...原创 2020-07-16 11:26:51 · 245 阅读 · 0 评论 -
2020-07-14
逻辑删除 要建立唯一索引时 可以让deleted这个字段 的删除 不只0 可以递减到-1 -2以此类推来实现原创 2020-07-14 17:04:02 · 59 阅读 · 0 评论 -
2020-07-14
管辖的小兄弟今天有个奇怪的问题 就是 一个字段加了索引 sql耗时70s explain看后发现 一切正常 我跟着看了下 发现加索引的那个字段有null 去掉改索引后 只有30毫秒 索引不能乱加 一定要每个子查询 测试后 如果速度不满意 才去加上。...原创 2020-07-14 10:26:47 · 67 阅读 · 0 评论 -
2020-07-10
set去重自定义对象时 一定要 覆盖hashcode 和 eqauls方法 因为set底层是hashmap 不覆盖的话 用地址判断对象是否相等原创 2020-07-10 10:49:53 · 92 阅读 · 0 评论 -
2020-07-09
业务中的 list想存入到数据库varchar时 可以用concat_ws(",",<foreach<>)来拼接成逗号分割的字符串存入原创 2020-07-09 10:44:24 · 116 阅读 · 0 评论 -
2020-07-09
初次使用easyexcel时 发现 无法直接将实体类中的timestamp类型的数据 转换为string 导致 导出excel失败 后面我写了一个转换类 实现Conveter接口 来得到导出实现。原创 2020-07-09 10:33:21 · 458 阅读 · 0 评论 -
2020-07-08
@WebFilter里面配置的 urlPatterns想要生效的话 filterName必须是自定义的那个filter类的首字母小写 切要在启动类上加@ServletComponentScan注解 使其生效。原创 2020-07-08 17:55:13 · 114 阅读 · 0 评论 -
2020-07-07
varchar想映射成list时 可以写一个typehandler 继承basetypehandler 实现四个抽象方法 主要是把str用分隔符 分割成对应的list集合 来做原创 2020-07-07 19:52:09 · 101 阅读 · 0 评论 -
2020-07-07
mybatis resultmap标签 的时候 里面的 id result collection标签 不能间隔开用 必须按顺序写原创 2020-07-07 16:45:32 · 81 阅读 · 0 评论 -
2020-07-07
业务中 有些同学遇到了 数据库两个列 不能完全一样的场景 这个时候可以创建unique的组合索引来达到目的!原创 2020-07-07 15:35:16 · 123 阅读 · 0 评论 -
2020-06-28
mybatis 映射内部类对象时 外部类和内部类之间用$连接 而不是用.原创 2020-06-28 11:29:13 · 77 阅读 · 0 评论 -
2020-06-19
用filter做权限检验时 dofilter方法 直接response.senderror时 会引起跨域 此时加入 response响应头 可以解决 具体有 5个header需要设置 methods origin max age heads credentials 必须为true原创 2020-06-19 10:56:21 · 201 阅读 · 0 评论 -
2020-06-15
mysql 5.7以后 会默认做full group by 检测 可以在不是group by的列 加入 any_view()把列名括起来 解决原创 2020-06-15 11:34:50 · 142 阅读 · 0 评论