学习记录五

43 篇文章 0 订阅
23 篇文章 0 订阅

一、力扣打卡

首先看到这个题目的时候,我想大家应该都有一个想法,那就是暴力求解!

但是除了暴力求解,我们还有别的方法:双指针法

 双指针法是怎么进行的?

首先,我们在收尾分别放置一个指针,此时最大容量为min(x,y)∗t=x∗t(t表示距离)

然后求完一个之后,我们就可以将两个指针中小的那个进行移动

为什么是小的那个?

因为你的如果你移动大的那个,就不可能出现比之前的情况大的情况!

所以最后我们可以得到代码如下所示:

public class Solution {
    public int maxArea(int[] height) {
        int l = 0, r = height.length - 1;
        int ans = 0;
        while (l < r) {
            int area = Math.min(height[l], height[r]) * (r - l);
            ans = Math.max(ans, area);
            if (height[l] <= height[r]) {
                ++l;
            }
            else {
                --r;
            }
        }
        return ans;
    }
}

二、Spring的Aop的学习

1. Aop的优势与作用

AOP(面向切面编程)

作用:在程序运行期间,在不修改源码的情况下对方法进行功能增强

优势:减少重复代码,提高开发效率,便于维护

2. AOP的底层实现

AOP的底层是通过Spring提供的动态代理技术实现的。在运行期间,Spring通过动态代理技术动态生成的代理对象,代理对象方法执行的时候进行增强功能的介入,再去调目标对象的方法,从而完成功能的增强。

3. AOP动态代理技术

JDK代理:基于接口的动态代理技术

cglib代理:基于父类的动态代理技术

4. JDK动态代理技术

实现动态代理要解决的两个问题是:

①如何根据被加载到内存中的被代理对象动态的创建代理对象和类

②当通过代理类的对象调用方法的时候如何调用被代理类的同名方法

 5. cglib的动态代理

导入cglib的jar包

6.AOP的相关概念

Taget(目标对象):代理的目标对象

Proxy(代理):一个类被AOP织入增强之后,就产生一个结果代理类

Joinpoint(连接点):所谓的连接点就是指在那些被拦截的点。在spring中,这些点指的是方法,因为spring只支持方法类型的连接点。

Pointcut(切入点):所谓切入点就是指我们要对哪些Joinpoint进行拦截的定义

【连接点就是可以被增强的方法,切入点就是被增强了的方法】

Advice(通知/增强):所谓通知就是指拦截到Joinpoint之后所要做的事情就是通知

Accept(切面):就是切入点和通知的结合

Weaving (织入):指把增强应用到目标对象来创建新的代理对象的过程。spring采用动态代理织入,而AspectJ采用编译器织入和类装载织入

7.AOP开发明确的对象

①需要编写的内容

业务核心代码(目标类的目标方法)

编写切面类,切面类中有通知(增强功能方法)

在配置文件中,配置织入关系,即将哪些通知与哪些连接点进行结合

②AOP技术实现的内容

Spring框架监控切入点方法的执行。一-旦监控到切入点方法被运行, 使用代理机制,动态创建目标对象的代理对象,根据通知类别,在代理对象的对应位置,将通知对应的功能织入,完成完整的代码逻辑运行。

③AOP底层使用哪种代理方式

会根据是不是有接口赖决定使用哪种动态代理的方式

 8. 基于XML的AOP开发

①快速导入AOP坐标

②创建目标接口和目标类(内部有切点)

③创建切面类(内部有增强方法)

④将目标类和切面类的对象创建权交给spring

⑤在applicationContext.xml中配置织入关系

⑥测试代码

  3. 切点表达式的抽取

9. 基于注解的AOP开发

  

 每日图片分享,昨天学年设计答辩就没来得及学习! 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值