星火燎原bbb
码龄6年
  • 16,299
    被访问
  • 10
    原创
  • 1,440,166
    排名
  • 6
    粉丝
关注
提问 私信
  • 加入CSDN时间: 2016-01-19
博客简介:

应学欣的博客

查看详细资料
个人成就
  • 获得10次点赞
  • 内容获得6次评论
  • 获得38次收藏
创作历程
  • 2篇
    2021年
  • 3篇
    2020年
  • 22篇
    2019年
成就勋章
TA的专栏
  • 数据库
    4篇
  • hadoop
  • redis
  • spring
    3篇
  • 数据结构
    1篇
  • 集合类
    2篇
  • 并发相关
    10篇
  • hive
    1篇
  • spark
  • java
    5篇
兴趣领域 设置
  • 设计
    交互
  • 最近
  • 文章
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

springsecurity源码(oauth2)

首先从/oauth/token入手@RequestMapping(value = "/oauth/token", method=RequestMethod.POST) public ResponseEntity<OAuth2AccessToken> postAccessToken(Principal principal, @RequestParam Map<String, String> parameters) throws HttpRequestMethodNotSuppor
原创
发布博客 2021.01.16 ·
100 阅读 ·
0 点赞 ·
0 评论

springmvc源码

待更新一,springmvc主要分两个步骤把url和方法的映射,注册到map中1,Web容器启动的时候,同时会启动Spring的IOC容器,RequestMappingHandlerMapping Bean也会随着IOC容器而实例化。RequestMappingHandlerMapping这个class覆盖了afterPropertiesSet方法。其超类AbstractHandlerMethodMapping的afterPropertiesSet方法代码如下:@Override public v
原创
发布博客 2021.01.07 ·
76 阅读 ·
0 点赞 ·
0 评论

springsecurity源码(密码登陆)

