<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[aaa_hao的博客]]></title><description><![CDATA[优秀的峡谷召唤师，恋爱单排玩家，全网换头像第一人，自我否认先驱...]]></description><link>https://blog.youkuaiyun.com/aaa_hao</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; aaa_hao]]></copyright><item><title><![CDATA[【Java多线程】浅谈AQS抽象队列同步器]]></title><link>https://blog.youkuaiyun.com/aaa_hao/article/details/124315515</link><guid>https://blog.youkuaiyun.com/aaa_hao/article/details/124315515</guid><author>aaa_hao</author><pubDate>Thu, 21 Apr 2022 10:32:57 +0800</pubDate><description><![CDATA[文章目录1. AQS 简介2. AQS 的数据结构3. 资源共享模式4. AQS 的主要方法源码解析4.1 获取资源4.2 释放资源
1. AQS 简介
AQS 是 AbstractQueuedSynchronizer 的简称，即「抽象队列同步器」，从字面意思上理解:

抽象：抽象类，只实现一些主要逻辑，有些方法由子类实现；
队列：使用先进先出（FIFO）队列存储数据；
同步：实现了同步的功能。

那 AQS 有什么用呢？AQS 是一个用来构建锁和同步器的框架，使用 AQS 能简单且高效地构造出应用广泛的同]]></description><category></category></item><item><title><![CDATA[【Java多线程】CAS 详解及Java中的实现]]></title><link>https://blog.youkuaiyun.com/aaa_hao/article/details/123699346</link><guid>https://blog.youkuaiyun.com/aaa_hao/article/details/123699346</guid><author>aaa_hao</author><pubDate>Mon, 28 Mar 2022 12:00:00 +0800</pubDate><description><![CDATA[文章目录1. 乐观锁与悲观锁的概念2. CAS 的概念3. Java 实现 CAS 的原理 - Unsafe 类4. 原子操作-AtomicInteger 类源码简析5. CAS实现原子操作的三大问题5.1 ABA 问题5.2 循环时间长开销大5.3 只能保证一个共享变量的原子操作
1. 乐观锁与悲观锁的概念
锁可以从不同的角度分类。其中，乐观锁和悲观锁是一种分类方式。
悲观锁：
悲观锁就是我们常说的锁。对于悲观锁来说，它总是认为每次访问共享资源时会发生冲突，所以必须对每次数据操作加上锁，以保证临界区的程序]]></description><category></category></item><item><title><![CDATA[【Java多线程】Synchronized关键字 & 锁]]></title><link>https://blog.youkuaiyun.com/aaa_hao/article/details/123692527</link><guid>https://blog.youkuaiyun.com/aaa_hao/article/details/123692527</guid><author>aaa_hao</author><pubDate>Sun, 27 Mar 2022 09:30:00 +0800</pubDate><description><![CDATA[文章目录1. Synchronized 关键字2. 几种锁2.1 Java 对象头2.2 偏向锁撤销偏向锁2.3 轻量级锁轻量级锁的加锁2.4 重量级锁2.5 锁的升级流程总结2.6 各种锁的优缺点对比
Java 多线程的锁都是基于对象的，Java 中的每一个对象都可以作为一个锁。
有一点需要注意的是，我们常听到的类锁其实也是对象锁。
Java 类只有一个 Class 对象（可以有多个实例对象，多个实例共享这个 Class 对象），而 Class 对象也是特殊的 Java 对象。所以我们常说的类锁，其实就是]]></description><category></category></item><item><title><![CDATA[【Java多线程】volatile关键字：只是会用可远远不够~~~]]></title><link>https://blog.youkuaiyun.com/aaa_hao/article/details/123687970</link><guid>https://blog.youkuaiyun.com/aaa_hao/article/details/123687970</guid><author>aaa_hao</author><pubDate>Sat, 26 Mar 2022 09:00:00 +0800</pubDate><description><![CDATA[文章目录1. 几个基本概念1.1 内存可见性1.2 重排序1.3 happens-before 规则2. volatile 的内存语义2.1 内存可见性volatile 是如何来保证可见性的呢（底层）？2.2 禁止重排序3. volatile 的用途
volatile 在 Java 程序员日常开发中可以说是相当常见的了，很多程序员在遇到多线程操作共享变量的场景都会无脑给变量上个 volatile，一把梭哈！但是只是会用，不去了解一下它到底是怎么保障我们多线程程序并发安全的，这怎么够呢？这篇文章就来带你掀开 ]]></description><category></category></item><item><title><![CDATA[【Java多线程】Java内存模型到底是啥？跟Java内存结构是什么关系？]]></title><link>https://blog.youkuaiyun.com/aaa_hao/article/details/123686406</link><guid>https://blog.youkuaiyun.com/aaa_hao/article/details/123686406</guid><author>aaa_hao</author><pubDate>Fri, 25 Mar 2022 09:00:00 +0800</pubDate><description><![CDATA[文章目录一、Java内存模型（JMM）1. 并发编程模型的两个关键问题2. Java 内存模型的抽象结构2.1 运行时内存的划分（Java 内存结构）2.2 既然堆是共享的，为什么在堆中会有内存不可见问题？2.3 JMM 与 Java 内存区域的区别与联系二、重排序与 happens-before1. 什么是重排序？2. 顺序一致性模型与 JMM 的保证2.1 数据竞争与顺序一致性2.2 顺序一致性模型2.3 JMM 中同步程序的顺序一致性效果2.4 JMM 中未同步程序的顺序一致性效果3. happens]]></description><category></category></item><item><title><![CDATA[【Java多线程】你知道实现Java线程间通信有多少种方法吗？]]></title><link>https://blog.youkuaiyun.com/aaa_hao/article/details/123685742</link><guid>https://blog.youkuaiyun.com/aaa_hao/article/details/123685742</guid><author>aaa_hao</author><pubDate>Thu, 24 Mar 2022 08:00:00 +0800</pubDate><description><![CDATA[文章目录1. 锁与同步2. 等待/通知机制3. 信号量4. 管道5. 其它通信相关5.1 join() 方法5.2 sleep() 方法sleep() 与 wait() 的区别5.3 ThreadLocal 类5.4 InheritableThreadLocal
合理地使用 Java 多线程可以更好地利用服务器资源。一般来讲，线程内部有自己私有的线程上下文，互不干扰。但是当我们需要多个线程之间相互协作的时候，就需要掌握 Java 线程的通信方式。下文将介绍 Java 线程之间的几种通信机制和原理。
1. 锁]]></description><category></category></item><item><title><![CDATA[【Java多线程】Java线程状态及转换方法详解]]></title><link>https://blog.youkuaiyun.com/aaa_hao/article/details/123685262</link><guid>https://blog.youkuaiyun.com/aaa_hao/article/details/123685262</guid><author>aaa_hao</author><pubDate>Wed, 23 Mar 2022 14:28:36 +0800</pubDate><description><![CDATA[文章目录1. 现代操作系统中的线程状态及转换（5种）2. Java 线程状态（6种）2.1 NEW 创建2.2 RUNNABLE 运行2.3 BLOCKED 阻塞2.4 WAITING 等待2.5 TIMED_WAITING 超时等待2.6 TERMINATED 终止3. Java 线程状态转换3.1 BLOCKED 与 RUNNABLE 转换3.2 WAITING 与 RUNNABLE 转换3.3 TIMED_WAITING与RUNNABLE状态转换3.4 线程中断
在学习Java多线程时，总是被这么多种]]></description><category></category></item><item><title><![CDATA[【单片机】基于普中A2型51单片机的流水彩灯设计]]></title><link>https://blog.youkuaiyun.com/aaa_hao/article/details/123421775</link><guid>https://blog.youkuaiyun.com/aaa_hao/article/details/123421775</guid><author>aaa_hao</author><pubDate>Sun, 13 Mar 2022 00:30:00 +0800</pubDate><description><![CDATA[文章目录一、 实验设计思路二、 实验仪器三、 实验原理四、 实验流程图五、 实验代码六、 实验结论与心得
一、 实验设计思路
利用四个独立按键实现开发板上的八颗led灯以六种不同的跑马灯样式呈现出来。
二、 实验仪器

