自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

xzzz2020的博客

个人博客地址:https://xzzz2020.gitee.io/

  • 博客(292)
  • 资源 (1)
  • 收藏
  • 关注

原创 搭建Gridea+gitee+Valine评论+Valine-Admin评论后台的个人博客

在学习技术的过程中,博客是一个总结的过程,十分重要。该文章主要介绍如何搭建一个属于自己的个人博客,点击查看博主博客文章目录关于本博客Gridea主题评论评论管理系统博客撰写关于本博客本博客基于github和gitee的静态页,国内用户推荐使用gitee,访问速度更快。如果在学习过程中,出现了什么问题,可以在下方评论,博主会收到的。技术概要如下:博客框架采用的是Gridea主题基于bitcron-pro评论系统使用的Valine评论管理系统使用的Valine-Adm.

2020-06-24 17:34:37 3177 4

原创 2020最新-Java学习方向以及博客目录【持续更新】

目录一. 数据库关系型数据库MySQL(已更新)ORACLE非关系型数据库Redis分布式数据库二、Java基础JVM(已更新)一. 数据库关系型数据库MySQL(已更新)推荐书目:《MySQL必知必会》、《MySQL技术内幕》、《高性能MySQL》对于MySQL语法优先学习SQL的语句增删改查等,然后在LeetCode练习一下数据库的题目,可能会手写SQL语句SQL语句学习...

2020-04-25 21:30:28 444

原创 一篇近万字的秋招总结及资源分享

文章目录零、写在前面一、秋招的这段时间1. 学习时间线2. 每日时间安排二、经验分享1. 需要准备的东西1.1 简历1.2 项目或实习1.3. 基础的知识2. 需要学习的内容2.1 计算机基础2.2 语言基础2.3 框架2.4 数据库2.5 中间件2.6 常用的工具3. 可能遇到的几大问题3.1 不要怕学的慢3.2 不要怕知识太难3.3 不要怕容易忘3.4 不要怕面试3.5 不要只有广度或只有深度三、资源分享1. 笔记面经推荐2. 微信公众号推荐3. 复习必备的博客4. 书籍推荐5. 网课资源分享四、写在最

2020-11-24 16:52:07 1708 5

原创 thymeleaf手动渲染@{}的问题与解决

一、简介最近写了一个项目,然后想利用TemplateEngine实现thymeleaf的手动渲染,将生成的html页面加入Redis缓存,提高项目访问速度。二、SpringBoot 1.x实现以前使用的maven版本如下所示: <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactI

2020-11-04 16:31:12 1878

原创 【总结】ZooKeeper基础

文章目录一、分布式系统与Zookeeper简介1. 简单介绍一下Zookeeper2. 什么是分布式系统?3. 列举一下Zookeeper的特性4. zoo.cfg常用配置有哪些?5. Zookeeper都有哪些作用?6. session的基本原理二、Zookeeper的基本数据模型1. 简介2. 基本操作三、Watcher机制1. 简单描述一下Watcher机制2. Watcher的事件类型都有哪些?3. 创建节点的Watcher4. watcher的使用场景四、ACL权限控制1. 简介2. Acl权限列

2020-09-21 17:26:28 633

原创 【总结】Apache Curator入门使用

