<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[weixin_52572813的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/weixin_52572813</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; weixin_52572813]]></copyright><item><title><![CDATA[单向链表的实现（Java版）]]></title><link>https://blog.youkuaiyun.com/weixin_52572813/article/details/133364053</link><guid>https://blog.youkuaiyun.com/weixin_52572813/article/details/133364053</guid><author>weixin_52572813</author><pubDate>Wed, 27 Sep 2023 21:38:15 +0800</pubDate><description><![CDATA[头插法：将新节点添加至链表头部。第一步：创建新节点 newNode；第二步：获取原来的头节点 f；第三步：将头节点 first 指向新节点 newNode；第四步：判断原头节点是否为null：为null即新节点 newNode 既是头节点 first 也是尾结点 last ，则将尾结点 last 指向新节点 newNode；否则只需将新节点 newNode 的 next 指向原头节点 f 即可。尾插法：将新节点添加至链表尾部。第一步：创建新节点 newNode；第二步：获取原来的尾结点 l；]]></description><category></category></item><item><title><![CDATA[常问问题（计算机网络版）]]></title><link>https://blog.youkuaiyun.com/weixin_52572813/article/details/133174631</link><guid>https://blog.youkuaiyun.com/weixin_52572813/article/details/133174631</guid><author>weixin_52572813</author><pubDate>Sun, 24 Sep 2023 15:52:55 +0800</pubDate><description><![CDATA[接收方发送的确认报文中的窗口字段可以用来控制发送方窗口的大小，从而影响发送方的发送速率。TCP连接的两方都有固定大小的缓冲区，TCP的接收端只允许发送端发送接收端缓冲区所能容纳的数据数量，一旦超出，则会提示发送方降低发送速率，防止丢包，实现流量控制。随着接受方的确认，发送方将不断向前移动窗口。客户端收到服务器的释放连接数据包后，再向服务器发送确认释放连接的数据包，首部格式为：FIN=0，ACK=1。服务器接收到释放连接的数据包后，向客户端发送确认释放连接的数据包，首部格式为：FIN=0，ACK=1;]]></description><category></category></item><item><title><![CDATA[反转链表（Java版）]]></title><link>https://blog.youkuaiyun.com/weixin_52572813/article/details/132890936</link><guid>https://blog.youkuaiyun.com/weixin_52572813/article/details/132890936</guid><author>weixin_52572813</author><pubDate>Thu, 14 Sep 2023 21:39:03 +0800</pubDate><description><![CDATA[给定一个单链表的头结点pHead(该头节点是有值的，比如在下图，它的val是1)，长度为n，反转该链表后，返回新链表的表头。如当输入链表{1,2,3}时，经反转后，原链表变为{3,2,1}，所以对应的输出为{3,2,1}。要求：空间复杂度O(1) ，时间复杂度O(n)。数据范围： 0≤ n ≤1000。]]></description><category></category></item><item><title><![CDATA[Java类加载机制（通俗易懂版）]]></title><link>https://blog.youkuaiyun.com/weixin_52572813/article/details/132815063</link><guid>https://blog.youkuaiyun.com/weixin_52572813/article/details/132815063</guid><author>weixin_52572813</author><pubDate>Mon, 11 Sep 2023 21:49:03 +0800</pubDate><description><![CDATA[类是在运行期间第一次使用时，被类加载器动态加载至JVM。JVM不会一次性加载所有类。因为如果一次性加载，那么会占用很多的内存。Java类加载机制是指在Java程序运行时，将类文件加载到内存中的一系列步骤。Java的类加载机制遵循着“按需加载”的原则，也就是说，只有在需要用到某个类的时候，才会将这个类的相关信息加载到内存中。这种“按需加载”的设计使得Java程序具备了很好的灵活性和效率。]]></description><category></category></item><item><title><![CDATA[Seata（详细配置版）]]></title><link>https://blog.youkuaiyun.com/weixin_52572813/article/details/132804435</link><guid>https://blog.youkuaiyun.com/weixin_52572813/article/details/132804435</guid><author>weixin_52572813</author><pubDate>Mon, 11 Sep 2023 17:45:30 +0800</pubDate><description><![CDATA[Seata 是一款开源的分布式事务解决方案，致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式，为用户打造一站式的分布式解决方案。]]></description><category></category></item><item><title><![CDATA[java.util包下的集合框架]]></title><link>https://blog.youkuaiyun.com/weixin_52572813/article/details/132780307</link><guid>https://blog.youkuaiyun.com/weixin_52572813/article/details/132780307</guid><author>weixin_52572813</author><pubDate>Sat, 09 Sep 2023 22:28:16 +0800</pubDate><description><![CDATA[集合是一个放数据容器，它主要包括Collection接口类集合和Map接口类集合。（1）集合只能存放对象，Java中每一种基本数据类型都有对应的引用类型。例如在集合中存储一个int型数据时，要先自动转换成Integer类后再存入；（2）集合存放的是对对象的引用，对象本身还是存放在堆内存中；（3）集合可以存放不同类型、不限数量的数据类型。]]></description><category></category></item><item><title><![CDATA[Spring Boot集成Swagger]]></title><link>https://blog.youkuaiyun.com/weixin_52572813/article/details/132724419</link><guid>https://blog.youkuaiyun.com/weixin_52572813/article/details/132724419</guid><author>weixin_52572813</author><pubDate>Thu, 07 Sep 2023 12:48:03 +0800</pubDate><description><![CDATA[Swagger 是一个规范和完整的框架，用于生成、描述、调用和可视化RESTful风格的web服务的接口文档。目前的项目基本都是前后端分离，后端为前端提供接口的同时，还需同时提供接口的说明文档。但我们的代码总是会根据实际情况来实时更新，这个时候有可能会忘记更新接口的说明文档，造成一些不必要的问题。]]></description><category></category></item><item><title><![CDATA[进程、权限（Linux版）]]></title><link>https://blog.youkuaiyun.com/weixin_52572813/article/details/132533505</link><guid>https://blog.youkuaiyun.com/weixin_52572813/article/details/132533505</guid><author>weixin_52572813</author><pubDate>Mon, 28 Aug 2023 16:20:36 +0800</pubDate><description><![CDATA[打印不同格式的时间或日期，以及要根据时间和日期执行操作，也可以使用命令设置固定的格式，在类UNIX系统中，日期被存储为一个整数，1970年1月1日0时0分0秒起流逝的秒数。（2）free：可以显示当前系统未使用的和已使用的内存数目，还可以显示被内核使用的内存缓冲区；chown命令改变某个文件或目录的所有者和所属的组，该命令可以向某个用户授权，使该用户变成指定文件的所有者或者改变文件所属的组。命令一次显示一屏文本，满屏后停下来，并且在屏幕的底部出现一个提示信息，给出至今己显示的该文件的百分比。]]></description><category></category></item><item><title><![CDATA[Linux基本命令]]></title><link>https://blog.youkuaiyun.com/weixin_52572813/article/details/132525711</link><guid>https://blog.youkuaiyun.com/weixin_52572813/article/details/132525711</guid><author>weixin_52572813</author><pubDate>Sun, 27 Aug 2023 21:16:04 +0800</pubDate><description><![CDATA[（1）Linux的基本操作命令。如：ls、cd、uname、pwd；（2）Linux的基本命令对文件的管理。如：touch、mkdir、cp、rmdir、rm、mv、tar。（3）要注意的时tar命令的使用，因为参数较多，在参数的下达中，c/x/t/r仅能存在一个，不可同时存在，因为不可能同时压缩与解压缩。]]></description><category></category></item><item><title><![CDATA[消息中间件之RocketMQ]]></title><link>https://blog.youkuaiyun.com/weixin_52572813/article/details/132515688</link><guid>https://blog.youkuaiyun.com/weixin_52572813/article/details/132515688</guid><author>weixin_52572813</author><pubDate>Sat, 26 Aug 2023 22:50:10 +0800</pubDate><description><![CDATA[注册邮件，发送短信写入消息队列后，直接返回，因此写入消息队列的速度很快，基本可以忽略，因此架构改变后，系统的吞吐量大大提高了。：为了提高性能和吞吐量，引入了Message Queue，一个Topic可以设置一个或多个Message Queue，这样消息就可以并行往各个Message Queue发送消息，消费者也可以并行的从多个；在创建一个接收消息的RocketMQSeceiveTest2类，对这两个接收消息的类都加上下面的代码，再去测试时，我们会看到两个消费者消费的消息数量是对等的，都是5条。]]></description><category></category></item><item><title><![CDATA[常用SQL语法（MySQL版）]]></title><link>https://blog.youkuaiyun.com/weixin_52572813/article/details/132482536</link><guid>https://blog.youkuaiyun.com/weixin_52572813/article/details/132482536</guid><author>weixin_52572813</author><pubDate>Thu, 24 Aug 2023 22:27:33 +0800</pubDate><description><![CDATA[DELETE 语句用于删除数据表中现有的记录。表（Table）是以行和列形式组织的数据的集合，表被创建以后，列数是固定的，但是行数可以改变。GROUP BY 子句用来根据指定的字段对结果集（选取的数据）进行分组，如果某些记录的指定字段具有相同的值，那么它们将被合并为一条数据。LIKE 用于在 WHERE 语句中进行模糊匹配，它会将给定的匹配模式和某个字段进行比较，匹配成功则选取，否则不选取。DISTINCT 关键字需要和 SELECT 语句一起使用，用来去除结果集中所有重复的记录，仅保留唯一的一条记录。]]></description><category></category></item><item><title><![CDATA[ThreadLocal]]></title><link>https://blog.youkuaiyun.com/weixin_52572813/article/details/132437258</link><guid>https://blog.youkuaiyun.com/weixin_52572813/article/details/132437258</guid><author>weixin_52572813</author><pubDate>Tue, 22 Aug 2023 22:30:59 +0800</pubDate><description><![CDATA[ThreadLocal被称为线程局部变量，用于在线程中保存数据。由于在ThreadLocal中保存的数据仅属于当前线程，所以该变量对其他线程而言是隔离的，也就是说该变量是当前线程独有的变量。ThreadLocal用于在同一个线程间，在不同的类和方法之间共享数据的的场景，也可以用于在不同线程间隔离数据的场景。ThreadLocal利用Thread中的来进行数据存储。示例1：创建两个线程// 线程局部变量// 线程1@Override。]]></description><category></category></item><item><title><![CDATA[系统架构的演变]]></title><link>https://blog.youkuaiyun.com/weixin_52572813/article/details/132414695</link><guid>https://blog.youkuaiyun.com/weixin_52572813/article/details/132414695</guid><author>weixin_52572813</author><pubDate>Mon, 21 Aug 2023 21:30:54 +0800</pubDate><description><![CDATA[随着互联网的发展，网站应用的规模不断扩大，常规的应用架构已无法应对，分布式服务架构以及微服务架构势在必行，必需一个治理系统确保架构有条不紊的演进。单体应用架构 ===> 垂直应用架构 ===> 分布式架构 ===> SOA架构 ===> 微服务架构 ===> 悄然兴起的Service Mesh(服务网格化)。]]></description><category></category></item><item><title><![CDATA[Java 8特性]]></title><link>https://blog.youkuaiyun.com/weixin_52572813/article/details/132390696</link><guid>https://blog.youkuaiyun.com/weixin_52572813/article/details/132390696</guid><author>weixin_52572813</author><pubDate>Sun, 20 Aug 2023 15:40:40 +0800</pubDate><description><![CDATA[1、Java 8中，接口中除了抽象方法外，还可以定义default默认方法和static静态方法。2、Java 8支持使用Lambda表达式，实现函数式编程风格。3、函数式接口（2）通过链式编程，使得它可以方便地对数据进行链式处理；（3）方法参数都是函数式接口类型；（4）一个 Stream 只能操作一次，操作完就关闭了，继续使用这个 Stream 会报错；（5）Stream 不保存数据，不改变数据源。4、Java 8在java.time 包下包含一个全新的日期和时间API。]]></description><category></category></item><item><title><![CDATA[synchronized实现原理]]></title><link>https://blog.youkuaiyun.com/weixin_52572813/article/details/132383150</link><guid>https://blog.youkuaiyun.com/weixin_52572813/article/details/132383150</guid><author>weixin_52572813</author><pubDate>Sat, 19 Aug 2023 21:23:15 +0800</pubDate><description><![CDATA[否则说明多个线程竞争该对象的锁，轻量级锁就要升级为重量级锁，lock标志位的状态值变为“10”，Mark Word中存储的就是指向重量级锁（互斥量）的指针，后面等待锁的线程也要进入阻塞状态。因此，这种依赖于操作系统互斥锁所实现的锁，称之为“重量级锁”。（1）在代码进入同步块的时候，如果对象锁状态为无锁状态（lock标志位“01”，biased_lock标志位“0”），虚拟机首先将在当前线程的栈帧中建立一个名为锁记录（Lock Record）的空间，用于存储锁对象目前的Mark Word的拷贝。]]></description><category></category></item><item><title><![CDATA[Spring Boot集成Shiro]]></title><link>https://blog.youkuaiyun.com/weixin_52572813/article/details/132351502</link><guid>https://blog.youkuaiyun.com/weixin_52572813/article/details/132351502</guid><author>weixin_52572813</author><pubDate>Fri, 18 Aug 2023 20:21:03 +0800</pubDate><description><![CDATA[Shiro是apache旗下一个开源框架，它将软件系统的安全认证相关的功能抽取出来，实现用户身份 认证、权限授权、加密、会话管理等功能，组成了一个通用的安全认证框架。本篇博客将使用Spring Boot框架集成Shiro，同时结合mybatis框架实现用户的认证以及授权功能。]]></description><category></category></item><item><title><![CDATA[Redis（相关概念版）]]></title><link>https://blog.youkuaiyun.com/weixin_52572813/article/details/132328480</link><guid>https://blog.youkuaiyun.com/weixin_52572813/article/details/132328480</guid><author>weixin_52572813</author><pubDate>Wed, 16 Aug 2023 22:35:40 +0800</pubDate><description><![CDATA[乐观锁(Optimistic Lock)顾名思义，就是很乐观，每次去拿数据的时候都认为别人不会修改，所以不会上锁，但是在更新的时候会判断一下在此期间别人有没有去更新这个数据，可以使用版本号等机制。悲观锁(Pessimistic Lock)，顾名思义，就是很悲观，每次去拿数据的时候都认为别人会修改，所以每 次在拿数据的时候都会上锁，这样别人想拿这个数据就会block直到它拿到锁。everysec(每秒)：每秒将缓冲区中的指令同步到AOF文件中，数据准确性较高，性能较高在系统突然宕机的情况下丢失1秒内的数据；]]></description><category></category></item><item><title><![CDATA[Java也能操作ElasticSearch？]]></title><link>https://blog.youkuaiyun.com/weixin_52572813/article/details/132240754</link><guid>https://blog.youkuaiyun.com/weixin_52572813/article/details/132240754</guid><author>weixin_52572813</author><pubDate>Sun, 13 Aug 2023 16:04:36 +0800</pubDate><description><![CDATA[Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎，基于RESTful web接口。Elasticsearch是用Java语言开发的，并作为Apache许可条款下的开放源码发布， 是一种流行的企业级搜索引擎。Elasticsearch用于云计算中，能够达到实时搜索、稳定、可靠、快速、安装使用方便。ES官方提供了各种不同语言的客户端，用来操作ES。这些客户端的本质就是组装DSL语句，通过http请求发送给ES。]]></description><category></category></item><item><title><![CDATA[Spring Boot中的小技术（旧活新整版）]]></title><link>https://blog.youkuaiyun.com/weixin_52572813/article/details/132196983</link><guid>https://blog.youkuaiyun.com/weixin_52572813/article/details/132196983</guid><author>weixin_52572813</author><pubDate>Wed, 09 Aug 2023 22:18:50 +0800</pubDate><description><![CDATA[在项目开发中，绝大多数情况下都是通过同步方式处理业务逻辑的，但是比如批量处理数据，批量发送 邮件，批量发送短信等操作 容易造成阻塞的情况，之前大部分都是使用多线程来完成此类任务而在 Spring 3+版本之后，就已经内置了@Async注解来完美解决这个问题，从而提高效率。”  至客户端浏览器，而控制台会在发出请求后3秒打印输出 “===批量新增===”。执行结果分析：执行效果是在星期三，时间为8月9日的20点56分的每秒钟控制台都会输出“是大眼同学呦！@Async 标识的方法会异步执行。]]></description><category></category></item><item><title><![CDATA[Spring Bean的生命周期]]></title><link>https://blog.youkuaiyun.com/weixin_52572813/article/details/132134045</link><guid>https://blog.youkuaiyun.com/weixin_52572813/article/details/132134045</guid><author>weixin_52572813</author><pubDate>Sun, 06 Aug 2023 20:09:30 +0800</pubDate><description><![CDATA[Bean被实例化后，到最终缓存到名为singletonObjects单例池之前，中间会经过Bean的初始化过程， 例如：属性的填充、初始方法init的执行等，其中有一个对外进行扩展的点BeanPostProcessor，我们称为Bean后处理。（1）Bean的实例化阶段：Spring框架会取出BeanDefinition的信息进行判断当前Bean的范围是否是 singleton的， 是否不是延迟加载的，是否不是FactoryBean等，最终将一个普通的singleton的 Bean通过反射进行实例化；]]></description><category></category></item></channel></rss>