电脑
51单片机及开发板
KeilC51以及代码烧录软件

三、 实验原理


独立按键工作原理

按键是一种电子开关，使用时轻轻按开关按钮就可使开关接通，当松开手时,开关断开。按键未按下去时，GPIO 口有上拉电阻，所以默认检测到的为高电平。按键按下去时，GPIO口检测到的为低电平。通过判]]></description><category></category></item><item><title><![CDATA[【设计模式】大意了，原来单例模式的写法这么多~]]></title><link>https://blog.youkuaiyun.com/aaa_hao/article/details/123421525</link><guid>https://blog.youkuaiyun.com/aaa_hao/article/details/123421525</guid><author>aaa_hao</author><pubDate>Sat, 12 Mar 2022 09:00:00 +0800</pubDate><description><![CDATA[文章目录单例设计模式1. 模式中包括的类2. UML图3. 功能及应用场景4. 基本示例（1）饿汉式（2）懒汉式（3）单例模式的最佳方式——枚举式单例（饿汉）（4）源码中的使用

初次接触单例模式的时候，我们都知道单例模式存在 饿汉式 和 懒汉式 两种类型，但是这两种类型可是可以衍生出很多种写法的，这篇文章就带大家看看单例模式的实现有能有多少种！

单例设计模式
单例模式（Singleton Pattern），确保一个类只有一个实例，并提供对它的全局访问点。
在应用程序的整个生命周期中，对象只有一个实例的时]]></description><category></category></item><item><title><![CDATA[【设计模式】简单工厂？工厂方法？抽象工厂？傻傻搞不清]]></title><link>https://blog.youkuaiyun.com/aaa_hao/article/details/123420973</link><guid>https://blog.youkuaiyun.com/aaa_hao/article/details/123420973</guid><author>aaa_hao</author><pubDate>Fri, 11 Mar 2022 11:50:49 +0800</pubDate><description><![CDATA[前言
在刚开始学习设计模式时，工厂设计模式中的简单工厂、工厂方法、抽象工厂可能总是傻傻分不清，今天这篇文章就来帮助你了解一下这三种模式（严格来说，简单工厂并不算一种设计模式）到底是啥？
文章目录前言创造型设计模式1. 简单工厂1.1 模式中包括的类1.2 基本示例1.3 优缺点2. 工厂方法设计模式2.1 模式中包括的类2.2 UML图2.3 功能及应用场景2.4 基本示例2.5 优缺点3. 抽象工厂设计模式3.1 模式中包括的类3.2 UML图3.3 功能及应用场景3.4 基本示例3.5 优缺点3.6 工]]></description><category></category></item><item><title><![CDATA[【手撕Java集合】Map容器概述以及常用子类HashMap、LinkedHashMap详解（附部分源码）]]></title><link>https://blog.youkuaiyun.com/aaa_hao/article/details/123135705</link><guid>https://blog.youkuaiyun.com/aaa_hao/article/details/123135705</guid><author>aaa_hao</author><pubDate>Fri, 25 Feb 2022 16:31:27 +0800</pubDate><description><![CDATA[文章目录一、Map 集合概述1. 什么是 Map？2. Map 和 Collection 的区别3. Map 的结构体系4. Map 的基础功能5. Map 集合常用子类二、HashMap1. HashMap 的属性2. HashMap 的构造器3. put 方法4. resize 方法5. get 方法6. remove 方法三、LinkedHashMap1. LinkedHashMap 的属性2. LinkedHashMap 的构造方法3. newNode 方法4. LinkNodeLast 方法5. ]]></description><category></category></item><item><title><![CDATA[【手撕Java集合】Set 集合常用类详解（附部分源码剖析~~~）]]></title><link>https://blog.youkuaiyun.com/aaa_hao/article/details/122920987</link><guid>https://blog.youkuaiyun.com/aaa_hao/article/details/122920987</guid><author>aaa_hao</author><pubDate>Mon, 14 Feb 2022 11:34:11 +0800</pubDate><description><![CDATA[文章目录1. Set 集合概述2. Set 集合常用子类3. HashSet3.1 HashSet 的属性3.2 HashSet 的构造器3.3 add 方法3.4 remove 方法3.5 遍历3.6 是否包含3.7 总结4. LinkedHashSet5. TreeSet6. 比较 HashSet、LinkedHashSet 和 TreeSet 三者的异同
1. Set 集合概述

