自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

sdaujsj1的博客

君子性非异也 善假于物也

  • 博客(518)
  • 收藏
  • 关注

原创 LeetCode50. Pow(x, n)

思路:二分 快速幂转化为位运算:向下整除 n // 2n//2 等价于 右移一位 n >> 1n>>1 ;取余数 n % 2n%2 等价于 判断二进制最右位 n & 1n&1 ;//实现 pow(x, n) ,即计算 x 的 n 次幂函数(即,xn)。//////// 示例 1://////输入:x = 2.00000, n = 10//输出:1024.00000////// 示例 2://////输入:x = 2.10000,

2021-07-22 19:50:04 78

原创 LeetCode55. 跳跃游戏

思路:如果一个位置能够到达,那么这个位置左侧所有位置都能到达。//给定一个非负整数数组 nums ,你最初位于数组的 第一个下标 。//// 数组中的每个元素代表你在该位置可以跳跃的最大长度。//// 判断你是否能够到达最后一个下标。//////// 示例 1://////输入:nums = [2,3,1,1,4]//输出:true//解释:可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。////// 示例 2://////

2021-07-21 17:29:44 69 1

原创 LeetCode200. 岛屿数量

思路是基于二叉树深度优先遍历的网格深度优先遍历//给你一个由 '1'(陆地)和 '0'(水)组成的的二维网格,请你计算网格中岛屿的数量。//// 岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。//// 此外,你可以假设该网格的四条边均被水包围。//////// 示例 1://////输入:grid = [// ["1","1","1","1","0"],// ["1","1","0","1","0"],// ["1","1","0","0

2021-07-21 16:48:23 59

原创 LeetCode127. 单词接龙

//字典 wordList 中从单词 beginWord 和 endWord 的 转换序列 是一个按下述规格形成的序列:////// 序列中第一个单词是 beginWord 。// 序列中最后一个单词是 endWord 。// 每次转换只能改变一个字母。// 转换过程中的中间单词必须是字典 wordList 中的单词。////// 给你两个单词 beginWord 和 endWord 和一个字典 wordList ,找到从 beginWord 到 endWord 的 最短转换序列 中//

2021-07-21 16:21:11 107

原创 nacos配置中心 服务启动的配置加载

