02 2023 档案
摘要:https://zhuanlan.zhihu.com/p/473639031
阅读全文
摘要:RocketMQ 如何保证消息不丢失 Producer 提供SYNC的发送消息方式,等待broker处理结果。 发送消息如果失败或者超时,则重新发送。 // 同步发送消息,如果5秒内没有发送成功,则重试3次 DefaultMQProducer producer = new DefaultMQProd
阅读全文
摘要:Linux 查看cpu情况 举例:进程id 12886 线程id 2609 1.找出哪个进程cpu高(top) 2.该进程中的哪个线程cpu高(top -Hp) top -Hp 12886 3.转换成16进制 printf "%x" pid (假设结果是'b26') printf "%x" pid
阅读全文
摘要:https://blog.csdn.net/javalingyu/article/details/124800644
阅读全文
摘要:引用: https://www.cnblogs.com/ciel717/p/16180083.html 官方手册:https://help.aliyun.com/document_detail/442626.html?spm=a2c4g.11186623.0.0.19715114QLP3uo
阅读全文
摘要:引用: https://www.cnblogs.com/ciel717/p/16190562.html
阅读全文
摘要:GC的基础知识 1.什么是垃圾 C语言申请内存:malloc free C++: new delete c/C++ 手动回收内存 Java: new ? 自动内存回收,编程上简单,系统不容易出错,手动释放内存,容易出两种类型的问题: 忘记回收 多次回收 没有任何引用指向的一个对象或者多个对象(循环引
阅读全文
摘要:Runtime Data Area PC 程序计数器 存放指令位置 虚拟机的运行,类似于这样的循环: while( not end ) { 取PC中的位置,找到对应位置的指令; 执行该指令; PC ++; } JVM Stack Frame - 每个方法对应一个栈帧 Local Vari
阅读全文
摘要:请解释下对象的创建过程? class loading class linking (verification ,prepare ,resolution) class initializing 申请对象内存 给成员变量赋默认值 调用构造方法 init 成员变量顺序赋初始值 执行构造方法语句 ##对象头
阅读全文
摘要:JMM 硬件层数据一致性 协议很多 intel 用MESI https://www.cnblogs.com/z00377750/p/9180644.html 现代CPU的数据一致性实现 = 缓存锁(MESI ...) + 总线锁 读取缓存以cache line为基本单位,目前64bytes 位于同一
阅读全文
摘要:@Configuration@EnableBatchProcessing(modular = true)public class VolumeFulltextConfiguration { @Bean public DelegatingSecurityContextAsyncTaskExecutor
阅读全文
摘要:类 (加载->初始化) loading 双亲委派 出于安全 父加载器:不是类加载器的加载器 双亲委派是一个孩子向父亲方向,然后父亲向孩子方向的双亲委派 LazyLoading五种情况 ClassLoader的源码 findInCache -> parent.loadClass -> findClas
阅读全文
摘要:从编译到执行 什么是JVM 常见的JVM实现 JDK JRE JVM ClassFileFormat 查看16进制格式的classFile Idea插件-BinEd 观察ByteCode的方法 javap JBE -可以直接修改 JClassLib - IDEA插件之一 classfile构成 fi
阅读全文
摘要:Disruptor 介绍 主页:http://lmax-exchange.github.io/disruptor/ 源码:https://github.com/LMAX-Exchange/disruptor GettingStarted: https://github.com/LMAX-Exchan
阅读全文
摘要:JMH Java准测试工具套件 什么是JMH 官网 http://openjdk.java.net/projects/code-tools/jmh/ 创建JMH测试 创建Maven项目,添加依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmln
阅读全文
摘要:ThreadPoolExecutor源码解析 1、常用变量的解释 // 1. `ctl`,可以看做一个int类型的数字,高3位表示线程池状态,低29位表示worker数量 private final AtomicInteger ctl = new AtomicInteger(ctlOf(RUNNIN
阅读全文
摘要:1.禁用插件 Package CheckerPackage SearchKtor 2.关闭JIT 3.修改xms
阅读全文
摘要:##ThreadPoolExecutor (-> Executor,ExecutorService) 线程集合,任务集合 线程池的七个参数 ThreadPoolExecutor tpe = new ThreadPoolExecutor(2, 4, 60, TimeUnit.SECONDS, new
阅读全文
摘要:工作代码如下 fun List<MeasureLedgerModel>.sumUp(): List<MeasureLedgerModel> { val pMap = this.filter { it.parentId != null }.groupBy { it.parentId!! } //获取顶
阅读全文
摘要:InnoDB 引擎通过什么技术来保证事务的四个特性的呢? 持久性是通过 redo log (重做日志)来保证的; 原子性是通过 undo log(回滚日志) 来保证的; 隔离性是通过 MVCC(多版本并发控制) 或锁机制来保证的; 一致性则是通过持久性+原子性+隔离性来保证
阅读全文
摘要:查看mysql数据库存放位置 show variables like 'datadir'; 可以看到,共有三个文件,这三个文件分别代表着: db.opt,用来存储当前数据库的默认字符集和字符校验规则。 t_order.frm ,t_order 的表结构会保存在这个文件。在 MySQL 中建立一张表都
阅读全文
摘要:> Collencttion分三大类List,Set,Queue(实现了很多多线程,任务装载,为线程池高并发做准备) Vector,HashTable 自带锁,已废止,初始容器 CopyOnWirteList 读特别多,写比较少,读不加锁,写加锁 Queue (添加了很多对线程友好的api) off
阅读全文
摘要:state作用 用volatile修饰的int类型,看子类怎么实现,ReentrantLock里代表重入次数 VarHandle 1.普通属性的原子操作 2.比反射块,直接操纵二进制码 ThreadLocal的set,get方法 每个线程独有一份。 ThreadLocalMap getMap(Thr
阅读全文