Set 集合的特点就是：无序，元素不可重复，至多只有一个null值
2. Set 集合常用子类

HashSet

(无序]]></description><category></category></item><item><title><![CDATA[【密码学】Vigenere 维吉尼亚算法加解密]]></title><link>https://blog.youkuaiyun.com/aaa_hao/article/details/122747243</link><guid>https://blog.youkuaiyun.com/aaa_hao/article/details/122747243</guid><author>aaa_hao</author><pubDate>Sat, 29 Jan 2022 20:26:37 +0800</pubDate><description><![CDATA[实验目的与要求
1、	理解维吉尼亚密码算法原理。
2、	编程实现维吉尼亚密码算法。
实验原理

例：明文为 wearediscovered，密钥为 deceptive，密文为 ZICVTWQNGRZGVTM。
实验内容
采用自己熟悉的编程语言实现维吉尼亚密码算法，正确完成加解密。
实验步骤与结果
根据算法原理可知，维吉尼亚算法的加密和解密过程实际是就是对明文（密文）的每一位根据所给密钥进行移位（做加法/减法）而得出其对应的密文（明文）。
加密：C = P + K (mod 26)
解密：P = (C - K]]></description><category></category></item><item><title><![CDATA[【密码学】扩展欧几里得算法与中国剩余定理]]></title><link>https://blog.youkuaiyun.com/aaa_hao/article/details/122747123</link><guid>https://blog.youkuaiyun.com/aaa_hao/article/details/122747123</guid><author>aaa_hao</author><pubDate>Sat, 29 Jan 2022 20:15:49 +0800</pubDate><description><![CDATA[实验目的与要求