nacos配置中心 服务启动的配置加载@SpringBootApplicationpublic class SpringCloudNacosConfigApplication { public static void main(String[] args) { ConfigurableApplicationContext context= SpringApplication.run(SpringCloudNacosConfigApplication.class

2021-07-13 20:42:23 1322 2

原创 SpringSecurity认证流程分析

认证流程分析AuthenticationManagerAuthenticationManager是认证管理器 它定义了Spring Security过滤器要如何执行认证操作。AuthenticationManager在认证后会返回一个Authentication对象,它是一个接口,默认实现类是ProviderManagerAuthenticationProviderAuthenticationProvider针对不同的身份类型执行具体的身份认证。DaoAuthenticationProvider

2021-07-04 12:38:44 442 1

原创 SpringSecurity用户定义

用户定义基于内存@Overrideprotected void configure(AuthenticationManagerBuilder auth) throws Exception { InMemoryUserDetailsManager manager = new InMemoryUserDetailsManager(); manager.createUser(User.withUsername("admin").password("{noop}123").roles("adm

2021-07-03 04:34:39 96

原创 Springsecurity从当前请求对象中获取用户信息

从当前请求对象中获取用户信息@RequestMapping("/authentication")public void authentication(Authentication authentication) { System.out.println("authentication = " + authentication);}@RequestMapping("/principal")public void principal(Principal principal, HttpServl

2021-07-03 04:09:44 919

原创 SpringSecurity过滤器链SecurityContextPersistenceFilter

SecurityContextPersistenceFilterSecurityContextPersistenceFilter是Springsecurity链中第二道防线,位于WebAsyncManagerIntegrationFilter之后,作用是为了存储SecurityContext而设计的。SecurityContextPersistenceFilter主要做两件事:当请求到来时,从HttpSession中获取SecurityContext并存入SecurityContextHolder中

2021-07-03 03:33:04 781 2

原创 SecurityContextHolder之策略模式源码分析

springsecurity 之 登录用户数据的获取springsecurity中,用户登录信息本质是保存到HttpSession中,springsecurity进行封装 获取登录数据有两种思路:从SecurityContextHolder中获取从当前请求对象中获取从SecurityContextHolder中获取@RestControllerpublic class HelloController { @GetMapping("/hello") public void he

2021-07-02 07:37:16 342 1

原创 springsecurity 表单登录

表单登录@Configurationpublic class SecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http.authorizeRequests() .anyRequest().authenticated()

2021-07-01 07:47:39 591 5

原创 SpringSecurity默认页面生成分析

默认页面生成springSecurity过滤器DefaultLoginPageGeneratingFilter 生成默认的登录页面DefaultLogoutPageGeneratingFilter 生成默认的注销页面DefaultLoginPageGeneratingFilterpublic void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, Se

2021-06-27 14:25:50 439

原创 springsecurity默认用户生成

spring默认用户生成springboot背后默默做了很多事情:开启springSecurity自动化配置,开启后,会自动创建一个名为SpringSecurityFilterChain的过滤器,并注入到spring容器中,这个过滤器将负责所有的安全管理,包括用户的认证,授权,重定向到登录页面等(springSecurityFilterChain实际上代理了SpringSecurity中的过滤器链)创建一个UserDetailsService实例,UserDetailsService负责提供用户数据

2021-06-27 13:45:21 270

转载 过滤器 拦截器 切面执行顺序

2021-06-25 14:15:10 448

原创 ## java内存模型

java内存模型happens-before在JMM中,如果一个操作执行的结果需要对另一个操作可见,那么这两个操作之间必须要存在happens-before关系。这里提到的两个操作既可以是在一个线程之内,也可以是在不同线程之间。程序顺序规则:一个线程中的每个操作,happens-before于该线程中的任意后续操作。监视器锁规则:对一个锁的解锁,happens-before于随后对这个锁的加锁。volatile变量规则:对一个volatile域的写,happens-before于任意后续对这个

2021-06-10 20:34:31 60

原创 【抄书笔记】Java并发机制的底层实现原理

文章目录第2章 Java并发机制的底层实现原理2.1 volatile的应用1.volatile的定义与实现原理2.2 synchronized的实现原理与应用Synchonized锁的升级与对比偏向锁轻量级锁2.3 原子操作的实现原理处理器如何实现原子操作?Java如何实现原子操作?使用循环CAS实现原子操作使用锁机制实现原子操作2.4 本章小结第2章 Java并发机制的底层实现原理Java代码在编译后会变成Java字节码,字节码被类加载器加载到JVM里,JVM执行字节码,最终需要转化为汇编指令在CP

2021-06-04 09:53:40 66

原创 java并发脑图

https://www.processon.com/view/link/5b71947ce4b0be50eadcdad0

2021-06-02 17:26:16 78

原创 s3 aws 临时授权

https://docs.aws.amazon.com/zh_cn/AmazonS3/latest/userguide/AuthUsingTempSessionToken.html

2021-06-01 10:27:09 1079

原创 spring bean创建的生命周期

文章目录spring bean创建的生命周期1. 生成BeanDefinition2. 合并BeanDefinition3. 加载类4. 实例化前5. 推断构造方法6. 实例化7. BeanDefinition的后置处理8. 属性填充9. 执行Aware10. 初始化前ApplicationContextAwareProcessor主要是执行一些其他的AwareInitDestroyAnnotationBeanPostProcessor11. 初始化执行InitializingBean接口中的方法执行Bea

2021-05-21 20:12:33 176 2

原创 你知道几种定义bean的方式

文章目录你知道几种定义bean的方式1.通过xml配置文件2. 通过注解@Bean3. 通过注解@Component4. 通过BeanDefinition5. 通过FactoryBean间接定义一个bean6. 通过supplier你知道几种定义bean的方式1.通过xml配置文件引入包 <dependencies> <dependency> <groupId>org.springframework</groupId&

2021-05-19 14:37:14 257

原创 Bean的生命周期

2021-05-12 19:12:22 51

原创 spring 三级缓存

spring 循环依赖AService出现了循环依赖的情况下---->对AService提前进行AOPaService Bean的生命周期creatingSet<aService>实例化-- -AService不完整对象 (new AService()) 原始对象— >第三级缓存<' aService',lambda(AService原始对 象, beanName, BeanDefinition)>填充bService属性- — >从单例池找b

2021-05-09 14:28:04 270

原创 RocketMQ路由中心NameServer

文章目录RocketMQ路由中心NameServer一 NameServer架构设计启动流程步骤一步骤二步骤三二 NameServer动态路由发现与剔除机制1. 路由元信息2 路由注册1)Broker发送心跳包2)NameServer处理心跳包3 路由删除4路由发现RocketMQ路由中心NameServer一 NameServer架构设计消息中间件的设计思路一般是基于主题订阅发布的机制,消息生产者(Producer)发送某一个主题到消息服务器,消息服务器负责将消息持久化存储,消息消费者(Cons

2021-04-15 22:12:30 256

原创 rocketmq源码准备

文章目录一 源码环境搭建1. 源码拉取2 导入IDEA3 调试1)启动NameServer2)启动Broker3)发送消息4)消费消息二 RocketMQ源代码的目录结构三 RocketMQ的设计理念和设计目标一 源码环境搭建依赖工具JDK :1.8+MavenIntelliJ IDEA1. 源码拉取从官方仓库 https://github.com/apache/rocketmq clone或者download源码。2 导入IDEA执行安装clean install -Dmave

2021-04-12 15:29:27 151

原创 剑指offer之找出数组中重复的数字

文章目录找出数组中重复的数字方法一 使用hashset方法二 巧妙采用原地置换法找出数组中重复的数字在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。示例 1:输入:[2, 3, 1, 0, 2, 5, 3]输出:2 或 3限制:2 <= n <= 100000这道题给你你会怎么做呢?方法一 使用hashsetclass Solutio

2021-04-10 15:21:59 66

原创 java位运算

文章目录位运算(&、|、^、~、>>、<<)一 与运算 &二 或运算 |三 取反 ~四 异或 ^五 左移 <<六 右移 >>位运算(&、|、^、~、>>、<<)从现代计算机中所有的数据二进制的形式存储在设备中。即 0、1 两种状态,计算机对二进制数据进行的运算(+、-、*、/)都是叫位运算,即将符号位共同参与运算的运算。符号描述运算规则&与两个位都为1时,结果才为1

2021-04-09 20:20:13 153

转载 rocketmq之分布式事务

https://www.cnblogs.com/qdhxhz/p/11198459.html

2021-04-09 14:03:32 55

原创 jvm指令集

跳转到class文件目录,使用javap -c StringTest.class -> p.txt1命令将编译后的文件输出到p.txt文件栈和局部变量操作将常量压入栈的指令aconst_null 将null对象引用压入栈iconst_m1 将int类型常量-1压入栈iconst_0 将int类型常量0压入栈iconst_1 将int类型常量1压入栈iconst_2 将int类型常量2压入栈iconst_3 将int类型常量3压入栈iconst_4 将int类型常量4压入栈ic

2021-03-24 19:18:49 158

转载 45自增 id 用完怎么办?

文章目录45 | 自增 id 用完怎么办?表定义自增值idInnoDB 系统自增 row_idXidInnodb trx_idthread_id小结45 | 自增 id 用完怎么办?MySQL 里有很多自增的 id ,每个自增 id 都是定义了初始值,然后不停地往上加步长。虽然自然数是没有上限的,但是在计算机里,只要定义了表示这个数的字节长度,那它就有上限。比如,无符号整型 (unsigned int) 是 4 个字节,上限就是 232-1 。既然自增 id 有上限,就有可能被用完。但是,自增 i

2021-03-13 14:27:45 168

转载 44答疑文章(三):说一说这些好问题

文章目录44 | 答疑文章(三):说一说这些好问题join 的写法Simple Nested Loop Join 的性能问题distinct 和 group by 的性能备库自增主键问题小结上期问题时间44 | 答疑文章(三):说一说这些好问题这是我们专栏的最后一篇答疑文章,今天我们来说说一些好问题。在我看来,能够帮我们扩展一个逻辑的边界的问题,就是好问题。因为通过解决这样的问题,能够加深我们对这个逻辑的理解,或者帮我们关联到另外一个知识点,进而可以帮助我们建立起自己的知识网络。在工作中会问

2021-03-13 13:00:30 96

转载 43要不要使用分区表?

文章目录43 | 要不要使用分区表?分区表是什么?分区表的引擎层行为分区策略分区表的 server 层行为分区表的应用场景小结上期问题时间43 | 要不要使用分区表?我经常被问到这样一个问题:分区表有什么问题,为什么公司规范不让使用分区表呢?今天,我们就来聊聊分区表的使用行为,然后再一起回答这个问题。分区表是什么?为了说明分区表的组织形式,我先创建一个表 t :CREATE TABLE `t` (`ftime` datetime NOT NULL,`c` int(11) DEFAULT

2021-03-13 10:53:41 198

转载 42授权命令grant之后要跟着 flush privileges 吗?

文章目录42授权命令grant之后要跟着 flush privileges 吗?全局权限db 权限表权限和列权限flush privileges 使用场景小结上期问题时间42授权命令grant之后要跟着 flush privileges 吗?在 MySQL 里面, grant 语句是用来给用户赋权的。不知道你有没有见过一些操作文档里面提到, grant 之后要马上跟着执行一个 flush privileges 命令,才能使赋权语句生效。我最开始使用MySQL 的时候,就是照着一个操作文档的说明按照这个顺

2021-03-13 10:24:25 472

转载 41 | mysql之复制表的三种方式

文章目录41 | 怎么最快地复制一张表?mysqldump 方法导出 CSV 文件物理拷贝方法小结上期问题时间41 | 怎么最快地复制一张表?我在上一篇文章最后,给你留下的问题是怎么在两张表中拷贝数据。如果可以控制对源表的扫描行数和加锁范围很小的话,我们简单地使用 insert … select 语句即可实现。当然,为了避免对源表加读锁,更稳妥的方案是先将数据写到外部文本文件,然后再写回目标表。这时,有两种常用的方法。接下来的内容,我会和你详细展开一下这两种方法。为了便于说明,我还是先创建一个

2021-03-13 09:22:55 205

转载 40insert 语句的锁为什么这么多

文章目录40 | insert 语句的锁为什么这么多?insert … select 语句insert 循环写入insert 唯一键冲突insert into … on duplicate key update小结上期问题时间40 | insert 语句的锁为什么这么多?在上一篇文章中,我提到 MySQL 对自增主键锁做了优化,尽量在申请到自增 id 以后,就释放自增锁。因此, insert 语句是一个很轻量的操作。不过,这个结论对于 “ 普通的 insert 语句 ” 才有效。也就是说,还有些

2021-03-13 08:48:36 74

转载 39 | 自增主键为什么不是连续的?

文章目录39 | 自增主键为什么不是连续的?自增值保存在哪儿?自增值修改机制自增值的修改时机自增锁的优化小结上期问题时间39 | 自增主键为什么不是连续的?在第 4 篇文章中,我们提到过自增主键,由于自增主键可以让主键索引尽量地保持递增顺序插入,避免了页分裂,因此索引更紧凑。之前我见过有的业务设计依赖于自增主键的连续性,也就是说,这个设计假设自增主键是连续的。但实际上,这样的假设是错的,因为自增主键不能保证连续递增。今天这篇文章,我们就来说说这个问题,看看什么情况下自增主键会出现 “ 空洞 ”

2021-03-12 20:31:38 111

转载 38都说 InnoDB 好,那还要不要使用 Memory 引擎?

文章目录38 | 都说 InnoDB 好,那还要不要使用 Memory 引擎?内存表的数据组织结构hash 索引和 B-Tree 索引内存表的锁数据持久性问题小结38 | 都说 InnoDB 好,那还要不要使用 Memory 引擎?我在上一篇文章末尾留给你的问题是:两个 group by 语句都用了 order by null ,为什么使用内存临时表得到的语句结果里, 0 这个值在最后一行;而使用磁盘临时表得到的结果里, 0 这个值在第一行?今天我们就来看看,出现这个问题的原因吧。内存表的数据

2021-03-12 20:08:08 93

转载 37什么时候会使用内部临时表?

文章目录37什么时候会使用内部临时表?union 执行流程group by 执行流程group by 优化方法 -- 索引group by 优化方法 -- 直接排序小结上期问题时间37什么时候会使用内部临时表?在第 16 和第 34 篇文章中,我分别和你介绍了 sort buffer 、内存临时表和 join buffer 。这三个数据结构都是用来存放语句执行过程中的中间数据,以辅助 SQL 语句的执行的。其中,我们在排序的时候用到了 sort buffer ,在使用 join 语句的时候用到了

2021-03-12 19:04:11 163

原创 有女朋友之后需要过的节日

2月14 情人节 三八节 5月20 七夕 生日 儿童节 第一个你们正式确定关系的日子

2021-03-12 19:01:13 2073

转载 36为什么临时表可以重名

文章目录36为什么临时表可以重名?临时表的特性临时表的应用临时表和主备复制小结上期问题时间36为什么临时表可以重名?在上一篇文章中,我们在优化 join 查询的时候使用到了临时表。当时,我们是这么用的:create temporary table temp_t like t1;alter table temp_t add index(b);insert into temp_t select * from t2 where b>=1 and b<=2000;select * from

2021-03-12 16:45:14 114

转载 35join 语句怎么优化?

文章目录35 | join 语句怎么优化?Multi-Range Read 优化Batched Key AccessBNL 算法的性能问题BNL 转 BKA扩展 -hash join小结上期问题时间35 | join 语句怎么优化?在上一篇文章中,我和你介绍了 join 语句的两种算法,分别是 Index Nested-Loop Join(NLJ) 和Block Nested-Loop Join(BNL) 。我们发现在使用 NLJ 算法的时候,其实效果还是不错的,比通过应用层拆分成多个语句然后再拼接查

2021-03-12 12:59:54 92

空空如也

空空如也

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

TA关注的人

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