九又四分之三站台

0%

多数据源

在项目中有时候需要同时连接多个数据库,这些数据库可能是各不相同的,这个时候就要去配置多数据源。

用spring boot 配置jpa的多数据源,首先要在配置文件中添加相关数据库配置

阅读全文 »

类与类加载器

比较两个类是否相等,只有在这两个类是有同一个类加载器加载的前提下才有意义,否则即便是来自同一个Class文件,被同一个虚拟机加载,只要加载它们的类加载器不同,那这两个类就不相等

双亲委派模型

从JVM角度,类加载器分为两种:一种是启动类加载器(Bootstrap ClassLoader),由C++实现是JVM的一部分,另一种就是其他所有的类加载器,有Java实现独立虚拟机外部

阅读全文 »

什么是事务

简单的说,事务就是一组原子性的SQL操作(insert,update,delete),这一组 SQL 要么全部执行成功,要么全部执行失败。

一般来说,事务是必须满足4个条件(ACID)::原子性(Atomicity,或称不可分割性)、一致性(Consistency)、隔离性(Isolation,又称独立性)、持久性(Durability)。

阅读全文 »

Java虚拟机中类加载的过程分为五步:加载,验证,准备,解析,初始化。

阅读全文 »

Fork/Join框架首先要考虑的是分割任务,当任务计算过大时分割成两个子任务分别计算

阅读全文 »

核心思想:把比key小的数放在左边,比key大的放在右边。

一个数字一个坑,最开始a[i]赋值给key,所以i这个位置就空出来了,从后往前查询查到a[j] < key, 把i这个位置用a[j]填充,这时候j这个位置就空出来了,接着从前往后查询,查到a[i]>key, 这时候就可以把a[i]这个值填充到j这个位置,直到跳出循环。

因为是先从后往前查询并且用了 >= 和 <=, 所以跳出循环后得到i==j并且i位置空出, 这时候就可以把key填入i位置,得到的数组i左边的全是比key小的数,i右边都是比key大的数,这样分割成两组分别排序

阅读全文 »

Java中有各式各样的锁,大致可以分为以下几类

  • 公平锁 / 非公平锁
  • 可重入锁
  • 互斥锁 / 共享锁
  • 乐观锁 / 悲观锁
  • 分段锁
  • 偏向锁 / 轻量级锁 / 重量级锁
  • 自旋锁
阅读全文 »