文章目录一、Apache Curator简介二、Curator基本操作1. 重试策略2. 连接与关闭Zookeeper3. 创建节点4. 删除和更新节点5. 查询节点以及子节点6. 创建watcher三、watcher统一配置修改一、Apache Curator简介解决了watcher的一次性的问题,注册一个watcher可以触发多次Api简单易用可以递归创建节点提供ZooKeeper各种应用场景(recipe, 比如:分布式锁服务、集群领导选举、共享计数器、缓存机制、分布式队列等

2020-09-21 17:25:11 1164

原创 快速幂之Java实现

博主针对2021校招字节跳动的第五轮笔试第二,学习了快速幂算法文章目录一、简介二、性能优化三、对性能进行压榨一、简介求A^B的最后三位数表示的整数。说明:A^B的含义是“A的B次方”当一个数的幂很大时,如果直接使用Math.pow()运算,会导致溢出,所以最简单的方法就是,累乘B次,每次对结果进行求模运算,我们以2的1000000000次方为例,Java代码如下:public class Test { private static int mod = 1000; pub.

2020-09-21 10:39:26 1105 1

原创 【总结】SpringMVC源码分析

文章目录一、配置文件分析1. XML配置分析2. MVC配置二、入口方法分析1. 容器初始化2. 解析Controller3. Spring对注解的配置支持三、SpringMVC的核心流程1. 关键流程2. 核心组件一、配置文件分析1. XML配置分析在一个SSM项目中,需要在xml文件配置SpingMVC的相关组件DispatcherServlet:做请求分发以及结果渲染ContextLoaderListener:配置监听器,在创建Servlet前,加载SpringMVC的配置<?x

2020-09-10 20:18:24 243

原创 【总结】SpringIOC源码分析

文章目录一、简介二、IOC容器1. 简单容器接口BeanFactory2. ListableBeanFactory接口3. AutowireCapableBeanFactory接口4. DefaultListableBeanFactory类5. 高级容器接口ApplicationContext6. ConfigurableApplicationContext接口7. AbstractApplicationContext三、容器初始化1. 后置处理器post processor2. Aware接口3. 事件监

2020-09-10 20:16:54 330

原创 【总结】SpringAOP源码分析

文章目录一、SpringAOP的总体流程二、为什么在启动类加上@EnableAspectJAutoProxy就能支持AOP三、如何注册解析AOP的服务?四、横切逻辑加载分析1. TargetSource接口2. buildAspectJAdvisors方法五、横切逻辑织入1. 横切逻辑的织入方法提供的有两个2. 流程一、SpringAOP的总体流程注册解析AOP的服务解析和加载横切逻辑将横切逻辑织入目标Bean中二、为什么在启动类加上@EnableAspectJAutoProxy就能支持AOP

2020-09-10 20:15:06 204

原创 【总结】自定义SpringMVC

文章目录一、简介1. SpringMVC的引出2. 自定义MVC提供的功能二、建立请求转发器1. 请求的拦截2. 责任链处理请求三、请求处理器1. 请求预处理器2. 静态资源处理器3. JSP处理器四、Controller处理器1. 相关注解和配置类2. ControllerRequestProcessor3. 建立Controller方法与请求的映射关系4. 给需要执行的方法参数赋值5. 利用反射执行获取执行的结果6. 根据结果设置结果渲染器五、处理结果渲染器1. 默认结果渲染器2. 异常结果渲染器3.

2020-09-10 20:14:11 368

原创 【总结】自定义SpringIOC

文章目录一、手写SpringIOC容器简介二、创建注解三、提取标记对象1. 指定范围加载四、实现IOC容器1. 枚举的单例2. 保存Class对象及其实例的载体3. 容器加载4. 容器的操作(增删改查)五、依赖注入1. 依赖注入的注解2. 对有注解的属性进行依赖注入一、手写SpringIOC容器简介已经实现的功能有:提供注解@Service、@Component、@Controller、@Repositor,标记需要加载到IOC容器管理的类提供了一个ClassUtil工具类,支持加载指定包下及其子

2020-09-10 20:12:33 269 1

原创 【总结】自定义SpringAOP

文章目录一、简介1. AOP的引出2. 自研AOP提供的功能3. AOP的核心概念:4. Advice的种类:5. 切面执行顺序6. Introduction--引入型Advice7. JDK动态代理8. CGLIb动态代理9. SpringAOP的底层机制二、利用CGLib实现AOP逻辑1. 完成注解的创建2. 切面模板类3. 被代理类的织入实现4. 执行容器的AOP操作三、引入AspectJ框架1. AspectJ框架简介2. 环境配置3. 解析Aspect表达式并定位被织入目标一、简介1. AOP

2020-09-10 20:11:00 449

原创 【2021届】Java面试复习提纲

该文章主要是作为一个Java复习的提纲,采用的并不是对每一个知识点进行讲解的形式,它的目的很纯粹,就是为了检测自己的掌握程度,针对面试题目复习,如果掌握不够好,建议先去专栏学习:面试复习专栏你可以将其作为模拟面试的问题来源,测试你的熟练程度;也可以当作面试前的知识点梳理,对一些细节问题进行填补;当然,这个笔记本也同样适用于那些能够通过简历筛选,但是对计算机基础所知甚少的人,如果你之前从未在学校修过或者自学过这些课程,你依然可以通过这份笔记快速备战面试。首先,如果对Java学习的体系不了解,建议先.

2020-09-06 10:35:47 288

原创 如何进行消息队列技术选型?

文章目录一、问题导读二、面试官心理分析三、面试题剖析1. 为什么使用消息队列啊?2. MQ的优缺点3. kafka、activemq、rabbitmq、rocketmq都有什么优点和缺点一、问题导读为什么使用消息队列啊?消息队列有什么优点和缺点啊?kafka、activemq、rabbitmq、rocketmq都有什么区别以及适合哪些场景?二、面试官心理分析第一,你知道不知道你们系统里为什么要用消息队列这个东西?第二,你既然用了消息队列这个东西,你知道不知道用了有什么好处?第三,既然你用了M

2020-09-05 16:12:40 329 1

原创 【总结】RocketMq高级特性

文章目录一、消息存储1. 为什么要存储到文件系统?如何保证性能?2. 加入持久化后RocketMq的架构是什么样的?3. 存储结构是什么样的?4. 刷盘机制有哪些?5. 如何保证消息不丢失?二、高可用机制1. 消息消费的高可用(主从)2. 消息发送高可用(配置多个主节点)3. 主从复制三、负载均衡1. Producer负载均衡2. Consumer负载均衡四、消息重试机制1. 顺序消息的重试2. 无序消息的重试五、死信队列六、消费幂等1. 什么时候产生重复消息?2. 处理方式一、消息存储分布式队列因为

2020-07-27 18:52:57 692

原创 【总结】JVM内存机制

该文章为知识总结的文章,如果是初学者,建议先从专栏学习:JVM专栏文章目录一、简介二、程序计数器三、虚拟机栈问题辨析四、本地方法栈五、堆六、方法区七、运行时常量池八、直接内存一、简介Java 虚拟机在执⾏ Java 程序的过程中会把它管理的内存划分成若⼲个不同的数据区域。 JDK. 1.8 和之前的版本略有不同jdk1.8之前:jdk1.8之后:线程私有的:程序计数器虚拟机栈本地方法栈线程共享的:堆方法区直接内存 (非运行时数据区的一部分)二、程序计数器用来.

2020-07-27 18:51:32 267

原创 【总结】JVM垃圾回收

该文章为知识总结的文章,如果是初学者,建议先从专栏学习:JVM专栏文章目录一、如何判断对象是否死亡?1. 引用计数法2. 可达性分析算法二、四种引用三、垃圾回收算法1. 标记清除算法2. 复制算法3.标记压缩算法4. 分代收集算法四、常见的垃圾回收器有那些?1. Serial 收集器2. ParNew 收集器3. Parallel Scavenge 收集器4. Serial Old 收集器5. Parallel Old 收集器6. CMS 收集器7. G1 收集器五、其他1. 方法区可以GC吗?2. .

2020-07-27 18:50:37 194 1

原创 【总结】类加载器

该文章为知识总结的文章,如果是初学者,建议先从专栏学习:JVM专栏文章目录一、简介二、自定义加载器三、双亲委派模型1. 双亲委派模型的好处2. 双亲委派模型实现源码分析3. 如果我们不想用双亲委派模型怎么办?4. ClassLoader.loadClass 和 Class.forName 的区别一、简介JVM 中内置了三个重要的 ClassLoader,除了 BootstrapClassLoader 其他类加载器均由 Java 实现且全部继承自java.lang.ClassLoader:Boo.

2020-07-27 18:49:43 157 1

原创 【总结】类加载过程

该文章为知识总结的文章,如果是初学者,建议先从专栏学习:JVM专栏文章目录一、类的加载过程二、加载三、验证四、准备五、解析六、初始化七、卸载一、类的加载过程分为三大阶段加载:查找并且加载类的二进制数据链接:验证:确保被加载类的正确性准备:为类的静态变量分配内存,并将其初始化为默认值解析:把类中的符号引用转换为直接引用初始化:执行构造方法二、加载类加载过程的第一步,主要完成下面3件事情:通过全类名获取定义此类的二进制字节流将字节流所代表的静态存.

2020-07-27 18:48:47 5431 1

原创 【总结】Redis主从复制

该文章为知识总结的文章,如果是初学者,建议先从专栏学习:Redis专栏文章目录1. 复制的完整流程2. 数据同步相关的核心机制3. 全量复制4. 增量复制5. heartbeat6. 异步复制7. 主从复制流程1. 复制的完整流程slave node启动,仅仅保存master node的信息,包括master node的host和ip,但是复制流程没开始master host和ip是在redis.conf里面的slaveof配置的slave node内部有个定时任务,每秒检查是否有新的mast.

2020-07-27 18:46:06 98

原创 【总结】Redis哨兵

该文章为知识总结的文章,如果是初学者,建议先从专栏学习:Redis专栏文章目录一、哨兵的介绍二、 哨兵的核心知识三、为什么redis哨兵集群只有2个节点无法正常工作?四、经典的3节点哨兵集群五、两种数据丢失的情况1. 异步复制导致的数据丢失2. 脑裂导致的数据丢失3. 解决六、sdown和odown转换机制七、哨兵集群的自动发现机制八、slave配置的自动纠正九、slave->master选举算法十、quorum和majority十一、configuration epoch十二、configur.

2020-07-27 18:44:19 244

原创 【总结】Redis配置

该文章为知识总结的文章,如果是初学者,建议先从专栏学习:Redis专栏文章目录一、容灾策略1. 如何配置RDB持久化机制2. RDB持久化机制的工作流程3. AOF持久化的配置4. AOF rewrite5. AOF破损文件的修复6. AOF和RDB同时工作7. 企业级的备份策略二、读写分离1. redis replication主从复制过程2. 主从搭建从节点主节点读写分离架构的测试3. 快速压测三、哨兵配置1. 解决异步复制和脑裂导致的数据丢失2. 配置经典三节点哨兵3. 常用命令四、Redis-.

2020-07-27 18:43:15 102

原创 【总结】Redis基础

该文章为知识总结的文章,如果是初学者,建议先从专栏学习:Redis专栏文章目录一、简单介绍一下Redis二、五种数据结构1. 字符串 string2. 列表 list3. 字典 hash4. 集合 set5. 有序列表 zset二、Redis和Memcached的区别?三、为什么Redis那么快?四、从海量Key里查询出某一固定前缀的Key?五、如何用Redis实现异步消息队列六、Redis有哪些使用场景?七、redis的删除策略有哪些八、什么是布隆过滤器?1. 原理2. 使用场景九、缓存穿透有哪些解.

2020-07-27 18:41:21 97

原创 【总结】Redis持久化

该文章为知识总结的文章,如果是初学者,建议先从专栏学习:Redis专栏文章目录一、持久化的意义持久化详解1、RDB和AOF两种持久化机制的介绍2、RDB持久化机制的优点3、RDB持久化机制的缺点4、AOF持久化机制的优点5、AOF持久化机制的缺点6、RDB和AOF到底该如何选择主要解决以下问题:redis的持久化,RDB,AOF,区别,各自的特点是什么,适合什么场景redis的企业级的持久化方案是什么,是用来跟哪些企业级的场景结合起来使用的???一、持久化的意义比如你部署了一.

2020-07-26 18:51:38 120

原创 【总结】跳跃表

该文章为知识总结的文章,如果是初学者,建议先从专栏学习:Redis专栏文章目录一、为什么要使用跳跃表?二、什么是跳跃表?三、Redis实现一、为什么要使用跳跃表?Zset要支持随机的插入和删除,所以它 不宜使用数组来实现,关于排序问题,我们也很容易就想到 红黑树/ 平衡树 这样的树形结构,为什么 Redis 不使用这样一些结构呢?性能考虑: 在高并发的情况下,树形结构需要执行一些类似于 rebalance 这样的可能涉及整棵树的操作,相对来说跳跃表的变化只涉及局部实现考虑: 在复杂度与红黑树.

2020-07-26 18:50:19 406 1

原创 【总结】网络原理

文章目录一、简单介绍一下OSI和TCP/IP结构和功能,分别用到哪些协议?1. 应用层2. 运输层3. 网络层4. 数据链路层5. 物理层二、TCP 三次握手和四次挥手1. 为什么要三次握手?2. 为什么要四次挥手?三、TCP和UDP的区别四、TCP 协议如何保证可靠传输4.1 连续ARQ协议4.2 滑动窗口和流量控制4.3 拥塞控制五、 在浏览器中输入url地址 ->> 显示主页的过程六、状态码九、各协议与HTTP协议的关系十、HTTP长连接和短连接十一、Cookie的作用是什么?和Sess

2020-07-26 18:47:46 317

原创 【总结】SQL语句

该文章为知识总结的文章,如果是初学者,建议先从专栏学习:数据库专栏文章目录一、常用数据处理函数1. substr2. trim3. ifnull4. case … when … then … else ... end二、常用聚合函数三、分组查询1. group by2. having3. select 语句顺序总结四、连接查询(重点)内连接外连接的区别?五、视图的作用六、如何创建删除索引?一、常用数据处理函数函数名解释substr取子串(substr(被截取的字符串,起始下标.

2020-07-26 18:46:01 132 1

原创 【总结】MySQL索引总结

该文章为知识总结的文章,如果是初学者,建议先从专栏学习:数据库专栏文章目录一、为什幺要用索引?二、索引这么多优点,为什么不对表中的每一个列创建一个索引呢?三、使用索引的注意事项?四、索引什么时候会失效?五、最左前缀原则是什么?六、MySQL索引的主要数据结构1. 哈希索引2. B+树索引七、为什么索引能提高查询速度?八、索引都有哪些类型?1. 主键索引(Primary Key)2. 二级索引(辅助索引)3. 聚集索引4. 非聚集索引5. 覆盖索引九、索引创建的原则一、为什幺要用索引?通过创建唯一.

2020-07-26 18:44:37 113

原创 【总结】MySql架构

该文章为知识总结的文章,如果是初学者,建议先从专栏学习:数据库专栏文章目录一、Mysql 的架构图二、Server 层1. 连接器2. 查询缓存3. 分析器4.优化器5. 执行器三、执行流程一、Mysql 的架构图客户端:比如window和linux的黑窗口、SQLlyog、java的JDBC标准等等Server 层:主要包括连接器、查询缓存、分析器、优化器、执行器等,所有跨存储引擎的功能都在这一层实现,比如存储过程、触发器、视图,函数等,还有一个通用的日志模块 binglog 日志模块。.

2020-07-26 18:43:27 111 1

原创 【总结】MySQL存储引擎

该文章为知识总结的文章,如果是初学者,建议先从专栏学习:数据库专栏文章目录一、MyISAM 存储引擎二、InnoDB 存储引擎三、MEMORY 存储引擎四、MyISAM和InnoDB区别存储引擎是表级别的,不同的表可以使用不同的存储引擎!!!一、MyISAM 存储引擎没有提供对数据库事务的支持,也不支持行级锁和外键,所以写操作需要锁定整个表,效率便会低一些执行读取操作的速度很快,而且不占用大量的内存和存储资源,在设计之初就预想数据组织成有固定长度的记录,按顺序存储的可以手工或.

2020-07-26 18:42:28 96 2

原创 【总结】InnoDB存储引擎

该文章为知识总结的文章,如果是初学者,建议先从专栏学习:数据库专栏文章目录一、InnoDB存储引擎工作方式二、关键特性1. 插入缓存2. 两次写3. 自适应哈希索引三、redo log、binlog和undo log1. 什么是redo log?2. 什么是binlog?3. redo log和binlog区别4. 回滚日志(undo log)5. redo log和undo log的区别6. 一条更新语句执行的顺序一、InnoDB存储引擎工作方式将数据库文件按页(每页16k)读取到缓冲池,然后.

2020-07-26 18:41:26 167 1

原创 【总结】数据库优化策略

该文章为知识总结的文章,如果是初学者,建议先从专栏学习:数据库专栏文章目录一、数据结构的优化二、服务器优化三、线上定位四、查询语句的优化1. sql 语句的时间花在哪儿?2. sql 语句的执行时间,又花在哪儿了?3. sql 语句的优化思路?4. 如何定量分析查的多少行,和是否沿着索引查?5. 常见的查询优化6. 缓存优化7. 读写分离8. mysql 的分库分表9. EXPLAIN使用五、索引及优化1. 索引的作用2. 索引的分类3. 索引的优点(查的快)4. 索引的缺点(增删改慢)5. 哪些情况.

2020-07-26 18:40:11 371

原创 【总结】数据库基础

该文章为知识总结的文章,如果是初学者,建议先从专栏学习:数据库专栏文章目录一、能简单介绍一下什么是Mysql吗?二、SQL 的分类三、数据库三大范式1. 第一范式2. 第二范式3. 第三范式4. 总结四、事务的简介五、事务的特性1. 原子性2. 一致性3. 隔离性4. 持久性六、并发事务出现的问题七、事务隔离级别1. 四个隔离级别八、数据库锁和并发策略1. 常见的锁2. 页级锁3. 乐观锁4. 悲观锁5. InnoDB锁算法九、给定业务场景说明设计数据库的思路十、说一下什么是池化设计十一、一条SQL语.

2020-07-26 18:38:24 108 2

原创 【总结】ThreadLocal

文章目录简介内存泄漏问题简介threadlocal在线程间是隔离的,不共享,用于存储线程的变量即使多个线程使用同一个ThreadLocal,也只能访问自己的属性ThreadLocal是使用的Key/Value的结构实现,内部有一个ThreadLocalMap内存泄漏问题ThreadLocal 从理论上讲并不是用来解决多线程并发问题的,因为根本不存在多线程竞争。在一些场景尤其是使用线程池)下,线程不会关闭,由于 ThreadLocal.ThreadLocalMap 的底层数据结构导致

2020-07-12 18:48:41 138 1

原创 【总结】JUC并发包

该文章为面试精华版,如果是初学者,建议学习专栏:Java并发专栏Java并发需要结合JVM以及操作系统的相关知识,建议先学习这两个部分:JVM专栏 和 操作系统专栏文章目录1. CountDownLatch2. CyclicBarrier3. Semaphore4. FutureTask5. ForkJoinForkJoinPoolForkJoinTask6. Exchange7. Condition8. StampedLock9. ReentrantReadWriteLock读写锁10. 锁的.

2020-07-12 18:46:08 849 3

原创 【总结】Java内存模型

该文章为面试精华版,如果是初学者,建议学习专栏:Java并发专栏Java并发需要结合JVM以及操作系统的相关知识,建议先学习这两个部分:JVM专栏 和 操作系统专栏文章目录一、Java内存模型JMM二、内存间交互操作三、内存模型三大特性原子性可见性有序性四、重排序五、happens-before原则六、volatitle1. volatitle变量为何立即可见?2. 如何禁止重排序优化?3. 和synchronized的区别?七、单例模式1. 饿汉式2. **普通的懒汉式**3. 同步方法的懒汉.

2020-07-12 18:44:37 134 1

原创 【总结】Java并发实现原理

该文章为面试精华版,如果是初学者,建议学习专栏:Java并发专栏Java并发需要结合JVM以及操作系统的相关知识,建议先学习这两个部分:JVM专栏 和 操作系统专栏文章目录1. 类锁和对象锁的区别2. synchronize底层实现原理3. 什么是锁重入?4. 为什么会对synchronized嗤之以鼻4. 锁优化5. 自旋锁和自适应自旋锁6. 锁消除7. 锁粗化8. 锁膨胀和锁降级9. 偏向锁10. 轻量级锁10. 重量级锁11. ReentrantLock12. synchronize和Re.

2020-07-12 18:42:49 494 1

原创 【总结】Java并发基础

该文章为面试精华版,如果是初学者,建议学习专栏:Java并发专栏Java并发需要结合JVM以及操作系统的相关知识,建议先学习这两个部分:JVM专栏 和 操作系统专栏文章目录1. 进程和线程的区别2. start() 方法和run()方法的区别3. JAVA 线程实现/创建方式4. 如何实现处理线程的返回值5. 线程的状态6.sleep和wait方法的差异7. notify 和 notifyAll的区别8. 守护线程机制9. 中断机制InterruptedExceptioninterrupted(.

2020-07-12 18:41:21 196 1

原创 【总结】CAS

该文章为面试精华版,如果是初学者,建议学习专栏:Java并发专栏Java并发需要结合JVM以及操作系统的相关知识,建议先学习这两个部分:JVM专栏 和 操作系统专栏文章目录一、CAS原理及缺陷二、ABA问题及解决三、atomic类四、Unsafe类一、CAS原理及缺陷原理:CAS机制当中使用了3个基本操作数:内存地址V,旧的预期值A,要修改的新值B。更新一个变量的时候,只有当变量的预期值A和内存地址V当中的实际值相同时,才会将内存地址V对应的值修改为B。从思想上来说,Syn.

2020-07-12 18:40:31 171 1

空空如也

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

TA关注的人

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