![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
知识的鱼塘
文章平均质量分 69
大人的博客
其实我们每个人的生活都是一个世界,即使最平凡的人也要为他生活的那个世界而奋斗
展开
-
leetcode动态规划笔记
动态规划问题的⼀般形式就是求最值。求解动态规划的核⼼问题是穷举。⾸先, 动态规划的穷举有点特别, 因为这类问题存在「重叠⼦问题」 , 如果暴⼒穷举的话效率会极其低下, 所以需要「备忘录」 或者「DP table」 来优化穷举过程, 避免不必要的计算。⽽且, 动态规划问题⼀定会具备「最优⼦结构」 , 才能通过⼦问题的最值得到原问题的最值。只有列出正确的「状态转移⽅程」 才能正确地穷举。重叠⼦问题、 最优⼦结构、 状态转移⽅程就是动态规划三要素。...原创 2021-03-25 09:05:35 · 119 阅读 · 0 评论 -
RabbitMQ的消息模式
1.简单模式简单模式是最简单的消息模式,它包含一个生产者、一个消费者和一个队列。生产者向队列里发送消息,消费者从队列中获取消息并消费。2.工作模式工作模式是指向多个互相竞争的消费者发送消息的模式,它包含一个生产者、两个消费者和一个队列。两个消费者同时绑定到一个队列上去,当消费者获取消息处理耗时任务时,空闲的消费者从队列中获取并消费消息。...原创 2021-03-11 15:08:39 · 1136 阅读 · 0 评论 -
Oauth2(开放授权)
1.OAuth(开放授权)是一个开放标准,允许用户授权第三方移动应用访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方移动应用或分享他们数据的所有内容,2. 应用场景2.1第三方应用授权登录:在APP或者网页接入一些第三方应用时,时长会需要用户登录另一个合作平台,比如QQ,微博,微信的授权登录。2.2原生app授权:app登录请求后台接口,为了安全认证,所有请求都带token信息,如果登录验证、请求后台数据2.3前后端分离单页面应用(spa):前后端分离框架,前端请求后台数据原创 2021-01-18 14:38:49 · 731 阅读 · 2 评论 -
拦截器和过滤器的区别
1.过滤器:依赖于servlet容器。在实现上基于函数回调,可以对几乎所有请求进行过滤,但是缺点是一个过滤器实例只能在容器初始化时调用一次。使用过滤器的目的是用来做一些过滤操作,获取我们想要获取的数据,比如:在过滤器中修改字符编码;在过滤器中修改HttpServletRequest的一些参数,包括:过滤低俗文字、危险字符等2.拦截器:依赖于web框架,在实现上基于Java的反射机制,属于面向切面编程(AOP)的一种运用。由于拦截器是基于web框架的调用,因此可以使用Spring的依赖注入(DI)进行一原创 2020-12-16 10:28:02 · 148 阅读 · 0 评论 -
spring总结
Spring IoC的初始化过程:Spring AOP就是基于动态代理的,如果要代理的对象,实现了某个接口,那么Spring AOP会使用JDK Proxy,去创建代理对象,而对于没有实现接口的对象,这时候Spring AOP会使用Cglib ,这时候Spring AOP会使用 Cglib 生成一个被代理对象的子类来作为代理,Spring AOP 和 AspectJ AOP 有什么区别?Spring AOP 属于运行时增强,而 AspectJ 是编译时增强。 Spring AOP 基于代理(Pro原创 2020-11-17 16:23:23 · 201 阅读 · 0 评论 -
redis学习笔记
redis学习笔记之数据结构redis有五种数据结构,分别是String(字符串)、List(列表)、Set(集合)、Hash(散列)、Zset(有序集合)redis的集合和列表都可以存储多个字符串,它们之间的不同是:列表可以存储多个相同的字符串;集合通过使用散列表保证自己存储的每个字符串是各不相同的;散列可以存储多个键值对之间的映射,它可以存储字符串或数字;有序集合存储键值对,键被称为成员,每个成员不同。...原创 2020-11-17 16:22:48 · 284 阅读 · 0 评论 -
Dubbo笔记
1. 什么是 DubboApache Dubbo (incubating) |ˈdʌbəʊ| 是一款高性能、轻量级的开源Java RPC 框架,它提供了三大核心能力:**面向接口的远程方法调用(RPC),智能容错和负载均衡,以及服务自动注册和发现。**简单来说 Dubbo 是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。2. 什么是 RPC?RPC原理是什么?2.1 RPC(Remote Procedure Call)—远程过程调用,它是一种通过网络从原创 2020-11-11 15:10:02 · 220 阅读 · 0 评论 -
SpringBean的循环依赖
1. 什么是循环依赖循环依赖其实就是循环引用,也就是两个或则两个以上的bean互相持有对方,最终形成闭环。比如A依赖于B,B依赖于C,C又依赖于A。如下图:注意,这里不是函数的循环调用,是对象的相互依赖关系。循环调用其实就是一个死循环,除非有终结条件以两个类A和B为例进行讲解,如下是A和B的声明public class A { private B b; public void setB(B b) { this.b = b; }}public class B { priva原创 2020-11-02 17:14:36 · 875 阅读 · 0 评论 -
Java多线程笔记
线程共包括以下5种状态。新建状态(New) : 线程对象被创建后,就进入了新建状态。例如,Thread thread = new Thread()。就绪状态(Runnable): 也被称为“可执行状态”。线程对象被创建后,其它线程调用了该对象的start()方法,从而来启动该线程。例如,thread.start()。处于就绪状态的线程,随时可能被CPU调度执行。运行状态(Running) : 线程获取CPU权限进行执行。需要注意的是,线程只能从就绪状态进入到运行状态。阻塞状态(Bl原创 2020-10-26 18:51:07 · 193 阅读 · 0 评论 -
Nginx简介
Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx 既可以在内部直接支持 Rails 和 PHP 程序对外进行服务,也可以支持作为 HTTP代理服务对外进行服务。1.代理在Java设计模式中,代理模式是这样定义的:给某个对象提供一个代理对象,并由代理对象控制原对象的引用。(形象比喻为中介,我们想做什么,但又不想直接去做,那么这时候就找另外一个人帮我们去做)Nginx 主要能够代理如下几种协议,其中用到的最多的就是做H原创 2020-08-20 09:15:57 · 121 阅读 · 0 评论 -
mybatis笔记
持续整理常用标签,以防忘记:low(str):将所有字符串更改为小写,然后返回.例子:low(‘AbDEg112’)//返回abdeg112.concat()使用方法:CONCAT(str1,str2,…) //拼接字符串,如有任何一个参数为NULL ,则返回值为 NULL。注意:如果所有参数均为非二进制字符串,则结果为非二进制字符串。如果自变量中含有任一二进制字符串,则结果为一个二进制字符串。...原创 2020-08-06 09:37:46 · 129 阅读 · 0 评论 -
事务管理实例与常见问题
@Transactional注解只能应用到public可见度的方法上,可以被应用于接口定义和接口方法,方法会覆盖类上面声明的事务。例如用户新增需要插入用户表、用户与岗位关联表、用户与角色关联表,如果插入成功,那么一起成功,如果中间有一条出现异常,那么回滚之前的所有操作, 这样可以防止出现脏数据,就可以使用事务让它实现回退。只需在方法或类添加@Transactional注解即可。@Transactionalpublic int insertUser(User user){ // 新增用户信息 in原创 2020-08-04 15:16:45 · 129 阅读 · 0 评论 -
Stream API笔记
Java 8 引入了全新的 Stream API,可以使用声明的方式来处理数据,极大地方便了集合操作,让我们可以使用更少的代码来实现更为复杂的逻辑。什么是Stream?Stream(流)是一个来自数据源的元素队列,它可以支持聚合操作。数据源:流的数据来源,构造Stream对象的数据源,比如通过一个List来构造Stream对象,这个List就是数据源;聚合操作:对Stream对象进行处理后使得Stream对象返回指定规则数据的操作称之为聚合操作,比如filter、map、limit、sorted等都原创 2020-07-03 10:13:20 · 92 阅读 · 0 评论 -
定时任务框架Quartz
一、什么是Quartz什么是Quartz? Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,完全由Java...转载 2020-06-08 10:19:17 · 258 阅读 · 0 评论 -
redis主从复制原理及实现
redis主从复制原理及详细实现通过持久化功能redis可以保证即使在服务器重启的情况下也不会损失(或者少量损失)数据。但是数据是存储在一台服务器上的,如果服务器出现硬盘故障等问题就会造成数据的丢失。为避免单一故障,可以将数据库复制多个副本以部署在不同服务器上,这样即使有一台服务器出现故障,其他服务器依然可以继续提供服务。为此,redis引入了复制功能。原理当一个从数据库启动后,会向主数据库发送SYNC命令,同时主数据库收到命令后开始在后台保存快照(RDB持久化的过程),并将保存快照期间收到的命令缓存原创 2020-05-24 14:53:21 · 227 阅读 · 0 评论