admin 发布的文章

单个切面:
①Spring4.0
    正常情况:环绕前置=====@Before======目标方法执行=====环绕返回=====环绕最终=====@After=====@AfterReturning
    异常情况:环绕前置=====@Before======目标方法执行=====环绕异常=====环绕最终=====@After=====@AfterThrowing
  ②Spring5.28
    正常情况:环绕前置=====@Before=====目标方法执行=====@AfterReturning=====@After=====环绕返回=====环绕最终
    异常情况:环绕前置=====@Before=====目标方法执行=====@AfterThrowing=====@After=====环绕异常=====环绕最终
多切面
①Spring4.0
    正常情况:切面1环绕前置===切面1@Before===切面2环绕前置===切面2@Before===目标方法执行===切面2环绕返回===切面2环绕最终===切面2@After===切面2@AfterReturning===切面1环绕返回===切面1环绕最终===切面1@After===切面1@AfterThrowing
    异常情况:切面1环绕前置===切面1@Before===切面2环绕前置===切面2@Before===目标方法执行===切面2环绕异常===切面2环绕最终===切面2@After===切面2@AfteThrowing===切面1环绕异常===切面1环绕最终===切面1@After===切面1@AfterThrowing
  ②Spring5.28
    正常情况:切面1环绕前置===切面1@Before===切面2环绕前置===切面2@Before===目标方法执行===切面2@AfterReturning===切面2@After===切面2环绕返回===切面2环绕最终===切面1@AfterReturning===切面1@After===切面1环绕返回===切面1环绕最终
    异常情况:切面1环绕前置===切面1@Before===切面2环绕前置===切面2@Before===目标方法执行===切面2@AfterThrowing===切面2@After===切面2环绕异常===切面2环绕最终===切面1@AfterThrowing===切面1@After===切面1环绕异常===切面1环绕最终

new Object().var 生成对象
Ctrl+Alt+O 优化导入的类和包
Alt+Insert 生成代码(如get,set方法,构造函数等) 或者右键(Generate)
fori/sout/psvm + Tab
CTRL+ALT+T 把选中的代码放在 TRY{} IF{} ELSE{} 里
Ctrl + O 重写方法
Ctrl + I 实现方法
Ctr+shift+U 大小写转化
ALT+回车 导入包,自动修正
ALT+/ 代码提示
CTRL+J 自动代码
Ctrl+Shift+J,整合两行为一行
CTRL+空格 代码提示
CTRL+SHIFT+SPACE 自动补全代码
CTRL+ALT+L 格式化代码
CTRL+ALT+I 自动缩进
CTRL+ALT+O 优化导入的类和包
ALT+INSERT 生成代码(如GET,SET方法,构造函数等)
CTRL+E 最近更改的代码
CTRL+ALT+SPACE 类名或接口名提示
CTRL+P 方法参数提示
CTRL+Q,可以看到当前方法的声明

Shift+F6 重构-重命名 (包、类、方法、变量、甚至注释等)
Ctrl+Alt+V 提取变量

Ctrl+Shift+上下键 上下移动代码
Ctrl+Alt+ left/right 返回至上次浏览的位置
Ctrl+X 删除行
Ctrl+D 复制行
Ctrl+/ 或 Ctrl+Shift+/ 注释(// 或者/.../ )

Ctrl+H 显示类结构图
Ctrl+Q 显示注释文档

死锁是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。
死锁的发生必须满足以下四个条件:

  • 互斥条件:一个资源每次只能被一个进程使用。
  • 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。
  • 不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。
  • 循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。