2026.3.18
简单介绍jvm
为java语句提供了运行的场地,实现一次编译,到处运行
- 运行时数据区
- 类加载器(启动类、扩展类、应用类)
- 执行引擎(垃圾回收器、编译器、解释器)
Tomcat打破双亲委派
定义了许多类加载器,其中webapp类加载器重写了load方法,规定加载器优先加载自己的类,而不是向上委派
java线程和操作系统线程的区别
- java线程和操作系统在jdk21前都是一一对应的关系,对一个java线程和操作系统线程的联系会通过jvm调用内核函数的方式实现
- java线程更轻量,本质只是os线程的映射
- java线程收到jvm的统一调配,os线程不会受到jvm的影响
聚簇索引和非聚簇索引
用字典举例的话,聚簇索引就是将信息直接写在目录的索引,在目录里找到这个字就可以知道这个字的信息了,一般对应主键索引或唯一索引。非聚簇索引在拿到这个字的页号后,就需要翻开字典再找一次才能拿到信息。
进程线程协程
你需要烧水+切菜
进程就是你先烧水,再去切菜
线程就是你烧水,雇另一个人去切菜
协程就是你在烧水的间隙把菜切了
协程就是线程执行的不同任务,协程之间可以相互切换,切换时会保留现场等待下次被执行
分布式事务及其解决方案
分布式事务是原本一条业务被拆分,需要与多个数据库进行交互,需要开启事务保证这些数据库的一致性
- 2pc:协调者在提交前询问各个执行者,得到所有执行者的确认答复后才提交事务,这期间由于事务开始了,数据一直阻塞
- 3pc:和2pc差不多,多了一个提前询问,提前询问参与者,确保其可用性,后续流程与2pc一致
- ttc:核心思想也是询问,然后确认,但ttc是业务层的冻结,本质不会影响数据库,不会加物理锁
- saga:直接做,做不了全都回滚
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 m1kasaz!
评论






