propagation 事务传播
REQUIRED :如果当前存在事务,则加入该事务;如果当前没有事务,则创建一个新的事务
SUPPORTS :如果当前存在事务,则加入该事务;如果当前没有事务,则以非事务的方式继续运行
MANDATORY :如果当前存在事务,则加入该事务;如果当前没有事务,则抛出异常
REQUIRES_NEW :创建一个新的事务,如果当前存在事务,则把当前事务挂起
NOT_SUPPORTED: 以非事务方式运行,如果当前存在事务,则把当前事务挂起
NEVER : 以非事务方式运行,如果当前存在事务,则抛出异常
nested :如果当前存在事务,则创建一个事务作为当前事务的嵌套事务来运行;如果当前没有事务,则该取值等价于 TransactionDefinition.PROPAGATION_REQUIRED
Participating 专业 参与 [经济学];介入 [文学]
transaction 专业 交易 [经济学];事务 [计算机科学技术];交往 [法学]
coordinator 专业 协调器 [计算机科学技术];协调器 [电子、通信与自动控制技术];协调者 [管理学]
prepare v. 使做好准备,把……预备好
commit 专业 犯罪 [法学];提交 [计算机科学技术]
phase v. 分阶段进行;(物理)使相位同步,使定相
arithmeticexception 算术异常
CollectionUtils springframework
union 并集
intersection 交集
disjunction 补集
subtract 差集
Executor 执行机构 [计算机科学技术];
completion 网络 完成;完工;竣工
newScheduledThreadPool
Caller 打电话者
Policy专业 施政 [历史学];规则 [计算机科学技术];方针 [文学]
maximum adj. 最大限度的;(数量)极大的,极多的
ArrayBlockingQueue
切入点表达式
2.1 bean(\"对象的Id\")
2.2 within(\"包名.类名\")
2.3 execution(返回值类型 包名.类名.方法名(参数列表))
2.4 @annotation(注解的路径)
1.
@Pointcut(“bean(userServiceImpl)”) 只匹配ID为userServiceImpl的对象。
2.
@Pointcut(“within(com.jt.demo2.service.*)”) 匹配xx.xx.service下的所有对象。
3.
@Pointcut("execution(* com.jt.demo2.service..*.*(..))")
拦截返回值类型任意 xx.xx.service包下所有子孙包的所有类的任意方法
@Pointcut("execution(* com.jt.demo2.service..*.add*(..))")
拦截返回值类型任意 xx.xx.service包下所有子孙包的所有类.以add开头的方法
4.
@Pointcut("@annotation(com.jt.demo2.anno.CGB2110)")
durable 持久化
deliveryMode=2 配送模式
pattern 专业 模式 [经济学];模式 [计算机科学技术];问题 [法学]
transient 专业 暂态 [电子、通信与自动控制技术];瞬态 [能源科学技术];短暂性 [医药科学]
present 专业 现状 [经济学];现状 [法学];呈现 [文学]
Garbage Collection 垃圾回收器
NewRatio 设置新生代 养老代的比例
promotion 晋升
tenured 养老代
thread local allocation buffer
堆空间参数
-XX:PrintFlagsInitial :查看所有参数的默认初始化值
-XX:PrintFlagsFinal : 查看所有的参数的最终值(可能会存在修改,不在是初始化)
查询某个参数的最终值:
jps 查看当前运行中的进程
jinfo -flag SurvivorRatio 进程id
-Xms: 初始堆空间大小(默认值为物理内存的1/64)
-Xmx: 最大堆空间内存(默认为物理内存的1/4)
-Xmn: 设置新生代的大小(初始值及最大值)
-XX:NewRatio 配置新生代和老年代的占比
-XX:SurvivorRatio 设置新生代中Eden s0 s1 的比例,默认8:1:1
-XX:MaxTenuringThreshold 设置新生代垃圾的最大age
-XX:+PrintGCDetails 输出详细的GC处理日志
-XX:HandlePromotionFailure 是否设置空间分配担保 JDK7之后不在影响,相当于true
-XX:PrintCommandLineFlags
intern()
soft reference 软引用
weak reference 弱引用
phantom reference 虚引用
垃圾回收器
serial:串行回收
parNew:并行回收
Paralle : 吞吐量高
CMS: concurrent Mark sweep并分 低延迟
G1回收器:并发 区域化分代式
查询jvm统计信息
jstat -<option> 【-t】【 -h】 <vmid> 【<interval>【<count>】】
truncate table
SELECT * FROM user WHERE birthday >= DATE_ADD
BlockingQueue
1.ArrayBlockingQueue:一个由数组结构组成的有界阻塞队列(数组结构可配合指针实现一个环形队列)。2.LinkedBlockingQueue: 一个由链表结构组成的有界阻塞队列,在未指明容量时,容量默认为 Integer.MAX_VALUE。3.PriorityBlockingQueue: 一个支持优先级排序的无界阻塞队列,对元素没有要求,可以实现 Comparable 接口也可以提供 Comparator 来对队列中的元素进行比较。跟时间没有任何关系,仅仅是按照优先级取任务。
4.DelayQueue:类似于PriorityBlockingQueue,是二叉堆实现的无界优先级阻塞队列。要求元素都实现 Delayed 接口,通过执行时延从队列中提取任务,时间没到任务取不出来。5.SynchronousQueue: 一个不存储元素的阻塞队列,消费者线程调用 take() 方法的时候就会发生阻塞,直到有一个生产者线程生产了一个元素,消费者线程就可以拿到这个元素并返回;生产者线程调用 put() 方法的时候也会发生阻塞,直到有一个消费者线程消费了一个元素,生产者才会返回。
6.LinkedBlockingDeque: 使用双向队列实现的有界双端阻塞队列。双端意味着可以像普通队列一样 FIFO(先进先出),也可以像栈一样 FILO(先进后出)
7.LinkedTransferQueue: 它是ConcurrentLinkedQueue、LinkedBlockingQueue 和 SynchronousQueue 的结合体,但是把它用在 ThreadPoolExecutor 中,和 LinkedBlockingQueue 行为一致,但是是无界的阻塞队列。
注意有界队列和无界队列的区别:如果使用有界队列,当队列饱和时并超过最大线程数时就会执行拒绝策略;而如果使用无界队列,因为任务队列永远都可以添加任务,所以设置 maximumPoolSize 没有任何意义。
noRollbackFor
ArithmeticException