<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[crossaspeed的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/crossaspeed</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; crossaspeed]]></copyright><item><title><![CDATA[Nginx配置文件详解]]></title><link>https://blog.youkuaiyun.com/crossaspeed/article/details/159695515</link><guid>https://blog.youkuaiyun.com/crossaspeed/article/details/159695515</guid><author>crossaspeed</author><pubDate>Tue, 31 Mar 2026 21:01:58 +0800</pubDate><description><![CDATA[一个IP地址可以映射多个域名，通常情况下，我们是通过访问域名的方式访问这个网站，通过NGINX，可以让我们知道实际的请求是什么： proxy_pass http://frontend:3000;输入域名，然后在这个巨大的路由这里进行查看，看用户输入的域名跟哪个NGINX配置文件对应，然后进行配置文件的读取，然后进行请求操作。# 监听 IPv4 的 80 端口。真实的网络请求发过来的时候，NGINX启动，读取主配置文件，nginx.conf。# server_name 用来填写域名，如果没有域名那就填写_]]></description><category></category></item><item><title><![CDATA[一致性和高可用]]></title><link>https://blog.youkuaiyun.com/crossaspeed/article/details/158845451</link><guid>https://blog.youkuaiyun.com/crossaspeed/article/details/158845451</guid><author>crossaspeed</author><pubDate>Mon, 09 Mar 2026 15:42:21 +0800</pubDate><description><![CDATA[P是分区容错性，只分布式系统里出现网络分区、节点不通时，依然能对外提供服务的能力。因为网络不可靠，所以分布式系统必须保证P，只能在C和A之间取舍。在分布式系统里：一致性（C）和高可用（A）的取舍，本质上是CAP定理。CP架构：选一致性，丢可用性。]]></description><category></category></item><item><title><![CDATA[线程池的参数的配置因素]]></title><link>https://blog.youkuaiyun.com/crossaspeed/article/details/158737373</link><guid>https://blog.youkuaiyun.com/crossaspeed/article/details/158737373</guid><author>crossaspeed</author><pubDate>Mon, 09 Mar 2026 14:58:32 +0800</pubDate><description><![CDATA[在真实的业务场景下，是如何选择内存大小和CPU核数的？]]></description><category></category></item><item><title><![CDATA[操作系统-内存管理（八股）]]></title><link>https://blog.youkuaiyun.com/crossaspeed/article/details/157976646</link><guid>https://blog.youkuaiyun.com/crossaspeed/article/details/157976646</guid><author>crossaspeed</author><pubDate>Wed, 11 Feb 2026 17:24:45 +0800</pubDate><description><![CDATA[还有虚拟内存可以使得进程对运行内存超过物理内存大小，通过对没有被经常使用到的内存，我们可以把它换出物理内存之外，比如硬盘上的swap区域，只在需要时将数据加载到内存中。有了虚拟内存后，进程只能操作虚拟内存，不能直接操作物理内存，每个进程的虚拟地址空间是相互独立的，进程不能访问其他进程的虚拟地址，这就解决了多进程之间地址冲突的问题。如果没有虚拟内存，程序直接操作物理内存的话，多个进程会相互干扰彼此的内存数据，一个进程可能会访问或修改另一个进行的内存数据，从而破坏了系统的稳定性和安全性。]]></description><category></category></item><item><title><![CDATA[JVM的内存结构]]></title><link>https://blog.youkuaiyun.com/crossaspeed/article/details/157943023</link><guid>https://blog.youkuaiyun.com/crossaspeed/article/details/157943023</guid><author>crossaspeed</author><pubDate>Tue, 10 Feb 2026 17:31:41 +0800</pubDate><description><![CDATA[JVM内存结构分为五大区域：程序计数器，虚拟机栈，本地方法栈，堆，方法区（永久代）（元空间）。线程私有的，作为当前线程的行号指示器，用于记录当前虚拟机正在执行的线程指令地址。程序计数器主要有两个作用：程序计数器是唯一一个不会出现OutOfMemoryError的内存区域，它的生命周期随着现成的创建而创建，随着线程的结束而死亡。Java的虚拟机栈由一个个栈帧组成，而每个栈帧都拥有：局部变量表、操作数栈、动态链接、方法出口信息。每一次函数调用都会有一个对应的栈帧被压入虚拟机栈，每一个函数调用结束后，都会有一个栈]]></description><category></category></item><item><title><![CDATA[MySQL-锁]]></title><link>https://blog.youkuaiyun.com/crossaspeed/article/details/157770436</link><guid>https://blog.youkuaiyun.com/crossaspeed/article/details/157770436</guid><author>crossaspeed</author><pubDate>Thu, 05 Feb 2026 17:09:02 +0800</pubDate><description><![CDATA[Innodb存储引擎实现的行级锁主要有记录锁，间隙锁，临键锁，插入意向锁这些，当我们对记录进行select for update，或者增删改的时候，就会对记录加上行级锁。Innodb实现的行级锁由记录锁、间隙锁、临键锁、插入意向锁。读已提交级别下，没有间隙锁，更新没有带where条件，是全表扫描，那么灰度每一条记录都加上记录锁。在对一张表结构进行修改的时候，MySQL就会对这张表加一个元数据锁，这个元数据锁就是属于表级锁。根据锁的颗粒度不同，MySQL的锁可以分为全局锁，表级锁，行级锁。]]></description><category></category></item><item><title><![CDATA[MySQL-索引]]></title><link>https://blog.youkuaiyun.com/crossaspeed/article/details/157729858</link><guid>https://blog.youkuaiyun.com/crossaspeed/article/details/157729858</guid><author>crossaspeed</author><pubDate>Wed, 04 Feb 2026 15:46:55 +0800</pubDate><description><![CDATA[假设有一个（a，b，c）联合索引，它的存储顺序时先按a排序，在a相同的情况下再按b排序，再b相同的情况下再按c排序。MySQL会从联合索引最左边的索引列开始匹配查询条件，然后依次从最左到右的顺序匹配，如果查询条件没有使用到某个列，那么该列右边的所有列都无法使用走索引。当查询条件使用了某个列，但是该列的值包含范围查询，范围查询的字段额可以用到联合索引，但是在范围查询字段后面的字段无法使用联合索引。]]></description><category></category></item><item><title><![CDATA[Redis的持久化（八股）]]></title><link>https://blog.youkuaiyun.com/crossaspeed/article/details/157687271</link><guid>https://blog.youkuaiyun.com/crossaspeed/article/details/157687271</guid><author>crossaspeed</author><pubDate>Tue, 03 Feb 2026 11:29:14 +0800</pubDate><description><![CDATA[从文件类型，文件恢复速度，安全性会进行区分。本质区别是RDB使用快照进行持久化，AOF是日志。]]></description><category></category></item><item><title><![CDATA[MySQL的MVCC]]></title><link>https://blog.youkuaiyun.com/crossaspeed/article/details/157650156</link><guid>https://blog.youkuaiyun.com/crossaspeed/article/details/157650156</guid><author>crossaspeed</author><pubDate>Mon, 02 Feb 2026 15:47:33 +0800</pubDate><description><![CDATA[通过与历史数据的事务ID进行比较，就可以根据可见性规则进行判断，判断这条记录是否可见，如果可见就直接将这条数据返回个客户端，如果不可见就继续王undo log版本链查找第一个可见的数据。我们每一条记录都有两个隐藏列，一个是事务ID，一个是指向历史数据undo log的指针，然后ReadView有四个字段，分别是创建ReadView的事务ID，活跃事务ID列表，活跃事务ID列表中的最小ID，下一个事务ID。]]></description><category></category></item><item><title><![CDATA[MySQL的事务]]></title><link>https://blog.youkuaiyun.com/crossaspeed/article/details/157646992</link><guid>https://blog.youkuaiyun.com/crossaspeed/article/details/157646992</guid><author>crossaspeed</author><pubDate>Mon, 02 Feb 2026 11:33:33 +0800</pubDate><description><![CDATA[Buffer Pool的脏页会通过后台线程刷盘，即使脏页还没刷盘的时候发生了数据库重启，由于修改操作都记录到了redo log，之前已经提交的记录都不会丢失，重启后通过redo log，恢复脏页数据，从而保证了事物的持久性。针对快照读的话，是通过MVCC机制来解决的，在可重复读隔离级别下，第一次select查询的时候，会生成readview，在第二次执行select查询的时候，会复用这个readview，这样前后两次查询的记录都是一样的，不会读到其他事务更新的操作，这样就不会发生不可重复读的问题了。]]></description><category></category></item><item><title><![CDATA[Spring中的AOP和IOC(八股文）]]></title><link>https://blog.youkuaiyun.com/crossaspeed/article/details/157386620</link><guid>https://blog.youkuaiyun.com/crossaspeed/article/details/157386620</guid><author>crossaspeed</author><pubDate>Mon, 26 Jan 2026 11:29:34 +0800</pubDate><description><![CDATA[在SpringIOC中，控制权由应用程序代码转移到了Spring框架中，Spring框架负责创建对象、管理对象之间的依赖关系、调用对象的方法等操作，应用程序只需要声明需要使用的对象和依赖关系，无需自己负责对象的创建和管理，从而实现了控制反转。在SpringIOC中，容器负责创建和管理对象，容器根据配置文件或者注解中的信息，自动创建和管理对象之间的依赖关系，然后将这些对象注入到应用程序中。依赖注入是指在对象创建的过程中，自动注入该对象所依赖的其他对象，从而构建对象之间的依赖关系。]]></description><category></category></item><item><title><![CDATA[面向对象的三大特征和反射（八股）]]></title><link>https://blog.youkuaiyun.com/crossaspeed/article/details/157296125</link><guid>https://blog.youkuaiyun.com/crossaspeed/article/details/157296125</guid><author>crossaspeed</author><pubDate>Fri, 23 Jan 2026 17:22:18 +0800</pubDate><description><![CDATA[Java提供的一种机制，允许程序咋i运行时动态的获取类的信息，创建对象，调用方法，访问字段等。通过反射，程序可以在运行时查看和操作类的结构（如类的名称，方法，字段，构造方法），甚至动态加载类，反射是Java提供的强大功能，但也可能带来性能开销。子类用有父类对象所有的属性和方法（包括私有方法和私有属性），但是父类中的私有属性和方法子类是无法访问的，只是拥有。如果子类重写了父类的方法，真正执行的是子类覆盖的方法，如果子类没有覆盖父类的方法，执行的是父类的方法。子类可以用自己的方法去实现父类的方法。]]></description><category></category></item><item><title><![CDATA[Java-LinkedList的插入移除方法]]></title><link>https://blog.youkuaiyun.com/crossaspeed/article/details/157294402</link><guid>https://blog.youkuaiyun.com/crossaspeed/article/details/157294402</guid><author>crossaspeed</author><pubDate>Fri, 23 Jan 2026 15:55:36 +0800</pubDate><description><![CDATA[功能：移除链表的第一个元素（首部元素）功能：在链表尾部添加元素。功能：在链表头部添加元素。]]></description><category></category></item><item><title><![CDATA[MySql三大日志——（八股）]]></title><link>https://blog.youkuaiyun.com/crossaspeed/article/details/157021622</link><guid>https://blog.youkuaiyun.com/crossaspeed/article/details/157021622</guid><author>crossaspeed</author><pubDate>Fri, 16 Jan 2026 15:18:53 +0800</pubDate><description><![CDATA[redo log是Innodb存储引擎层的日志，属于物理日志，记录了某个数据页做了什么修改，实现了事物的持久性，主要用于掉电等故障恢复。undo log是Innodb存储引擎层生成的日志，实现了事物的原子性，主要用于事务回滚和MVCC，在事务没提交之前，Innodb会先记录更新前的数据记录undo log中，回滚时利润undo log来进行回滚。binlog是追加写，写满一个文件，就创建一个新的文件继续写，不会覆盖以前的日志，保存的是全量的日志。binlog用于备份恢复，主从复制。]]></description><category></category></item><item><title><![CDATA[操作系统-线程，进程，协程（八股）]]></title><link>https://blog.youkuaiyun.com/crossaspeed/article/details/156979443</link><guid>https://blog.youkuaiyun.com/crossaspeed/article/details/156979443</guid><author>crossaspeed</author><pubDate>Thu, 15 Jan 2026 10:30:31 +0800</pubDate><description><![CDATA[socket通信：前面提到的通信方式只能在本机上进行进程间的通信，如果要实现跨主机进程间通信，就通过socket通信，可以基于TCP或UDP协议的通信方式。共享内存：多个进程可以将共享内存映射奥各自的虚拟地址空间，实现共享数据的读写，不会涉及用户态和内核态之间的数据拷贝。管道通信：无格式的字节流，通信方向是单向的，只能在一个方向上流程，管道分为匿名管道和有名管道。进程间通信方式主要有管道，消息队列，共享内存，信号，信号量socket通信。信号：是一种异步的通知机制，用于用纸进程某个时间已经发生。]]></description><category></category></item><item><title><![CDATA[Java-线程池（八股）]]></title><link>https://blog.youkuaiyun.com/crossaspeed/article/details/156945990</link><guid>https://blog.youkuaiyun.com/crossaspeed/article/details/156945990</guid><author>crossaspeed</author><pubDate>Wed, 14 Jan 2026 15:47:37 +0800</pubDate><description><![CDATA[创建方法：Java原生创建线程池与Spring创建线程池。]]></description><category></category></item><item><title><![CDATA[Java-SpringBoot的启动流程（八股）]]></title><link>https://blog.youkuaiyun.com/crossaspeed/article/details/156937633</link><guid>https://blog.youkuaiyun.com/crossaspeed/article/details/156937633</guid><author>crossaspeed</author><pubDate>Wed, 14 Jan 2026 10:27:16 +0800</pubDate><description><![CDATA[之后刷新上下文，这一步会扫描项目里的Bean并注册到容器，同时处理@EEnableAutoConfiguration注解，加载META-INF/spring.factories里的自动配置类，根据条件注解决定那些配置生效。（命令行参数是什么：格式是。--server.port=8088 --spring.profiles.active=prod 优先级比配置文件的还高）。先初始化SpringApplication,这时候会判断应用类型是Web还是普通环境，确定用哪个应用上下文类。]]></description><category></category></item><item><title><![CDATA[Java-List，Set，Map（八股）]]></title><link>https://blog.youkuaiyun.com/crossaspeed/article/details/156886655</link><guid>https://blog.youkuaiyun.com/crossaspeed/article/details/156886655</guid><author>crossaspeed</author><pubDate>Tue, 13 Jan 2026 10:28:04 +0800</pubDate><description><![CDATA[当添加对象是首先会对key进行hashCode（）运算，再调用HashMap的hash（）方法进行二次哈希，计算出桶下标，如果当前下标内容为空直接添加，不为空时则判断key的hashCode（）是否一致，如果不一致就向后找，直到下标为空时添加，如果一致则进行equals运算判断内容是否相同，相同则将value进行替换。扩容的本质就是解决数组长度不可变的问题，当数组存满的时候，创建新的更大的数组，把原数组元素复制过去，从而实现容量的增长。当需要频繁访问和遍历集合元素的时候，推荐使用ArrayList。]]></description><category></category></item><item><title><![CDATA[IO（八股）]]></title><link>https://blog.youkuaiyun.com/crossaspeed/article/details/156715908</link><guid>https://blog.youkuaiyun.com/crossaspeed/article/details/156715908</guid><author>crossaspeed</author><pubDate>Thu, 08 Jan 2026 11:11:34 +0800</pubDate><description><![CDATA[用户进程发起IO操作后，无需等待任务阶段，直接返回并继续执行；内核会自动完成“等待数据就绪+拷贝完成”的全部工作，完成后通过回调函数/信号主动通知进程。用户进程发起IO操作后，必须等待IO的“等待就绪+数据拷贝”至少一个阶段完成，才能继续执行后续代码；数据拷贝阶段进程一定是阻塞的。同步IO和异步IO的核心区别：在于用户进程是否需要等待这两个阶段完成。非阻塞IO（AIO)]]></description><category></category></item><item><title><![CDATA[死锁（八股）]]></title><link>https://blog.youkuaiyun.com/crossaspeed/article/details/156714907</link><guid>https://blog.youkuaiyun.com/crossaspeed/article/details/156714907</guid><author>crossaspeed</author><pubDate>Thu, 08 Jan 2026 10:35:41 +0800</pubDate><description><![CDATA[在线程中，破坏四个必要条件即可避免线程死锁。]]></description><category></category></item></channel></rss>