2022-06-20 09:52:21    22    0    0
事务不会回滚的原因 事务的回滚需要由spring代理的类才能回滚,因此如果不是注入进来的类(比如@Autowired或@Service),是不会进行回滚 如果有个A类,其中有a(),b()两个方法,a()方法调用了b()方法,a()方法加了回滚,b()方法出现异常,此时a()方法不会回滚。
java    2022-04-12 16:05:21    53    0    0
SELECT a.object_id, a.session_id, b.object_nameFROM v$locked_object a, dba_objects bWHERE a.object_id = b.object_idselect t2.username,t2.sid,t2.serial#,t2.logon_time from v$locked_object t1,v$session t2 where t1.session_id=t2.sid order by t2.logon_time;alter system kill session '596,875'
2022-03-01 14:32:49    71    0    0
## 1. RestfulToolkitX **作用:**     根据接口快速定位代码 **官方介绍:** ![](http://152.136.191.45/api/file/getImage?fileId=621dbee3d4bb4800160000f3) **使用感受:**     这个插件是我从接触IDEA就开始使用的了,但是我只使用了他的一个功能,就是CTRL+\,也是
java POI    2022-01-17 14:17:13    63    0    0
做Excel导出的时候,业务要求至少能导出10W条,复查了之前人写的代码,有很多问题,逐步优化。 ### 1. 导出的Controller里,返回的是一个Result类 返回的是一个Result类,但是response里又set了response.setContentType("application/vnd.ms-excel;charset=UTF-8");这就很矛盾。告诉了要返回一个
java 线程    2021-11-02 09:14:36    106    0    0
死锁 两个或两个以上的线程在执行过程中,因争夺资源而造成的互相等待的现象,无外力作用将互相等待下去 发生必要条件 互斥条件 请求和保持条件 不剥夺条件 环路等待条件 发生死锁代码 package com.csyd.concurrency.example.deadLock;import lombok.extern.slf4j.Slf4j;@Slf4jpublic class DeadLock implements Runnable{ public int flag = 1; private static Object o1 = new Object(),
java 线程    2021-11-01 10:57:17    94    0    0
对比Thread和线程池 new Thread 弊端 每次 new Thread 新建对象,性能差 线程缺乏统一管理,可能无限制的新建线程,相互竞争,有可能占用过多系统资源导致死机或OOM 缺少更多功能,如更多执行、定期执行、线程中断 线程池的好处 重用存在的线程,减少对象创建、消亡的开销,性能佳 可有效控制最大并发线程数,提高系统资源利用率,同时可以避免过多资源竞争,避免阻塞 提供定时执行,定期执行,单线程,并发数控制等功能 线程池-ThreadPoolExecutor(构造) corePoolSize:核心线程数量 maximumPoolSize:线程最大
java 线程    2021-10-25 13:03:00    80    0    0
组件: CountDownLatch 可以阻塞当前线程,同时只能有一个线程操作该计数器 代码用例 package com.csyd.concurrency.example.aqs;import lombok.extern.slf4j.Slf4j;import java.util.concurrent.CountDownLatch;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;@Slf4jpublic class CountDownLatchExamp
java 线程    2021-10-12 17:18:03    146    0    0
发布对象 发布对象:使一个对象能被当前范围之外的代码所使用 对象逸出:一种错误的发布。当一个对象还没有构造完成时,就使它被其他线程所见 安全发布对象 四种方法 在静态初始化函数中初始化一个对象引用 将对象的引用保存到volatile类型域或者AtomicReference对象中 将对象的引用保存到某个正确构造对象的final类型域中 将对象的引用保存到一个由锁保护的域中 单例模式举例 懒汉模式 package com.csyd.concurrency.example.singleton;import com.csyd.concurrency.anno
java 线程    2021-10-12 16:01:21    136    0    0
线程安全 代码所在的进程有多个线程在同时运行,这些线程可能同时在运行同一段代码,如果每次运行结果和单线程运行一致,而且其他变量的值也和预期是一样的,则是线程安全的 线程不安全就是不提供数据访问保护,有可能出现多个线程先后更改数据,造成所得到的数据是脏数据,也可能是计算时出现错误 并发模拟 Postman : Http请求模拟工具 Apache Bench(AB) : Apache附带的工具,测试网站性能 JMeter : Apache组织开发的压力测试工具 代码 : Semaphore、CountDownLatch等 这些模拟工具中,JMeter是最方便实用的,推荐学
java 线程    2021-09-24 18:10:14    149    0    0
cpu的缓存介绍 cpu多级缓存(MESI缓存一致性) cpu频率太快,主存跟不上,就需要缓存处理 M : 修改,被修改过的,与主存不一致,未来需要写回主存 E : 独享,未被修改过,与主存的数据一致,任何时刻cpu读取内存时,允许变成S状态分享,修改时会变成M状态 S : 共享,与主存中一致,当修改后,可以变成I状态无效 I : 失效,有其他cpu修改了该缓存行 cpu多级缓存-乱序优化 cpu为了效率,会将执行顺序打乱,单核cpu无影响,但是多核cpu会出现问题 java内存模型(Java Memory Model,JMM) 规范了ja