自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 Spring AOP(面向切面)介绍以及示例(@Before @Around @After @AfterReturning @AfrerThrowing)

1、什么是面向切面(AOP)在使用面向切面之前我们要理解一下面向对象和面向切面这两个概念。面向对象就是提取公共特征进行抽象化,比如,不管是男人还是女人,它们都有年龄、名字等属性,那么就可以把这些属性以及相同的方法(如get、set)抽取到父类中,是一种纵向的抽取。面向切面,就是将一些逻辑通过横向切割的方式抽取到一个独立的模块,业务只需要关注自身的逻辑,在运行业务时,由程序将这些逻辑织入,是一种横向的抽取。比如假设数据库操作之前需要编写日志,这时可以对修改每个函数添加写日志操作,为了提升代码复用可以进

2021-03-31 17:47:36 3832

原创 Spring AOP中使用的JDK动态代理与CGLib动态代理

最近在看Spring AOP,里面使用到了动态代理,自己对两种代理模式进行了学习,这里做个总结。本文主要介绍动态代理,开始之前还是先介绍一下代理的相关内容。一、代理代理分为静态代理和动态代理,无论哪种代理,它们都是为了对目标方法进行增强,让增强的动作和目标动态分开,达到解耦的目的。目标类可以只关注业务,而不关注其他的东西,比如添加用户时,只关注业务实现,不关注谁调用相关的日志输出等操作。1、静态代理其实就是创建一个代理类去继承目标类,在代理类中重写目标方法,添加增强动作的同时对目标方法进行使用。下面

2021-02-18 19:08:43 2110

原创 Spring的Orderd接口以及@Order、@Primary、@Priority三个注解介绍

今天要来说一下Orderd接口以及@Order、@Primary、@Priority注解这几个东西,原本只是想介绍一下@Order,但是这几个有一定的关联,因此这里一起进行介绍。这几个接口是用来排序,本文主要介绍用法,具体的比如Spring什么时候对他们排序啊,后面在介绍Spring的处理过程的时候再介绍,还有怎么排序的这些比较好理解的也不介绍了。1、如何发现Orderd接口以及@Order、@Primary、@Priority在前面文章说过要通过一些常用的注解以及在学习过程中不断的发现,因此这里我还是

2021-02-16 20:59:07 9261 2

原创 leetcode4. 寻找两个正序数组的中位数

题目给定两个大小为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出这两个正序数组的中位数,并且要求算法的时间复杂度为 O(log(m + n))。你可以假设 nums1 和 nums2 不会同时为空。示例 1:nums1 = [1, 3]nums2 = [2]则中位数是 2.0示例 2:nums1 = [1, 2]nums2 = [3, 4]则中位数是 (2 + 3)/2 = 2.5解题思路双指针法,每次比较两个数组指定位置的大小并移动指针位置代

2020-09-09 15:25:17 1438

原创 leetcode3.重复字符的最长子串

题目给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: "pwwkew"输出: 3解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。 请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子

2020-09-09 14:19:39 158

原创 字节跳动2019春招研发笔试题万万没想到之聪明的编辑

题目我叫王大锤,是一家出版社的编辑。我负责校对投稿来的英文稿件,这份工作非常烦人,因为每天都要去修正无数的拼写错误。但是,优秀的人总能在平凡的工作中发现真理。我发现一个发现拼写错误的捷径:三个同样的字母连在一起,一定是拼写错误,去掉一个的就好啦:比如 helllo -> hello两对一样的字母(AABB型)连在一起,一定是拼写错误,去掉第二对的一个字母就好啦:比如 helloo -> hello上面的规则优先“从左到右”匹配,即如果是AABBCC,虽然AABB和BBCC都是错误拼写,

2020-09-09 09:57:32 735

原创 leetcode77.组合(Java回溯法)

题目给定两个整数 n 和 k,返回 1 … n 中所有可能的 k 个数的组合。示例:输入: n = 4, k = 2输出:[ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4],]解题组合排列通常可以采用回溯法的方式,回溯即开始时候添加,执行完需要的步骤后再删除。import java.util.*;class Solution { public List<List<Integer>> combin

2020-09-08 16:16:18 257

原创 9/6 字节笔试第二题单调栈

9/6 字节笔试第二题单调栈题目对于一个有 N 个元素的数组,包含如下的元素 a1,a2, …, an,我们定义了两个函数:1、L(i) = j 需要满足的条件如下 j < i, a[j] > a[i],如果找不到j的话,L(i) = 0, 有多个 j 选择离 i 最近的2、R(i) = k 需要满足的条件如下 k > i, a[k] > a[i],如果找不到k的话,L(k) = 0, 有多个 k 选择离 i 最近的最后我们定义 MAX(i) = L(i) * R(i),

2020-09-08 09:44:31 147

原创 Java使用LinkedHashMap实现LRU缓存

Java使用LinkedHashMap实现LRU缓存LRU介绍LRU实现方式LinkedHashMap实现LRU参加拼多多一面的时候手撕了LRU,虽然我知道经常会考LRU,但是自己一直没动手去实现,这里介绍一下LRU以及Java实现LRU介绍LRU可以用来当作缓存,每次访问LRU的数据之后,那个数据将变成最新的。往里面添加数据后,若容量超过自己设置的最大容量,将会删除最老的数据。即最早添加的或最长时间未使用的(注意:最早的被访问也会变成最新的)LRU实现方式Java实现LRU一般采用链表+Hash

2020-09-06 20:55:22 1095

原创 CentOS7使用安装包安装MySQL8.0.21

CentOS7使用安装包安装MySQL8.0.21首先删除centos自带的mariadb查找mariadb: rpm -qa|grep mariadb出现几个则依次执行,如mariadb-libsxxx则执行:rpm -e --nodeps mariadb-libs下载MySQLhttps://dev.mysql.com/downloads/mysql/选择第二个进行下载上传、解压、重命名上传文件到/usr/local,执行解压命令xz -d mysql-8.0.21-linux-g

2020-08-25 16:21:48 260

原创 CentOS8安装Mysql5.7,不是8.0

CentOS8安装Mysql5.7,不是8.0卸载原有的Mysqlyum安装Mysql之前使用过Ubantu,但是并没有深入使用,这次为了更加深入学习Mysql以及Linux系统,同时想试试CentOS系统,便装了个CentOS8系统。但是在安装Mysql时却碰到了各种问题,于是想着写个文章来记录一下这个过程。卸载原有的Mysql1、查看之前已安装的Mysqlrpm -qa |grep m...

2020-04-30 09:22:47 19077 10

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除