利用扩展欧几里得定理计算乘法逆元。
理解并掌握中国剩余定理。

原理



实验内容

实验步骤与结果
实现本次实验所用的环境为jdk1.8下的Java代码，代码测试结果在最下面。
由于扩展欧几里得定理和中国剩余定理都要基于求最大公因数的方法getGcd()，这里附上相关代码：
	/**
     * 最大公因数计算方法:辗转相除法
     * @param a
     * @param b
     * @return 最大公因数
     */
    public static ]]></description><category></category></item><item><title><![CDATA[【Spring】（8）Spring事务处理详解]]></title><link>https://blog.youkuaiyun.com/aaa_hao/article/details/120933512</link><guid>https://blog.youkuaiyun.com/aaa_hao/article/details/120933512</guid><author>aaa_hao</author><pubDate>Sun, 24 Oct 2021 14:21:48 +0800</pubDate><description><![CDATA[两个月前跟着b站动力节点王鹤老师的Spring框架教程视频学习完了Spring框架，在学习过程中我将视频中涉及的代码都一行一行手敲了一遍，并且把Spring入门相关的资料整理了一下，在这里记录一下我在Spring框架学习过程中的笔记和一些心得，希望能帮助到想要通过文字教程入门Spring这一框架的小伙伴哦！

视频地址：2020最新Spring框架教程【IDEA版】-Spring框架从入门到精通
文章目录Spring 事务1. 问题引出2. Spring 事务管理 API事务管理器接口事务定义接口a. 事.]]></description><category></category></item><item><title><![CDATA[【Spring】（7）整合Spring和MyBatis的流程及要点]]></title><link>https://blog.youkuaiyun.com/aaa_hao/article/details/120842173</link><guid>https://blog.youkuaiyun.com/aaa_hao/article/details/120842173</guid><author>aaa_hao</author><pubDate>Tue, 19 Oct 2021 11:05:52 +0800</pubDate><description><![CDATA[两个月前跟着b站动力节点王鹤老师的Spring框架教程视频学习完了Spring框架，在学习过程中我将视频中涉及的代码都一行一行手敲了一遍，并且把Spring入门相关的资料整理了一下，在这里记录一下我在Spring框架学习过程中的笔记和一些心得，希望能帮助到想要通过文字教程入门Spring这一框架的小伙伴哦！

