- 博客(26)
- 收藏
- 关注
原创 KMP模式匹配算法保姆级详解
传统的朴素模式匹配算法由于主串指针i回溯,且每次只前进一个距离,没有减少不必要的匹配过程。故效率非常低。KMP算法与朴素模式匹配算法不同,kmp巧妙的利用了当前c字符失配而c字符前面的字符都成功匹配的信息,因此可跳过某些不必要的匹配。kmp将关注点落在了模式串t的有效信息提取上,与主串s无关,故消除了主串s的回溯1.kmp的重点就落在对模式串t的有效信息提取上即最长公共前后缀next数组next数组是kmp算法的核心next数组用以保存当前字符c之前子串的最长公共前后缀的信息.
2022-05-18 23:13:56
910
1
转载 z-index详解
z-index就是堆叠上下文,它规定一个元素的堆叠顺序。一般来说,拥有更高堆叠顺序的元素会处于较低堆叠元素的前面。但是,z-index的有一些注意点,接下来一一举例。<div id="A">A<div id="a">a</div></div><div id="B">B<div id="b">b</div></div>div A和div B中各有一个div a和div b的子元素#A,#B { .
2022-05-12 13:45:29
20683
5
原创 ssm整合基于xml
导入依赖<dependencies> <!--数据库驱动--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.22</version> .
2022-05-05 18:55:54
93
原创 spring-整合mybatis
为什么要整合mybatis1.整合后由原先的两个框架,变成了一个框架去使用,是配置简化2.使得dao和service层专注于进行自己的业务,由spring注入bean实现层与层之间的调用 mybatis通过动态代理获得dao层接口的代理类实现对数据库的操作 spring整合mybatis本质就是将mybatis生成的代理对象变成bean 达到自动注入到service层目的 spring整合mybatis的核心就是围绕如何将mybatis生成的接口代理对象变成beandao层publ.
2022-05-02 16:25:03
572
原创 AOP基于注解
aop1.概念: 是一种面向切面编程,关注的不再是某个类某个方法,而是层与层,即切面。类似于servlet中filter过滤器2.有什么用: 用于日志记录,安全控制,增强方法等3.特点: 使模块高内聚低耦合 可以在不改变原有功能基础上添加新功能 使代码得到复用4.底层实现: 动态代理jdk cglibaop 1.引入依赖 2.编写配置类开启aop 包扫描 3.定义切面 --类@Aspect 切入点:匹配规则,规定什么方法需要被拦截 .
2022-05-01 16:07:55
394
原创 代理模式篇
代理模式–静态代理代理模式: 1.定义共同行为 --接口 *去买奶茶 2.目标角色(真实角色我) 实现行为 3.代理角色(美团骑手) 实现行为并增强目标角色行为:顺便带回赠送商品静态代理: 1.目标角色固定 2.在应用程序执行前就得到目标角色 3.代理对象会增强目标角色行为 4.可能存在多个代理,出现"类爆炸" 只能做单一事情业务场景目标角色(用户) 要租房 1.定义行为租房 接口 2.目标角色 实现行为 3.代理角色 实现行为并增强.
2022-05-01 11:47:46
74
原创 Spring
SpringIOC理论1.场景: 传统开发:三层架构之间要组合调用,通过new调用对象实现 userDao 接口 UserDaoimpl 实现类 UserService 业务接口 UserSerciveImpl 业务实现类 问题:service组合时UserDao userdao = new MysqlImp() new OrcaleImp()//多态所引起的,会需要调用处写死多个实现类对象,用户的不同需求会影响原来的代码 解决: 1.用set实现动态注
2022-04-30 19:49:55
599
原创 Mybatis
Mybatis环境JDK1.8Mysql5.7maven3.6IDEAmaven仓库<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis --><dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>
2022-04-28 18:11:26
70
原创 七种join理论
7种join理论查询: 1.分析需求,确定查询的字段来自那些表 (连接查询) 2.确定使用哪种连接查询 3.确定交叉点,即相同字段 4.基于什么判断条件三种连接查询的区别: inner join:只会返回交集的部分 left join:以左表为基准返回左表满足的所有记录,无论右表是否为null right join:以右表为基准返回右表满足的所有记录,无论左表是否为null...
2022-04-28 09:35:03
216
原创 git协同开发
git协同开发: 1.由队长创建仓库 2.给各队员分配分支 3.各队员完成开发后提交到各自分支,由队长合并到master常用命令: git clone url //从远程克隆项目 git pull//切换到最新版的分支,进行拉取。然后在自己的分支进行合并 git checkout -b branchname//本地新建分支 git checkout branchname//切换分支 git add. //添加所有文件到暂存区 git commit -am "说明信息" //从暂存区提
2022-04-27 22:40:14
696
原创 多线程同步锁之银行取钱
静态代理:对同一功能执行前后进行修饰 真实角色和代理角色实现同一个接口 自然也要重写同一个方法method 代理角色: 真实角色类型 真实角色 void method{ before 真实角色.method() after } 线程并发: 当多个线程并发访问临界资源时,如
2022-04-24 19:25:51
360
原创 注解与反射的结合
注解 1.概念或定义 特殊标记,这些标记可以在编译,类加载,运行时被读取,并执行相应的处理。 可以在不改变原有代码和逻辑的情况下在源代码中嵌入补充信息。2.元注解:负责注解其他注解 /* @Target:描述注解作用的对象 @Retention:描述注解生命周期,需要在声明级别保存该注释信息 runtime>class>resource @Document:说明该注解将被包含在javadoc中 .
2022-04-24 13:51:51
154
原创 JavaSE笔记
JavaSE学习笔记 修饰符public :公开的,任意地方均可见protected : 受保护的, 同包和子类可见缺省 :同包可见private : 私有的,仅所在类可见数据类型概念:java属于强类型语言,类比js属于弱类型语言1.八大数据类型: 数值类型: 1.1>数值类型: 整数类型:byte short int long 浮点类型:float double 字符类型: char 1.2>布尔类型: boolean.
2022-04-20 13:44:01
226
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人