<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[qq_74475840的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/qq_74475840</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qq_74475840]]></copyright><item><title><![CDATA[SpringCloud微服务练手：Nacos 服务注册发现与配置中心（SpringBoot 2.7 + SpringCloudAlibaba）]]></title><link>https://blog.youkuaiyun.com/qq_74475840/article/details/167284503</link><guid>https://blog.youkuaiyun.com/qq_74475840/article/details/167284503</guid><author>qq_74475840</author><pubDate>Fri, 09 Oct 2026 00:11:44 +0800</pubDate><description><![CDATA[# 一、环境与版本（版本匹配是最大的坑）| 组件 | 版本 || — | — || JDK | 8 || Spring Boot | 2.7.15 || Spring Cloud | 2021.0.5 || Spring Cloud Alibaba | 2021.0.1.0 || Nacos 服务端 | 2.2.x（部署在 192.168.150.101:8848） |版本匹配表一定要对上，配错直接启动报错。最容易被坑的反而不是业务代码，而是。，把这两个理解透，后面用 Nacos 会顺很多。]]></description><category></category></item><item><title><![CDATA[openFeign的简单使用]]></title><link>https://blog.youkuaiyun.com/qq_74475840/article/details/167225662</link><guid>https://blog.youkuaiyun.com/qq_74475840/article/details/167225662</guid><author>qq_74475840</author><pubDate>Wed, 07 Oct 2026 22:36:49 +0800</pubDate><description><![CDATA[步骤 3：新建子模块 2：feign-consumer（消费者，端口为8082，OpenFeign）并写一个controller类：ConsumerController接收请求从而调用feign接口。即可测试ConsumerController是否成功接收请求，从而是否成功调用feign接口。随后写好配置文件和启动类即可，启动类上要加入@EnableFeignClients注解。步骤 2：新建子模块 1：feign-provider（提供者，端口为8081）步骤 1：新建一个空的父工程。]]></description><category></category></item><item><title><![CDATA[Param 类和 VO 类，DTO 类，普通Entity类，都什么区别，分别用到哪些场景]]></title><link>https://blog.youkuaiyun.com/qq_74475840/article/details/163686983</link><guid>https://blog.youkuaiyun.com/qq_74475840/article/details/163686983</guid><author>qq_74475840</author><pubDate>Wed, 12 Aug 2026 09:48:19 +0800</pubDate><description><![CDATA[本文介绍了Java开发中常见的四种数据传输对象分类及其应用场景：1) Entity/PO（数据库实体类）直接映射数据库表结构，包含所有字段；2) Param/Query（查询参数类）专用于接收前端查询条件，包含分页/筛选参数；3) DTO（数据传输对象）用于新增/修改入参和微服务间传输，区分于查询参数；4) VO（视图对象）用于后端返回给前端的数据，包含脱敏后的展示字段。每种类别都有明确的职责划分，Entity操作数据库，Param处理查询条件，DTO承载业务数据，VO负责展示数据，形成清晰的分层架构。]]></description><category></category></item><item><title><![CDATA[XXL-JOB使用步骤（天机学堂版）]]></title><link>https://blog.youkuaiyun.com/qq_74475840/article/details/163669617</link><guid>https://blog.youkuaiyun.com/qq_74475840/article/details/163669617</guid><author>qq_74475840</author><pubDate>Tue, 11 Aug 2026 15:50:01 +0800</pubDate><description><![CDATA[accessToken：访问令牌，在调度中心中配置令牌，所有执行器访问时都必须携带该令牌，否则无法访问。咱们项目的令牌已经配好，就是。5.因为在天机学堂的tj-common模块已经实现了XXL-JOB的自动装配，故只需要引入tj-common模块依赖即可。6.在需要定时任务的服务下的nacos共享配置中加入xxljob的配置。（前两步可省略，课前已准备好，并且已经启动xxl-job服务了）ip和port：当前执行器的ip和端口，无需配置，自动获取。7.创建定时任务类，在具体的方法上加上@XxlJob注解。]]></description><category></category></item><item><title><![CDATA[redis中redis.windows.conf和redis.windows-service.conf文件的区别]]></title><link>https://blog.youkuaiyun.com/qq_74475840/article/details/157806021</link><guid>https://blog.youkuaiyun.com/qq_74475840/article/details/157806021</guid><author>qq_74475840</author><pubDate>Fri, 06 Feb 2026 14:52:02 +0800</pubDate><description><![CDATA[指定Redis最大内存限制，Redis在启动时会把数据加载到内存中，达到最大内存后，Redis会先尝试清除已到期或即将到期的Key，当此方法处理 后，仍然到达最大内存设置，将无法再进行写入操作，但仍然可以进行读取操作。Redis新的vm机制，会把Key存放内存，Value会存放在swap区。由于安装版的Redis服务自启动，是直接通过redis-server.exe启动的，但是，启动时并没有加载Redis的配置文件（redis.windows.conf），导致redis 中bind配置和密码设置不生效。]]></description><category></category></item><item><title><![CDATA[三个常问面试题]]></title><link>https://blog.youkuaiyun.com/qq_74475840/article/details/157710008</link><guid>https://blog.youkuaiyun.com/qq_74475840/article/details/157710008</guid><author>qq_74475840</author><pubDate>Wed, 04 Feb 2026 00:17:43 +0800</pubDate><description><![CDATA[JPA/Hibernate默认使用预编译，天然防注入；2.非受检异常: 默认情况下，Spring对非受检异常（RuntimeException或其子类）进行回滚处理，这意味着当事务方法中抛出这些异常时，事务会回滚。5.跨方法调用事务问题: 如果一个事务方法内部调用另一个方法，而这个被调用的方法没有 @Transactional 注解，这种情况下外层事务可能会失效。1.未捕获异常: 如果一个事务方法中发生了未捕获的异常，并且异常未被处理或传播到事务边界之外，那么事务会失效，所有的数据库操作会回滚。]]></description><category></category></item><item><title><![CDATA[Spring IOC 实现机制]]></title><link>https://blog.youkuaiyun.com/qq_74475840/article/details/157658995</link><guid>https://blog.youkuaiyun.com/qq_74475840/article/details/157658995</guid><author>qq_74475840</author><pubDate>Mon, 02 Feb 2026 22:03:30 +0800</pubDate><description><![CDATA[容器实现：Spring IOC容器是实现IOC的核心，通常使用BeanFactory或ApplicationContext来管理Bean。容器作为工厂负责实例化Bean并管理它们的生命周期，将Bean的实例化过程交给容器来管理。依赖注入：IOC的核心概念是依赖注入，即容器负责管理应用程序组件之间的依赖关系。反射：Spring IOC容器利用Java的反射机制动态地加载类、创建对象实例及调用对象方法，反射允许在运行时检查类、方法、属性等信息，从而实现灵活的对象实例化和管理。]]></description><category></category></item><item><title><![CDATA[两条update语句处理一张表的不同的主键范围的记录，一个＜10，一个＞15，会不会遇到阻塞？底层是为什么的？]]></title><link>https://blog.youkuaiyun.com/qq_74475840/article/details/157569117</link><guid>https://blog.youkuaiyun.com/qq_74475840/article/details/157569117</guid><author>qq_74475840</author><pubDate>Sat, 31 Jan 2026 01:15:04 +0800</pubDate><description><![CDATA[因为如果 update 没有用到索引，在扫描过程中会对索引加锁，所以全表扫描的场景下，所有记录都会被加锁，也就是这条 update 语句产生了 4 个记录锁和 5 个间隙锁，相当于锁住了全表。如果2个范围查询的字段不是索引的话，那就代表 update 没有用到索引，这时候触发了全表扫描，全部索引都会加行级锁，这时候第二条 update 执行的时候，就会阻塞了。第二条 update sql 的话（id >15），锁住的范围是（15，+♾️）不会，因为锁住的范围不一样，不会形成冲突。]]></description><category></category></item><item><title><![CDATA[hashCode和equals]]></title><link>https://blog.youkuaiyun.com/qq_74475840/article/details/157193726</link><guid>https://blog.youkuaiyun.com/qq_74475840/article/details/157193726</guid><author>qq_74475840</author><pubDate>Wed, 21 Jan 2026 04:53:38 +0800</pubDate><description><![CDATA[如果重写equals()必须重写hashCode()，比如在HashMap中，key如果是String类型，String如果只重写了equals（）而没有重写hashcode（）的话，则两个equals()比较为true的key，因为hashcode不同导致两个key没有出现在一个索引上，就会出现map中存在两个相同的key。所以两个对象相等，他们的hashCode和equals一定相等，但是hashCode相等的两个对象未必相等。]]></description><category></category></item><item><title><![CDATA[注解解析的底层实现]]></title><link>https://blog.youkuaiyun.com/qq_74475840/article/details/157189118</link><guid>https://blog.youkuaiyun.com/qq_74475840/article/details/157189118</guid><author>qq_74475840</author><pubDate>Wed, 21 Jan 2026 02:57:13 +0800</pubDate><description><![CDATA[通过 @Retention 元注解可以控制注解的保留策略，当使用 RetentionPolicy.RUNTIME 时，可以在运行时通过反射 API 来解析注解信息。在 JVM 层面，会从字节码文件中读取注解信息，并创建注解的代理对象来获取注解的属性值。2、底层原理：反射机制的核心类是 java.lang.reflect.AnnotatedElement，它是所有可以被注解修饰的元素（如 Class、Method、Field 等）的父接口。注解的解析主要依赖于 Java 的反射机制。]]></description><category></category></item><item><title><![CDATA[为什么Java解释和编译都有？]]></title><link>https://blog.youkuaiyun.com/qq_74475840/article/details/157170418</link><guid>https://blog.youkuaiyun.com/qq_74475840/article/details/157170418</guid><author>qq_74475840</author><pubDate>Tue, 20 Jan 2026 09:26:30 +0800</pubDate><description><![CDATA[解释性：  JVM中一个方法调用计数器，当累计计数大于一定值的时候，就使用JIT进行编译生成机器码文件。否则就是用解释器进行解释执行，然后字节码也是经过解释器进行解释运行的。所以Java既是编译型也是解释性语言，默认采用的是解释器和编译器混合的模式。编译性：  Java源代码首先被编译成字节码，JIT 会把编译过的机器码保存起来,以备下次使用。首先在Java经过编译之后生成字节码文件，接下来进入JVM中，就有两个步骤编译和解释。]]></description><category></category></item><item><title><![CDATA[SELECT语句的执行顺序是固定的，与SQL书写顺序不同]]></title><link>https://blog.youkuaiyun.com/qq_74475840/article/details/148910590</link><guid>https://blog.youkuaiyun.com/qq_74475840/article/details/148910590</guid><author>qq_74475840</author><pubDate>Thu, 26 Jun 2025 02:56:44 +0800</pubDate><description><![CDATA[6. SELECT u.name, COUNT(o.id) AS order_count → 确定返回列并生成别名。◦ 示例：ON u.id = o.user_id 在此阶段过滤不符合连接条件的行。2. JOIN ON u.id = o.user_id → 按ID合并两表数据。◦ 注意：ORDER BY可使用SELECT中的别名（因执行顺序在后）。◦ 处理表连接逻辑（内连接、外连接等），根据连接条件合并数据。◦ 对连接后的结果集应用过滤条件，筛选出符合条件的行。]]></description><category></category></item><item><title><![CDATA[synchronized到底锁定的是什么元素]]></title><link>https://blog.youkuaiyun.com/qq_74475840/article/details/148767317</link><guid>https://blog.youkuaiyun.com/qq_74475840/article/details/148767317</guid><author>qq_74475840</author><pubDate>Thu, 19 Jun 2025 15:12:28 +0800</pubDate><description><![CDATA[synchronized实现了线程同步，让多个线程排队依次获取某个资源，保证数据不会出错。]]></description><category></category></item><item><title><![CDATA[String、StringBuffer、StringBuilder 三者之间的区别]]></title><link>https://blog.youkuaiyun.com/qq_74475840/article/details/148748640</link><guid>https://blog.youkuaiyun.com/qq_74475840/article/details/148748640</guid><author>qq_74475840</author><pubDate>Wed, 18 Jun 2025 21:01:34 +0800</pubDate><description><![CDATA[（2）多线程操作字符串缓冲区下操作大量数据用 StringBuffer；（3）单线程操作字符串缓冲区下操作大量数据用StringBuilder。（1）如果要操作少量的数据用 String；字符串变量（非线程安全）字符串变量（线程安全）]]></description><category></category></item><item><title><![CDATA[JVM 内存区域功能对比表]]></title><link>https://blog.youkuaiyun.com/qq_74475840/article/details/148748362</link><guid>https://blog.youkuaiyun.com/qq_74475840/article/details/148748362</guid><author>qq_74475840</author><pubDate>Wed, 18 Jun 2025 20:44:38 +0800</pubDate><description><![CDATA[【代码】JVM 内存区域功能对比表。]]></description><category></category></item><item><title><![CDATA[自定义注解并实现数据脱敏功能（基于Spring AOP)]]></title><link>https://blog.youkuaiyun.com/qq_74475840/article/details/148741640</link><guid>https://blog.youkuaiyun.com/qq_74475840/article/details/148741640</guid><author>qq_74475840</author><pubDate>Wed, 18 Jun 2025 15:44:09 +0800</pubDate><description><![CDATA[【代码】自定义注解并实现数据脱敏功能（基于Spring AOP)]]></description><category></category></item><item><title><![CDATA[事务的隔离级别有哪些]]></title><link>https://blog.youkuaiyun.com/qq_74475840/article/details/148734726</link><guid>https://blog.youkuaiyun.com/qq_74475840/article/details/148734726</guid><author>qq_74475840</author><pubDate>Wed, 18 Jun 2025 11:00:23 +0800</pubDate><description><![CDATA[按隔离水平高低排序如下：针对不同的隔离级别，并发事务时可能发生的现象也会不同。接下来，举个具体的例子来说明这四种隔离级别，有一张账户余额表，里面有一条账户余额为 100 万的记录。然后有两个并发的事务，事务 A 只负责查询余额，事务 B 则会将我的余额改成 200 万，下面是按照时间顺序执行两个事务的行为：这四种隔离级别具体是如何实现的呢？]]></description><category></category></item><item><title><![CDATA[mysql的是怎么解决并发问题的？]]></title><link>https://blog.youkuaiyun.com/qq_74475840/article/details/148734695</link><guid>https://blog.youkuaiyun.com/qq_74475840/article/details/148734695</guid><author>qq_74475840</author><pubDate>Wed, 18 Jun 2025 10:48:24 +0800</pubDate><description><![CDATA[]]></description><category></category></item><item><title><![CDATA[MySQL可能会出现哪些并发问题]]></title><link>https://blog.youkuaiyun.com/qq_74475840/article/details/148734163</link><guid>https://blog.youkuaiyun.com/qq_74475840/article/details/148734163</guid><author>qq_74475840</author><pubDate>Wed, 18 Jun 2025 10:34:23 +0800</pubDate><description><![CDATA[假设有 A 和 B 这两个事务同时在处理，事务 A 先开始从数据库中读取小林的余额数据，然后再执行更新操作，如果此时事务 A 还没有提交事务，而此时正好事务 B 也从数据库中读取小林的余额数据，那么事务 B 读取到的余额数据是刚才事务 A 更新后的数据，即使没有提交事务。假设有 A 和 B 这两个事务同时在处理，事务 A 先开始从数据库查询账户余额大于 100 万的记录，发现共有 5 条，然后事务 B 也按相同的搜索条件也是查询出了 5 条记录。]]></description><category></category></item><item><title><![CDATA[事务的特性]]></title><link>https://blog.youkuaiyun.com/qq_74475840/article/details/148734046</link><guid>https://blog.youkuaiyun.com/qq_74475840/article/details/148734046</guid><author>qq_74475840</author><pubDate>Wed, 18 Jun 2025 10:28:12 +0800</pubDate><description><![CDATA[MySQL InnoDB 引擎通过什么技术来保证事务的这四个特性的呢？]]></description><category></category></item></channel></rss>