- 博客(24)
- 资源 (1)
- 收藏
- 关注
原创 CAS操作
使用锁时,线程获取锁是一种,即假设每一次执行临界区代码都会产生冲突,所以当前线程获取到锁的时候同时也会阻塞其他线程获取该锁。而CAS操作(又称为无锁操作)是一种,它假设所有线程访问共享资源的时候不会出现冲突,既然不会出现冲突自然而然就不会阻塞其他线程的操作。因此,线程就不会出现阻塞停顿的状态。那么,如果出现冲突了怎么办?无锁操作是使用**CAS(compare and swap)**又叫做比较交换来鉴别线程是否出现冲突,出现冲突就重试当前操作直到没有冲突为止。
2023-08-08 17:28:21
144
转载 MySQL不同索引的区别(InnoDB引擎)
数据库的索引类型从物理存储角度,索引可以分为以下两类: 聚集索引(主键索引):按照每张表的主键构造一颗B+树,同时叶子节点中存放的即为整张表的记录数据。聚集索引的叶子节点称为数据页,聚集索引的这个特性决定了主索引文件和数据文件为同一份文件,数据的排列顺序和索引的排列顺序一致。 非聚集索引(又叫辅助索引,二级索引,非主键索引):在聚集索引之上创建的索引称之为辅助索引。辅助索引并不存储数据,只存储主键的值,如果使用辅助索引搜索数据就必须先从辅助索引取到主键的值,再使用主键的值去主键索引上查
2023-01-03 00:42:33
2077
原创 java 输入输出流
java I/O流在java中所有数据都是使用流读写的。流是一组有序的数据序列,将数据从一个地方带到另一个地方。根据数据流向的不同,可以分为输入(Input)流和输出(Output)流两种。为什么要使用输入输出流例如,我们平时用的 Office 软件,对于 Word、Excel 和 PPT 文件,我们需要打开文件并读取这些文本,和编辑输入一些文本,这都需要利用输入和输出的功能。在现实生活中,输入和输出的例子比比皆是。什么是I/O流I/O流概念:输入就是将数据从各种输入设备(包括文件、键盘
2022-05-23 21:19:39
5278
3
原创 java注释
概念:注解(Annotation),是 Java 平台中非常重要的一部分。注解都是 @ 符号开头的,例如我们在学习方法重写时使用过的 @Override 注解。同 Class 和 Interface 一样,注解也属于一种类型。作用:注解常见的作用有以下几种: 生成帮助文档。这是最常见的,也是 Java 最早提供的注解。常用的有 @see、@param 和 @return 等; 跟踪代码依赖性,实现替代配置文件功能。比较常见的是 Spring 2.5 开始的基于注解配置。作用就是减少配..
2022-05-23 21:16:41
112
原创 RabbitMQ简单介绍
1.1 RabbitMq概念RabbitMQ是一个消息中间件:它接受并转发消息。你可以把它当做一个快递站点,当你要发送一个包裹时,你把你的包裹放到快递站,快递员最终会把你的快递送到收件人那里,按照这种逻辑,RabbitMQ是一个快递站,一个快递员帮你传递快件,RabbitMQ与快递站的主要区别在于,它不处理快件而是接收存储和转发消息数据1.2 四大核心概念生产者:产生数据并发送数据的程序是生产者交换机:交换机是rabbitMQ一个非常重要的部件,一方面它接受来自生产者的消息,另一方面它将消息
2022-04-26 14:35:32
2284
原创 MQ相关介绍
1.1 什么是MQMQ(message queue),从字面意思上看,本质是个队列,FIFO先入先出,只不过队列中存放的内容是message而已,还是一种跨进程的通信机制用于上下游传递消息在互联网架构中,MQ是一种非常常见的上下游“逻辑解耦+物理解耦”的消息通信服务,在使用了MQ之后,消息发送上游只需要依赖MQ,不用依赖其他服务1.2 为什么要使用 MQ1.流量消峰举个例子,如果订单系统最多能处理一万次订单,这个处理能力应付正常时段的下单时绰绰有余,正常时段我们下单一秒后就能返回结果。但
2022-04-26 14:33:47
715
原创 Redis发布与订阅
什么是发布与订阅Redis 发布订阅 (pub/sub) 是一种消息通信模式:发送者 (pub) 发送消息,订阅者 (sub) 接收消息。Redis 客户端可以订阅任意数量的频道。下图展示了频道 channel1 , 以及订阅这个频道的三个客户端 —— client2 、 client5 和 client1 之间的关系:当有新消息通过 PUBLISH 命令发送给频道 channel1 时, 这个消息就会被发送给订阅它的三个客户端Redis的发布与订阅订阅..
2022-03-28 08:45:31
901
原创 jwt 及springboot实现
什么是JWTJSON Web Token 通过数字签名的方式,以json对象为载体,在不同服务中端之间安全的传递信息。JWT作用JWT最常见的场景是授权登录,一旦用户登录,后续每个请求都将包含JWT,系统在每次处理用户请求之前,都会先进行JWT安全验证,通过之后再进行处理,例如公司进出时的工牌JWT的组成JWT总共由三部分组成,并用.拼接例如sakakhvhhjasvx5as6xsaxxs51a6.xasyjxsvaxsa6545sx6asxbahvxshsx1a+saxsxn
2022-03-25 11:24:34
1104
原创 数据结构——树
树1.预备知识树的定义: 一棵树是一些节点的集合。这些集合可以是空集;若不是空集,则树由称作根(root)的节点 r 以及0或多个非空的(子)树T1,T2,T3……构成,这些子树每一棵的根都由来自根 r 的一条有向边连接。树的特性:一棵树是N个节点和N-1条边的集合,其中一个节点叫做根树叶:没有儿子的节点叫做树叶兄弟节点:具有相同父亲的节点叫做兄弟节点节点深度:根到该节点的唯一路径长树的高度:树的高度等于该树的最深的树叶的深度2.树的实现树的实现的解决方法:将每个节点的所
2022-03-24 20:56:41
2383
原创 数据结构的概述
首先数据结构包括线性结构和非线性结构线性结构:l )线性结构作为最常用的数据结构,其特点是数据元素之间存在一对一的线性关系2 )线性结构有两种不同的存储结构,即顺序存储结构和链式存储结构。顺序存储的线性表称为顺序表,顺序表中的存储元素是连续(即地址是连续的)的3 )链式存储的线性表称为链表,链表中的存储元素不一定是连续的,元素节点中存放数据元素以及相邻元素的地址信息4 )线性结构常见的有:数组、队列、链表和栈.非线性结构:二维数组,多维数组,广义表,树结构,图结构
2022-02-22 21:06:58
2006
原创 SpringBoot2的自动配置原理
今天学习了SpringBoot2的自动配置原理,认为十分巧妙,所以记录一下自己的学习感悟。1预备知识 在介绍SpringBoot2的自动装配原理之前,有几个注解需要我们认识一下,这几个注解在我看来是自动装配原理的基础。 1.1 @Conditional 条件装配 这里的注解并不只有@Conditional,而是和@Conditional具有相同功能的注解,比如以下注解: 此类注解的作用是:当满足Conditi...
2021-12-24 15:50:06
2064
原创 SpringBoot2版本的@Configuration注解的源码详解
这周开始对SpringBoot2源码的学习呢,突发奇想,要记录一下自己的学习经历,下面是对@Configuration注解的说明@Configuration注解说明 @Configuration作用:表明一个类中声明一个和多个@Bean标记的方法,并且这些方法被Spring容器管理用于生成Bean定义以及在运行时这些Bean的服务请求。 简单来说,就是将@Configuration下的类和@Bean下的方法当作组件,将这些组件放入Spring容...
2021-12-20 19:17:37
2227
原创 Ubuntu系统下JDK的安装
众所周知啊,各种配置的下载安装是非常麻烦的,今天呢我来介绍一下Ubuntu系统下JDK的安装。 下载jdk的压缩包首先进入甲骨文官网(www.oracle.com)再依次点击资源-->软件下载-->java找到如下页面点击即可(推荐选择java SE8版本)再根据自己的系统选择版本,在这里我们下载压缩包(后缀为tar.gz) 2 . 对JDK压缩包进行解压打开压缩包,将第一级目录提取到想要的文件夹中 3 . 配置...
2021-08-29 16:33:38
2622
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人