视频地址：2020最新Spring框架教程【IDEA版】-Spring框架从入门到精通
文章目录整合 Spring 和 MyBatis1. 概述与回顾2. 实现步骤2.1 创建数据库表2.2  配置.]]></description><category></category></item><item><title><![CDATA[【Spring】（6）AOP面向切面编程：使用AspectJ 实现 AOP（干货收藏！）]]></title><link>https://blog.youkuaiyun.com/aaa_hao/article/details/120774500</link><guid>https://blog.youkuaiyun.com/aaa_hao/article/details/120774500</guid><author>aaa_hao</author><pubDate>Thu, 14 Oct 2021 22:57:19 +0800</pubDate><description><![CDATA[两个月前跟着b站动力节点王鹤老师的Spring框架教程视频学习完了Spring框架，在学习过程中我将视频中涉及的代码都一行一行手敲了一遍，并且把Spring入门相关的资料整理了一下，在这里记录一下我在Spring框架学习过程中的笔记和一些心得，希望能帮助到想要通过文字教程入门Spring这一框架的小伙伴哦！

视频地址：2020最新Spring框架教程【IDEA版】-Spring框架从入门到精通
文章目录AspectJ 实现 AOP1. AspectJ 的通知类型2. AspectJ 的切入点表达式3. .]]></description><category></category></item><item><title><![CDATA[【Spring】（5）AOP面向切面编程：谈谈AOP的概念和必要性]]></title><link>https://blog.youkuaiyun.com/aaa_hao/article/details/120774415</link><guid>https://blog.youkuaiyun.com/aaa_hao/article/details/120774415</guid><author>aaa_hao</author><pubDate>Thu, 14 Oct 2021 22:48:10 +0800</pubDate><description><![CDATA[两个月前跟着b站动力节点王鹤老师的Spring框架教程视频学习完了Spring框架，在学习过程中我将视频中涉及的代码都一行一行手敲了一遍，并且把Spring入门相关的资料整理了一下，在这里记录一下我在Spring框架学习过程中的笔记和一些心得，希望能帮助到想要通过文字教程入门Spring这一框架的小伙伴哦！

视频地址：2020最新Spring框架教程【IDEA版】-Spring框架从入门到精通
文章目录AOP 面向切面编程1. 不使用 AOP 的开发方式2. 回顾动态代理3. AOP 简介4. AOP .]]></description><category></category></item><item><title><![CDATA[【Spring】（4）IoC控制反转：一文看懂如何使用注解进行依赖注入(DI)]]></title><link>https://blog.youkuaiyun.com/aaa_hao/article/details/120631565</link><guid>https://blog.youkuaiyun.com/aaa_hao/article/details/120631565</guid><author>aaa_hao</author><pubDate>Thu, 07 Oct 2021 00:14:09 +0800</pubDate><description><![CDATA[两个月前跟着b站动力节点王鹤老师的Spring框架教程视频学习完了Spring框架，在学习过程中我将视频中涉及的代码都一行一行手敲了一遍，并且把Spring入门相关的资料整理了一下，在这里记录一下我在Spring框架学习过程中的笔记和一些心得，希望能帮助到想要通过文字教程入门Spring这一框架的小伙伴哦！

视频地址：2020最新Spring框架教程【IDEA版】-Spring框架从入门到精通
文章目录基于注解的 DI1. 组件扫描器2. 定义 Bean 的注解 @Component3. 简单类型属性注.]]></description><category></category></item><item><title><![CDATA[【Spring】（3）IoC控制反转：如何基于XML文件进行依赖注入(DI)？你可以这样做！]]></title><link>https://blog.youkuaiyun.com/aaa_hao/article/details/120631488</link><guid>https://blog.youkuaiyun.com/aaa_hao/article/details/120631488</guid><author>aaa_hao</author><pubDate>Thu, 07 Oct 2021 00:08:09 +0800</pubDate><description><![CDATA[两个月前跟着b站动力节点王鹤老师的Spring框架教程视频学习完了Spring框架，在学习过程中我将视频中涉及的代码都一行一行手敲了一遍，并且把Spring入门相关的资料整理了一下，在这里记录一下我在Spring框架学习过程中的笔记和一些心得，希望能帮助到想要通过文字教程入门Spring这一框架的小伙伴哦！

视频地址：2020最新Spring框架教程【IDEA版】-Spring框架从入门到精通
文章目录基于 XML 的 DI1. 注入的语法分类1）set 注入简单类型引用类型2）构造注入2. 引用类型属.]]></description><category></category></item></channel></rss>