<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[abfwaaf的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/abfwaaf</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; abfwaaf]]></copyright><item><title><![CDATA[JUC相关知识(下)]]></title><link>https://blog.youkuaiyun.com/abfwaaf/article/details/155914908</link><guid>https://blog.youkuaiyun.com/abfwaaf/article/details/155914908</guid><author>abfwaaf</author><pubDate>Thu, 05 Feb 2026 10:18:35 +0800</pubDate><description><![CDATA[这是线程池的组件，包含线程池，阻塞队列，生产者。接下来我们一个个的来自定义创建拒绝策略是任务生产者当阻塞队列已满并且线程池中的线程都没有空闲的时候的一种应对策略。刚刚在上面我们自定义了几种方式，比如死等、超时等待。在JDK中由于拒绝策略也是属于线程池的一部分，因此它是作为线程池实现类ThreadPoolExecutor的静态内部类的，这些拒绝策略内部类的实例作为我们在自定义线程池的时候作为构造参数。上面就是一种拒绝策略，它作为ThreadPoolExecutor的内部类。]]></description><category></category></item><item><title><![CDATA[Java-集合篇八股(不定期更新)]]></title><link>https://blog.youkuaiyun.com/abfwaaf/article/details/154353929</link><guid>https://blog.youkuaiyun.com/abfwaaf/article/details/154353929</guid><author>abfwaaf</author><pubDate>Thu, 27 Nov 2025 18:26:32 +0800</pubDate><description><![CDATA[ArrayList是非线程安全的集合类，Vector是线程安全的集合类，它的设计就是为了应对ArrayList在多线程环境下遇到的问题，只是现在由于性能问题，导致一般不经常使用Vector。LinkedList的底层是双向链表，由于是链表的数据结构，因此它的随机插入和删除操作的效率都很高，尤其是在头节点操作，但是它的随机查询效率相对来说比较低，因为要遍历链表。他们的底层都是使用动态数组实现的，只是在扩容的时候ArrayList是扩大到原来的1.5倍，Vector是扩大到原来的2倍。]]></description><category></category></item><item><title><![CDATA[JUC相关知识(上)]]></title><link>https://blog.youkuaiyun.com/abfwaaf/article/details/152654084</link><guid>https://blog.youkuaiyun.com/abfwaaf/article/details/152654084</guid><author>abfwaaf</author><pubDate>Mon, 03 Nov 2025 16:52:13 +0800</pubDate><description><![CDATA[Java对象头（Object Header）是JVM在内存中为分配的一部分元数据区域，它就像是对象的“身份证”，记录了对象的各种关键运行时信息。一个java对象的结构有和(下面的mark word和klass word的大小是根据JVM的大小来变化的，当JVM是32位的时候，mark word和klass word都是32位)。]]></description><category></category></item><item><title><![CDATA[MYSQL相关知识]]></title><link>https://blog.youkuaiyun.com/abfwaaf/article/details/150531341</link><guid>https://blog.youkuaiyun.com/abfwaaf/article/details/150531341</guid><author>abfwaaf</author><pubDate>Thu, 18 Sep 2025 07:28:21 +0800</pubDate><description><![CDATA[帮助MySQL高效查询数据的数据结构就是索引(index)]]></description><category></category></item><item><title><![CDATA[Java-反射]]></title><link>https://blog.youkuaiyun.com/abfwaaf/article/details/149407145</link><guid>https://blog.youkuaiyun.com/abfwaaf/article/details/149407145</guid><author>abfwaaf</author><pubDate>Tue, 19 Aug 2025 17:43:46 +0800</pubDate><description><![CDATA[什么是反射？它是java提供的一种强大的机制，允许我们在程序运行的时候检查类、接口、字段和方法等等，并且能够动态的操作这些元素我们是通过获取class字节码文件的对象，然后在字节码文件里来获取对象的，下面来说说是怎么获取class对象的。]]></description><category></category></item><item><title><![CDATA[SpringSecurity框架]]></title><link>https://blog.youkuaiyun.com/abfwaaf/article/details/149637152</link><guid>https://blog.youkuaiyun.com/abfwaaf/article/details/149637152</guid><author>abfwaaf</author><pubDate>Mon, 18 Aug 2025 16:13:18 +0800</pubDate><description><![CDATA[springsecurity是spring提供的一个认证授权的框架，那么什么是认证和授权呢？认证（[ɔˌθentɪ'keɪʃn]）：认证的过程就是告诉系统你是谁？当我们用手机时，使用指纹解锁、使用密码解锁，登录游戏的时候要输入账号密码，这些行为都是在告诉系统，我就是这个设备，这个游戏账号的拥有者授权（]]></description><category></category></item><item><title><![CDATA[Java—异常Exception]]></title><link>https://blog.youkuaiyun.com/abfwaaf/article/details/148841543</link><guid>https://blog.youkuaiyun.com/abfwaaf/article/details/148841543</guid><author>abfwaaf</author><pubDate>Wed, 16 Jul 2025 20:24:42 +0800</pubDate><description><![CDATA[Java提供的异常类数量有限，为了能更好的描述我们所遇到的错误，可以自定义异常类1.首先得继承RuntimeException/Exception类如果是自定义的运行时异常，那么继承RuntimeException即可，如果是自定义编译时异常，那么继承Exception即可2.空参构造和有参构造System.out.println("我就不会执行了");]]></description><category></category></item><item><title><![CDATA[Java—Stream流]]></title><link>https://blog.youkuaiyun.com/abfwaaf/article/details/148694550</link><guid>https://blog.youkuaiyun.com/abfwaaf/article/details/148694550</guid><author>abfwaaf</author><pubDate>Tue, 17 Jun 2025 21:24:38 +0800</pubDate><description><![CDATA[toArray()有两种重载形式，上面这种不需要参数的方法，它返回一个Object类型的数组，如果我们要想返回具体的类型，需要使用带参数的toArray方法，如下所示。主要讲一下这个toMap方法，有两个参数，第一个参数是Map的key，第二个是value，这个方法中的匿名内部类和刚刚上面讲的中间方法Map的匿名内部类是一样的。刚刚上面的代码是使用匿名内部类实现的，我们现在看看Lambda表达式的形式，如下所示。这个方法的参数，需要一个具体类型的数组，如下所示，表示泛型是一个具体类型的数组。]]></description><category></category></item><item><title><![CDATA[Java—泛型]]></title><link>https://blog.youkuaiyun.com/abfwaaf/article/details/148655766</link><guid>https://blog.youkuaiyun.com/abfwaaf/article/details/148655766</guid><author>abfwaaf</author><pubDate>Mon, 16 Jun 2025 12:32:16 +0800</pubDate><description><![CDATA[看到这里是不是就明白了泛型是怎么取消了强制类型转换的需要了，原本没有泛型的时候，取出集合中的元素的时候，他不知道要转成什么类型，是我们手动让他装换成我们想要的类型的，有了泛型之后，取出元素的时候他默认就会转成泛型的类型，就和刚刚上面的ArrayList的源码一样。List是一个典型的泛型类，我们使用自己的实现类来实现它，并确定好了泛型的类型，那么我们在使用这个实现类中的方法的时候，编译器就会自动给我们提示需要的参数类型是我们确定好的具体类型，而不是泛型类型。我们在创建类的时候就确定好泛型的类型，用来。]]></description><category></category></item><item><title><![CDATA[Java多线程—线程池]]></title><link>https://blog.youkuaiyun.com/abfwaaf/article/details/148517116</link><guid>https://blog.youkuaiyun.com/abfwaaf/article/details/148517116</guid><author>abfwaaf</author><pubDate>Wed, 11 Jun 2025 20:53:22 +0800</pubDate><description><![CDATA[我们在上面的快速上手中采用Executors工具类来创建的线程池，我们也能创建自定义的线程池，创建类并通过构造方法的参数来初始化这个线程池，下面来介绍下这个方法的各种参数。为了方便理解各个参数的意义，这里我们举个例子来介绍：假设有个餐厅，餐厅里有三个正式员工和三个临时员工，正式员工永远都不会被开除，临时员工如果餐厅一直没有顾客，那就会被开除。]]></description><category></category></item><item><title><![CDATA[RabbitMQ深层浅讲【通俗易懂】]]></title><link>https://blog.youkuaiyun.com/abfwaaf/article/details/142906922</link><guid>https://blog.youkuaiyun.com/abfwaaf/article/details/142906922</guid><author>abfwaaf</author><pubDate>Sat, 19 Oct 2024 13:29:09 +0800</pubDate><description><![CDATA[生产者发送消息时指定一个时间，消费者不会立即收到该消息，而是在指定时间之后才会收到消息这有什么应用场景呢？]]></description><category></category></item><item><title><![CDATA[MQ快速入门【详细】个人笔记 讲解通俗易懂]]></title><link>https://blog.youkuaiyun.com/abfwaaf/article/details/142636738</link><guid>https://blog.youkuaiyun.com/abfwaaf/article/details/142636738</guid><author>abfwaaf</author><pubDate>Sun, 13 Oct 2024 15:53:31 +0800</pubDate><description><![CDATA[同步通讯——打电话异步通讯——发微信。]]></description><category></category></item><item><title><![CDATA[docker常见命令]]></title><link>https://blog.youkuaiyun.com/abfwaaf/article/details/142526432</link><guid>https://blog.youkuaiyun.com/abfwaaf/article/details/142526432</guid><author>abfwaaf</author><pubDate>Sun, 29 Sep 2024 14:06:27 +0800</pubDate><description><![CDATA[例如上面的图，在某个docker容器内有一个文件目录，其中有一个文件是html，然后在数据卷层创建一个html文件，那么当容器内的html文件挂载到数据卷的html文件上之后，这个数据卷就会在宿主机的文件系统中关联一个html文件，注意，宿主机的这个关联文件目录是有规定的，必须是在/var/lib/docker/volume下，那么此时我们就可以通过操作宿主机的这个关联文件来间接操作容器内部文件了。]]></description><category></category></item><item><title><![CDATA[Linux-文件的压缩、解压]]></title><link>https://blog.youkuaiyun.com/abfwaaf/article/details/142441677</link><guid>https://blog.youkuaiyun.com/abfwaaf/article/details/142441677</guid><author>abfwaaf</author><pubDate>Mon, 23 Sep 2024 00:16:00 +0800</pubDate><description><![CDATA[针对这两种格式，使用tar命令均可以进行压缩和解压的操作语法格式：tar [-c -v -x -f -z -C] 参数1 参数2 ... 参数n。]]></description><category></category></item><item><title><![CDATA[Linux-环境变量]]></title><link>https://blog.youkuaiyun.com/abfwaaf/article/details/142437552</link><guid>https://blog.youkuaiyun.com/abfwaaf/article/details/142437552</guid><author>abfwaaf</author><pubDate>Sun, 22 Sep 2024 18:41:44 +0800</pubDate><description><![CDATA[假如我们现在来自定义一个可执行文件在root目录下创建一个新的文件夹myenv在muenv目录下，创建一个mkhaha文件，并进行编辑，让其输出“哈哈哈哈哈”然后修改下该文件的权限，添加上可执行权限然后在myenv这个目录下，运行mkhaha文件，可以看到输出了“哈哈哈哈哈”那么如果我想让其在任何目录下都可以来执行这个文件，那么该怎么配置呢？我们只需要把这个文件的目录，配置到PATH缓环境变量中就行用vi编辑器打开上面说的指定的文件夹然后编辑如上内容注意，上面的内容表示，我要给原来的PATH。]]></description><category></category></item><item><title><![CDATA[Linux的root用户]]></title><link>https://blog.youkuaiyun.com/abfwaaf/article/details/142316178</link><guid>https://blog.youkuaiyun.com/abfwaaf/article/details/142316178</guid><author>abfwaaf</author><pubDate>Wed, 18 Sep 2024 18:29:34 +0800</pubDate><description><![CDATA[Linux的root用户拥有最大的权限，普通用户只有在自己的HOME目录下才有各种权限，出了HOME目录之后就没有权限了，比如在HOME目录下创建文件是可以的，但是要在根目录下创建文件就不被允许。]]></description><category></category></item><item><title><![CDATA[Linux入门]]></title><link>https://blog.youkuaiyun.com/abfwaaf/article/details/142214051</link><guid>https://blog.youkuaiyun.com/abfwaaf/article/details/142214051</guid><author>abfwaaf</author><pubDate>Tue, 17 Sep 2024 15:14:52 +0800</pubDate><description><![CDATA[我们都知道Linux作为一个操作系统而闻名，由于其稳定性，安全性和低成本，一般web项目服务器部署都会放在Linux系统上这个Linux内核作为Linux操作系统的核心，它本身是开源的，任何人都可以获取并且使用，在此基础上，再加上系统级应用程序，就成了Linux发行版，市面上的较热门的发行版，如ubuntu，centOS等等，这里是不是就理解了Linux为何有这么多的版本了？]]></description><category></category></item><item><title><![CDATA[服务网关Gateway快速入门]]></title><link>https://blog.youkuaiyun.com/abfwaaf/article/details/142002131</link><guid>https://blog.youkuaiyun.com/abfwaaf/article/details/142002131</guid><author>abfwaaf</author><pubDate>Fri, 13 Sep 2024 16:20:12 +0800</pubDate><description><![CDATA[网关可以把它理解成坐高铁时的安检，他可以对用户做身份验证，哪些人能通过，哪些人不能通过，都由他决定，如果没有安检，那么高铁的安全性将受到打击，一个微服务没有网关，那么接口都将暴露出来，安全性大打折扣。]]></description><category></category></item><item><title><![CDATA[Feign入门讲解]]></title><link>https://blog.youkuaiyun.com/abfwaaf/article/details/141996200</link><guid>https://blog.youkuaiyun.com/abfwaaf/article/details/141996200</guid><author>abfwaaf</author><pubDate>Sat, 07 Sep 2024 19:05:56 +0800</pubDate><description><![CDATA[之前在讲解服务之间的的时候都是用来发送，但这种方式显得比较冗余，不方便维护，所以现在使用Feign来代替这种方式。]]></description><category></category></item><item><title><![CDATA[Nacos入门]]></title><link>https://blog.youkuaiyun.com/abfwaaf/article/details/141865301</link><guid>https://blog.youkuaiyun.com/abfwaaf/article/details/141865301</guid><author>abfwaaf</author><pubDate>Sat, 07 Sep 2024 10:46:23 +0800</pubDate><description><![CDATA[在上一个博客里讲到了使用eureka来进行，在这一节我们使用另外一个技术来代替eureka实现这个功能，它就是，比起eureka，它的功能更加的全面，可视化界面更加清爽，使用体验较高。]]></description><category></category></item></channel></rss>