<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[decaffeinated的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/decaffeinated</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; decaffeinated]]></copyright><item><title><![CDATA[EasyExcel报NoClassDefFoundError错误]]></title><link>https://blog.youkuaiyun.com/decaffeinated/article/details/145340615</link><guid>https://blog.youkuaiyun.com/decaffeinated/article/details/145340615</guid><author>decaffeinated</author><pubDate>Fri, 24 Jan 2025 14:46:23 +0800</pubDate><description><![CDATA[使用EasyExcel导出。]]></description><category></category></item><item><title><![CDATA[MySql事务隔离级别]]></title><link>https://blog.youkuaiyun.com/decaffeinated/article/details/140500449</link><guid>https://blog.youkuaiyun.com/decaffeinated/article/details/140500449</guid><author>decaffeinated</author><pubDate>Wed, 17 Jul 2024 20:45:21 +0800</pubDate><description><![CDATA[在会话a执行a1和a2，开启一个事务，并执行更新操作，这时候不提交，再执行一次b2，再一次查询User表，得到结果是修改后的王五。在会话a先执行a1和a2，开启一个事务，并执行更新操作，这时候不提交，新开一个会话执行b1做查询，得到结果还是张三和李四。在会话a先执行a1和a2，开启一个事务，并执行更新操作，这时候不提交，新开一个会话执行b1和b2，得到结果是张三和李四。在会话a先执行a1和a2，开启一个事务，并执行更新操作，这时候不提交，新开一个会话执行b1和b2，得到结果是张三和李四。]]></description><category></category></item><item><title><![CDATA[图解JDK1.7中HashMap头插法扩容造成的死循环问题]]></title><link>https://blog.youkuaiyun.com/decaffeinated/article/details/138085062</link><guid>https://blog.youkuaiyun.com/decaffeinated/article/details/138085062</guid><author>decaffeinated</author><pubDate>Mon, 22 Apr 2024 20:15:26 +0800</pubDate><description><![CDATA[假设有两个线程同时扩容，都需要数据迁移，线程A和B都执行到了。线程B分到了时间分片，继续执行。如图所示，已经形成了死循环。先来看一下扩容的源码。]]></description><category></category></item><item><title><![CDATA[Spring之深入解析AOP]]></title><link>https://blog.youkuaiyun.com/decaffeinated/article/details/136586957</link><guid>https://blog.youkuaiyun.com/decaffeinated/article/details/136586957</guid><author>decaffeinated</author><pubDate>Mon, 11 Mar 2024 23:18:42 +0800</pubDate><description><![CDATA[获取拦截器链，把通知增强器对象（MethodBeforeAdvice、AfterReturningAdvice、ThrowsAdvice）包装成了拦截器，其中。在解析XML时，如果是环绕通知、后置通知、异常通知，注册的通知增强器对象，直接实现了MethodInterceptor接口。，因为目标类有多个方法，所以在执行方法时，判断当前执行的方法是否是切入点，如果是切入点，则执行拦截器的。在【目标对象】中定位【切入点】，【织入】对应的【通知】，就变成了【代理对象】参数传进去，所以在调用方法时，会执行。]]></description><category></category></item><item><title><![CDATA[RocketMQ—消费者]]></title><link>https://blog.youkuaiyun.com/decaffeinated/article/details/134365417</link><guid>https://blog.youkuaiyun.com/decaffeinated/article/details/134365417</guid><author>decaffeinated</author><pubDate>Sun, 12 Nov 2023 20:43:00 +0800</pubDate><description><![CDATA[通过负载均衡算法为当前消费者分配了新的消息队列之后，需要更新新分配的消息队列MessageQueue和处理队列ProcessQueue的关系。如果锁定失败，表示新增消息队列失败，这个队列可能还再被其他消费者消费，那么本次重平衡就不再消费该队列。这就涉及到如何将多个消息队列分配给等多个消费者的问题。来专门处理多个消息队列和消费者的对应关系，并且提供了多个不同的消费者负载均衡策略，即如何分配消息队列给这些消费者。集合中，后续异步的消费，自动执行拉取消息的请求，这就是Push模式下最初的拉消息请求的来源。]]></description><category></category></item><item><title><![CDATA[Java17的踩坑点]]></title><link>https://blog.youkuaiyun.com/decaffeinated/article/details/131139222</link><guid>https://blog.youkuaiyun.com/decaffeinated/article/details/131139222</guid><author>decaffeinated</author><pubDate>Sat, 10 Jun 2023 10:51:04 +0800</pubDate><description><![CDATA[模块化，模块系统将 Java 分成了若干个可以独立部署和运行的模块，使得 Java 应用可以更快地启动并更好地利用硬件资源。但在 java 模块化之后，有些内部类不能被访问了，在运行时报错。比如我在使用 DTS 的 sdk 时候，报如下错误，导致不能启动。如果是在 idea 启动程序，在 vm options 添加参数。解决方法，在运行程序的命令加上参数。如果是命令行启动程序，]]></description><category></category></item><item><title><![CDATA[Maven:relativePath标签]]></title><link>https://blog.youkuaiyun.com/decaffeinated/article/details/130805878</link><guid>https://blog.youkuaiyun.com/decaffeinated/article/details/130805878</guid><author>decaffeinated</author><pubDate>Mon, 22 May 2023 14:13:40 +0800</pubDate><description><![CDATA[relativePath</code>允许你选择一个不同的位置，Maven首先在当前构建项目的反应器中查找父pom，然后在此位置查找。签出中父<code>pom.xml</code>文件的相对路径。并且必须与给定位置中的文件匹配，否则它将返回到POM的存储库。默认值为<code>…/pom.xml]]></description><category></category></item><item><title><![CDATA[Collectors.toMap方法]]></title><link>https://blog.youkuaiyun.com/decaffeinated/article/details/129371264</link><guid>https://blog.youkuaiyun.com/decaffeinated/article/details/129371264</guid><author>decaffeinated</author><pubDate>Mon, 06 Mar 2023 21:26:05 +0800</pubDate><description><![CDATA[如果其中一个 value 为 null，toMap 方法就会报 NullPointerException 错误，运行以下代码就会报错。可以将 List 转换成 Map，toMap 有三个重载方法。会要求 value 不为 null，否则也是报 NPE 异常。方法，如果 value 为 null，直接报 NPE 异常。重载方法二调用重载方法三，所以直接看重载方法三。，会要求 value 不为 null。方法，传入了key 和 value。参数，也是一个函数式接口，调用。]]></description><category></category></item><item><title><![CDATA[System.getProperties()和System.getenv()的应用]]></title><link>https://blog.youkuaiyun.com/decaffeinated/article/details/129290734</link><guid>https://blog.youkuaiyun.com/decaffeinated/article/details/129290734</guid><author>decaffeinated</author><pubDate>Wed, 01 Mar 2023 21:59:46 +0800</pubDate><description><![CDATA[vm option : jvm参数Program arguments : 程序参数（空格分隔），main 方法的 args 参数Environment variables : 环境变量在程序启动时会执行} }方法是通过来获取系统属性方法是通过来获取环境变量，包括在 Environment variables 中自定义的变量} }]]></description><category></category></item><item><title><![CDATA[缓存淘汰——LRU和LFU算法]]></title><link>https://blog.youkuaiyun.com/decaffeinated/article/details/128228269</link><guid>https://blog.youkuaiyun.com/decaffeinated/article/details/128228269</guid><author>decaffeinated</author><pubDate>Wed, 07 Dec 2022 22:33:26 +0800</pubDate><description><![CDATA[LRU和LFU算法]]></description><category></category></item><item><title><![CDATA[MyBatis一级和二级缓存]]></title><link>https://blog.youkuaiyun.com/decaffeinated/article/details/128166326</link><guid>https://blog.youkuaiyun.com/decaffeinated/article/details/128166326</guid><author>decaffeinated</author><pubDate>Sat, 03 Dec 2022 20:50:42 +0800</pubDate><description><![CDATA[Mybatis缓存]]></description><category></category></item><item><title><![CDATA[Spring循环依赖问题]]></title><link>https://blog.youkuaiyun.com/decaffeinated/article/details/127838579</link><guid>https://blog.youkuaiyun.com/decaffeinated/article/details/127838579</guid><author>decaffeinated</author><pubDate>Sun, 13 Nov 2022 22:17:29 +0800</pubDate><description><![CDATA[Spring中单例Bean实例创建的三个步骤：创建对象，createBeanInstance填充属性，populateBean初始化操作（调用初始化方法），initializeBean。]]></description><category></category></item><item><title><![CDATA[把java项目打包成docker镜像]]></title><link>https://blog.youkuaiyun.com/decaffeinated/article/details/127826366</link><guid>https://blog.youkuaiyun.com/decaffeinated/article/details/127826366</guid><author>decaffeinated</author><pubDate>Sat, 12 Nov 2022 22:15:24 +0800</pubDate><description><![CDATA[原文链接：https://blog.youkuaiyun.com/u013768867/article/details/103715437。docker run -itd --name test -p :  test:v1.0。4、把 test.jar 包和 dockerfile 放在 linux 服务器的同一个目录中。3、创建 dockerfile 文件，文件名为 dockerfile，没有扩展名。1、把服务打包成jar包，这里是 test.jar。5、构建docker镜像。]]></description><category></category></item></channel></rss>