- 博客(11)
- 收藏
- 关注
原创 JUC并发编程底层原理
ReentrantLock重写了aqs独占锁的加锁解锁方法,采用cas的方式获取锁,同时支持可重入锁;state等于0代表无锁,state大于0代表有锁, state的次数代表重入的次数;公平锁就是只取等待队列的头部线程去获取锁(或者队列没有线程),非公平锁,会进行两次cas去获取锁;第二次获取失败,add到等待队列;解锁就是把state设置为无锁,把当前获取锁的标记设置为null。
2023-09-27 16:24:33 339
原创 深入理解jvm
在样gc之前,会判断年轻代所有的对象大小是否大于老年代剩余空间,同时没有开启担保配置,那么会直接负gc,如果开启了担保配置,那么还会判断判断老年代剩余空间是否小于年轻代每次样gc后放入老年代对象的平均大小,如果小于会直接发生负gc;当eden区再次被放满,再次发生养gc,把eden区和survivor1区的垃圾对象回收,剩下的对象放在survivor2区,对象分代年龄达到一次次数,会被放入老年代;初始移动:把会gcroot 直接引用的对象 且标记的对象,先用标记复制法移动,这个过程会stw。
2024-08-29 17:41:52 799
原创 一个配置化的数据迁移工具 :小羽数据迁移
小羽数据迁移是一款,全后台配置的数据迁移工具,扩展性高,后续可支持多种数据库;字段映射条件查询等简单操作支持一键配置,其他复杂的逻辑处理,可下载生成后的代码自行扩展。配置数据源=》配置数据迁移=》表映射字段映射=》生成代码=》运行代码(下载代码 结束)=》查看运行日志=》结束。配置数据源(目前只能mysql,后续增加sqlserver Oracle等数据库)山高凤必至,花香蝶自来,愿每个码农都能一览众山小。字段映射-设置查询条件-关联条件。修改日期:2023-08-08。配置数据迁移(支持多数据源)
2023-08-09 15:14:52 291
原创 java随机的点名
简单的点名程序刚刚入职有点无聊,就随性写了一个,目前测试无bug,有兴趣的同学可以拿去测试,测试数据比较少。话不多说上代码 public static void main(String[] args) { boolean over = false; // 下标,记录第几轮抽取 int index = 1; // 已经抽到过的学生的下标,会保存在set集合 Set set = new HashSet(); // 所有学生
2022-03-31 18:11:19 1131
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人