9.26面试题

一、target,aspect,joinpoint,pointcut,waving,advice,proxy分别指什么?

     target:

       目标,委托人,在aop中,target相当于我门需要被我门增加的方法。

     aspect:

        切面类,被这个注解的类,会成为一个切面类,这个切面类,就是可以进入到被增强的方法当中,如果这个类中的方法参数类型为JoinPoint,说明此方法一般用于前面增强,或者后面增强,若是用的ProceedingJoinPoint,一般为环绕型增加,当调用里面的proceed方法时候就会进入的被增强的方法。

@Component
@Aspect
public class SelectAspect {

    @Around("@annotation(com_qf_2103.Annocation.Select)")
    public void before(ProceedingJoinPoint proceedingJoinPoint) throws Throwable {
         SqlSession sqlSession=null;
         try
         {
             sqlSession = MybatisTools.getSqlsession();
             proceedingJoinPoint.proceed();  // 进入被增强的方法
             sqlSession.commit();
         }catch (Exception e)
         {
             sqlSession.rollback();
             e.printStackTrace();
         }finally {
            sqlSession.close();
         }
    }
}

     joinpoint:

      切入点,也就是调用的proceed方法

   

    pointcut:

       切入面也就是具体需要切入的是哪个类,哪个方法。

 

   

   waving织入:

     

   advice:

   增强,常用的有 before前面增强,after后面增强,around环绕增强,afterrunting返回后加入,有异常不执行,afterThrow有异常才会加入。

二、什么是机器码,什么是字节码

    机器码:

    也叫机器语言指令,是电脑CPU可以直接读取的数据,如果用机器语言编写程序,编程人员要熟记计算机全部指令代码。这对于程序员来说学习成本太大了。

总结:机器码的运行速度最快,电脑的CPU可以直接对他进行读取。

   字节码:

     字节码是一种包含执行程序,由一系列op组成的二进制文件,他是一种中间码,比机器语言更抽象,需要转译后才能成为机器码,我们写一个java源文件,最后会被编译成java.class文件才能被虚拟机运行。

三、什么是asm

     asm是一个管理字节码文件的框架,能够动态的生成类,或者增强已有类的功能,ASM可以直接产生二进制文件,也可以在类被加载入java虚拟机之前动态改变类行为

你可能感兴趣的:(面试,css,html5)