java
文章平均质量分 76
chen长记
这个作者很懒,什么都没留下…
展开
-
PowerMockito 简介
powerMockito单元测试准备1 在需要执行单测的类上注解@RunWith(PowerMockRunner.class) 2 对于需要mock私有方法的需要注解@PrepareForTest(FooServiceImpl.class)私有方法mockcom.mock.test.service.impl.FooServiceImplTest.private_method()web controller mockcom.mock.test.controllerInjectMocks原创 2021-11-30 15:00:09 · 5155 阅读 · 0 评论 -
多线程一撸到底
多线程一撸到底偏向锁、自循锁、轻量级锁、重量级锁volatile、synchronized乐观锁、悲观锁Lock、AQSConcurrentHashMap偏向锁、自循锁、轻量级锁、重量级锁偏向锁:“偏向”的意思是,偏向锁假定将来只有第一个申请锁的线程会使用锁(不会有任何线程再来申请锁),因此,只需要在Mark Word中CAS记录owner(本质上也是更新,但初始值为空),如果记录成功,则偏向锁获取成功,记录锁状态为偏向锁,以后当前线程等于owner就可以零成本的直接获得锁;否则,说明有其他线程竞争,膨原创 2021-11-15 14:51:34 · 120 阅读 · 0 评论 -
千万级别数据迁移从耗时3天优化到半个个小时
项目背景:公司对现有系统做重构,新系统上线前需要将老系统的全量数据迁移到新的系统,其中有10几张表的数据有1千多万的数据量需要全量迁移过来,但是新老系统的表结构不是一样的,所以我们需要将老系统的数据全部转化为新系统的数据结构过程: 项目开始时是从简单的版本开始做,并没有考虑速度问题,按照简单的单线程开发,数据分页读取然后做数据转化后通过mybatis批量写入数据库。第一版只是完成业务逻...原创 2019-12-11 22:15:02 · 4451 阅读 · 2 评论 -
java POI操作excel
创建excel工作薄方法HSSFWorkbook workbook = new HSSFWorkbook();创建sheetHSSFSheet sheet = workbook.createSheet();给sheet设置名称,这里需要注意的是中文需要转码。第一个参数是给第几个sheet设置,第二个是名称,第三个是编码。sheet的起始位置跟我们java中list是一样的,都是 从0开原创 2016-03-18 14:23:56 · 354 阅读 · 0 评论 -
Lock源码解析
ReentrantLock 锁分为公平锁和非公平锁,公平锁是指线程在获取锁的时候是暗战线程请求获取的顺序来发放锁,先申请的先获取,后申请的后获取,跟FIFO队列的原理一直。非公平锁是指在获取锁的时候是随机的,谁抢到就发给谁。公平锁获取锁方式protected final boolean tryAcquire(int acquires) { final Thre原创 2017-12-10 22:12:53 · 360 阅读 · 0 评论 -
linux运行jar文件Invalid or corrupt jarfile错误
今天在项目中遇到一个很坑爹的问题,用eclipse导出来的jar文件,在window系统下可以正常使用,但是讲jar传到linux环境就不能正常使用了。总是提示Invalid or corrupt jarfile。后来上网查了下,网上都是说打包的时候文件清单没有指定运行主类,打开jar文件查看里面的文件清单是正常的。后来找同事发现一个坑爹的问题就是文件上传的时候内容丢了。为什么会丢失呢?发现sec原创 2018-01-31 14:18:40 · 34730 阅读 · 1 评论