美文网首页
常见面试题

常见面试题

作者: 忘记_3a6a | 来源:发表于2020-03-12 10:33 被阅读0次

sql 优化

  • 对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。
  • where 子句中避免使用
    • !=或<>操作符
    • 对字段进行 null 值判断
    • or 来连接条件,用union all ,union代替
    • in 和 not in 也要慎用,能用 between ,exists 就不要用 in,
    • 对字段进行函数操作
    • like查询,不能以通配符开头
    • “=”左边进行函数、算术运算或其他表达式运算
  • 用具体的字段列表代替“*”
  • 明知道只有一条记录返回,建议加上limit 1

spring aop

  • Spring AOP(Aspect Oriented Programming,面向切面编程)是OOPs(面向对象编程)的补充。在面向对象编程中,关键的单元是对象,AOP的关键单元是切面,或者说关注点。
  • 我们的应用中,经常需要做一些事情,但是这些事情与核心业务无关,比如,要记录所有 update 方法的执行时间时间,操作人等等信息,记录到日志, 通过 Spring 的 AOP 技术,就可以在不修改 update 的代码的情况下完成该需
  • 例如事务管理、权限、日志、安全等。

Spring AOP 实现原理

Spring AOP 中的动态代理主要有两种方式,JDK 动态代理 和 CGLIB 动态代理。JDK 动态代理通过反射来接收被代理的类,并且要求被代理的类必须实现一个接口。JDK 动态代理的核心是 InvocationHandler 接口和 Proxy 类。

如果目标类没有实现接口,那么 Spring AOP 会选择使用 CGLIB 来动态代理目标类。CGLIB(Code Generation Library),是一个代码生成的类库,可以在运行时动态的生成某个类的子类,注意,CGLIB 是通过继承的方式做的动态代理,因此如果某个类被标记为 final,那么它是无法使用 CGLIB 做动态代理的

AOP有哪些可用的实现?

基于Java的主要AOP实现有:

AspectJ
Spring AOP
JBoss AOP

相关文章

网友评论

      本文标题:常见面试题

      本文链接:https://www.haomeiwen.com/subject/guaejhtx.html