UsernamePasswordAuthenticationFilterpublic class UsernamePasswordAuthenticationFilter extends AbstractAuthenticationProcessingFilter { 。。。 public UsernamePasswordAuthenticationFilter() { super(new AntPathRequestMatcher("/login", "POST"));
原创
发布博客 2020.12.30 ·
68 阅读 ·
0 点赞 ·
0 评论

java8新特性

1,List转mapMap<Integer, String> categoryMap = categoryList.stream().collect(Collectors.toMap(Category::getId,Category::getName ));2,从redis获取的数据结构//从redis获取购物车 List<Map<String, Object>> oderItemList = cartService.findNewOrderIt
原创
发布博客 2020.12.25 ·
12 阅读 ·
0 点赞 ·
0 评论

rabbitmq源码

本文以rabbitmq接收端最核心的类SimpleMessageListenerContainer作为切入点,做源码解析
原创
发布博客 2020.12.30 ·
382 阅读 ·
0 点赞 ·
3 评论

mysql innodb的死锁问题

先了解下innodb锁机制,实现原理:InnoDB行锁是通过给索引上的索引项加锁来实现的,这一点MySQL与Oracle不同,后者是通过在数据块中对相应数据行加锁来实现的。InnoDB这种行锁实现特点意味着:只有通过索引条件检索数据,InnoDB才使用行级锁,否则,InnoDB将使用表锁! 索引分为主键索引和二级索引两种,如果一条sql语句操作了主键索引,MySQL就会锁定这条主键索引;如果一条...
转载
发布博客 2019.06.29 ·
76 阅读 ·
0 点赞 ·
0 评论

spring security 微服务权限认证架构图(jwt版和jwt+redis版)

标题一,jwt版,代码比较简洁,但是不能控制jwt失效标题二,jwt+redis版,服务端能用reids控制jwt失效
原创
发布博客 2019.06.23 ·
2413 阅读 ·
0 点赞 ·
0 评论

Hive数据倾斜案列(大表join大表)

业务背景用户轨迹工程的性能瓶颈一直是etract_track_info,其中耗时大户主要在于trackinfo与pm_info进行左关联的环节,trackinfo与pm_info两张表均为GB级别,左关联代码块如下:from trackinfo a left outer join pm_info b on (a.ext_field7 = b.id) 使用以上代码块需要耗时1.5小时。...
转载
发布博客 2019.05.04 ·
962 阅读 ·
4 点赞 ·
0 评论

并发编程10-LinkedHashMap原理

1 前言LinkedHashMap继承于HashMap,如果对HashMap原理还不清楚的同学,请先了解下hashmap。本文的LinkedHashMap是jdk1.7版的2 LinkedHashMap使用与实现先来一张LinkedHashMap的结构图,不要虚,看完文章再来看这个图,就秒懂了,先混个面熟:2.1 应用场景HashMap是无序的,当我们希望有顺序地去存储key-valu...
转载
发布博客 2019.05.03 ·
340 阅读 ·
0 点赞 ·
0 评论

并发编程9-CyclicBarrier

前言JDK的并发包中提供了几个非常有用的工具类,这些工具类给我们在业务开发过程中提供了一种并发流程控制的手段,本文会基于实际应用场景介绍如何使用CyclicBarrier,以及内部实现机制。CyclicBarrier是什么CyclicBarrier也叫同步屏障,在JDK1.5被引入,可以让一组线程达到一个屏障时被阻塞,直到最后一个线程达到屏障时,所以被阻塞的线程才能继续执行。CyclicB...
转载
发布博客 2019.05.03 ·
74 阅读 ·
0 点赞 ·
0 评论

并发编程8-线程池的原理和使用

在前面的文章中,我们使用线程的时候就去创建一个线程,这样实现起来非常简便,但是就会有一个问题:如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任务?在Java中可以通过线程池来达到这样的效果。今天我们就来...
转载
发布博客 2019.05.03 ·
100 阅读 ·
0 点赞 ·
0 评论

并发编程5-AQS的Condition实现原理

在经典的生产者-消费者模式中,可以使用Object.wait()和Object.notify()阻塞和唤醒线程,但是这样的处理下只能有一个等待队列。在可重入锁ReentrantLock中,使用AQS的condition可以实现设置多个等待队列,使用Lock.newCondition就可以生成一个等待队列,相比较来说这种方式就很灵活。本篇文章将介绍Condition的实现原理和基本使用方法,基本过...
转载
发布博客 2019.05.03 ·
607 阅读 ·
0 点赞 ·
0 评论

并发编程7-ArrayBlockingQueue底层实现和原理

ArrayBlockingQueue的原理和底层实现的数据结构 :ArrayBlockingQueue是数组实现的线程安全的有界的阻塞队列,可以按照 FIFO(先进先出)原则对元素进行排序。线程安全是指,ArrayBlockingQueue内部通过“互斥锁”保护竞争资源,实现了多线程对竞争资源的互斥访问。而有界,则是指ArrayBlockingQueue对应的数组是有界限的。 阻塞队列,是指多...
转载
发布博客 2019.05.02 ·
1627 阅读 ·
0 点赞 ·
0 评论

并发编程6-ReentrantLock

1.什么是可重锁ReentrantLock?就是支持重新进入的锁,表示该锁能够支持一个线程对资源的重复加锁。底层实现原理主要是利用通过继承AQS来实现的,也是利用通过对volatile state的CAS操作+CLH队列来实现;支持公平锁和非公平锁。CAS:Compare and Swap 比较并交换。CAS的思想很简单:3个参数,一个当前内存值V、预期值A,即将更新的值B,当前仅当预期值A...
转载
发布博客 2019.05.02 ·
84 阅读 ·
0 点赞 ·
0 评论

并发编程4-AQS同步器原理

1.什么是AQS? AQS的核心思想是基于volatile int state这样的volatile变量,配合Unsafe工具对其原子性的操作来实现对当前锁状态进行修改。同步器内部依赖一个FIFO的双向队列来完成资源获取线程的排队工作。2.同步器的应用同步器主要使用方式是继承,子类通过继承同步器并实现它的抽象方法来管理同步状态,对同步状态的修改或者访问主要通过同步器提供的3个方法:get...
转载
发布博客 2019.05.02 ·
158 阅读 ·
0 点赞 ·
0 评论

并发编程3-CAS原理

cas和volatile关键字 一起使用同样能够实现线程安全,是java并发包实现的基础。今天着重来分析CAS。CAS:Compare and Swap, 翻译成比较并交换。java.util.concurrent包中借助CAS实现了区别于synchronouse同步锁的一种乐观锁。本文先从CAS的应用说起,再深入原理解析。...
转载
发布博客 2019.05.01 ·
186 阅读 ·
1 点赞 ·
0 评论

并发编程2-volatile原理

volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模型有关的,因此在讲述volatile关键之前,我们先来了解一下与内存模型相关的概念和知识,然后分析了volatile关键字的实现原理,最后给出了几个使用volatile关键字的场景。以下是本文的目录大纲:一.内存模型的相关概念二.并发编程中的三个概念三.Java内...
转载
发布博客 2019.05.01 ·
75 阅读 ·
0 点赞 ·
0 评论

并发编程1-Synchronized及其实现原理

一、Synchronized的基本使用Synchronized是Java中解决并发问题的一种最常用的方法,也是最简单的一种方法。Synchronized的作用主要有三个:(1)确保线程互斥的访问同步代码(2)保证共享变量的修改能够及时可见(3)有效解决重排序问题。从语法上讲,Synchronized总共有三种用法:(1)修饰普通方法(2)修饰静态方法(3)修饰代码块接下来我就通过几个例子...
转载
发布博客 2019.05.01 ·
100 阅读 ·
0 点赞 ·
0 评论

数据库事务

数据库事务四大特性-ACID事务的:原子性、一致性、分离性、持久性事物(transaction)是由一些列操作序列构成的执行单元,这些单元要么都做,要么不做,是一个不可分割的工作单元。数据库事物的四个基本性质(ACID)1.原子性(Atomicity)指的是事物中包含的所有操作要么全做,要么全不做(all or none)。例如银行取款事务分为2个步骤(1)存折减款(2)提取现金。不可...
原创
发布博客 2019.05.01 ·
94 阅读 ·
0 点赞 ·
0 评论

mysql中innodb和myisam对比及索引原理区别

InnoDB和MyISAM是很多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,5.7之后就不一样了1、事务和外键InnoDB具有事务,支持4个事务隔离级别,回滚,崩溃修复能力和多版本并发的事务安全,包括ACID。如果应用中需要执行大量的INSERT或UPDATE操作,则应该使用InnoDB,这样可以提高多用户并发操作的性能MyISAM管理非事务表。它提供高速存储和检索,以及全...
转载
发布博客 2019.05.01 ·
422 阅读 ·
0 点赞 ·
0 评论
加载更多