<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[MyCurlingStick的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/MyCurlingStick</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; MyCurlingStick]]></copyright><item><title><![CDATA[windows 安装opencode以及通过opencode-antigravity-auth插件使用google gemini 、claude模型]]></title><link>https://blog.youkuaiyun.com/MyCurlingStick/article/details/157945340</link><guid>https://blog.youkuaiyun.com/MyCurlingStick/article/details/157945340</guid><author>MyCurlingStick</author><pubDate>Tue, 10 Feb 2026 20:55:31 +0800</pubDate><description><![CDATA[windows 安装opencode以及通过opencode-antigravity-auth插件使用google gemini 、claude模型]]></description><category></category></item><item><title><![CDATA[常用序列化方法的区别]]></title><link>https://blog.youkuaiyun.com/MyCurlingStick/article/details/141604805</link><guid>https://blog.youkuaiyun.com/MyCurlingStick/article/details/141604805</guid><author>MyCurlingStick</author><pubDate>Tue, 27 Aug 2024 15:57:41 +0800</pubDate><description><![CDATA[【代码】常用序列化方法的区别。]]></description><category></category></item><item><title><![CDATA[配置文件读取优先级]]></title><link>https://blog.youkuaiyun.com/MyCurlingStick/article/details/140643505</link><guid>https://blog.youkuaiyun.com/MyCurlingStick/article/details/140643505</guid><author>MyCurlingStick</author><pubDate>Tue, 23 Jul 2024 18:45:38 +0800</pubDate><description><![CDATA[配置文件读取优先级]]></description><category></category></item><item><title><![CDATA[@AutoConfigurationPackage和@ComponentScan的作用是否冲突]]></title><link>https://blog.youkuaiyun.com/MyCurlingStick/article/details/130485931</link><guid>https://blog.youkuaiyun.com/MyCurlingStick/article/details/130485931</guid><author>MyCurlingStick</author><pubDate>Thu, 04 May 2023 14:20:15 +0800</pubDate><description><![CDATA[@AutoConfigurationPackage和@ComponentScan的作用是否冲突]]></description><category></category></item><item><title><![CDATA[putIfAbsent、computeIfAbsent、computeIfPresent]]></title><link>https://blog.youkuaiyun.com/MyCurlingStick/article/details/128306281</link><guid>https://blog.youkuaiyun.com/MyCurlingStick/article/details/128306281</guid><author>MyCurlingStick</author><pubDate>Tue, 13 Dec 2022 18:46:39 +0800</pubDate><description><![CDATA[putIfAbsent、computeIfAbsent、computeIfPresent区别]]></description><category></category></item><item><title><![CDATA[事件模型-ApplicationEventPublisher AND 消息发布订阅redis AND MQ]]></title><link>https://blog.youkuaiyun.com/MyCurlingStick/article/details/123471873</link><guid>https://blog.youkuaiyun.com/MyCurlingStick/article/details/123471873</guid><author>MyCurlingStick</author><pubDate>Mon, 14 Mar 2022 09:55:29 +0800</pubDate><description><![CDATA[事件模型
1ApplicationEventPublisher.publishEvent(ApplicationEvent)

一个事件模型有三个组成部分：被监听对象(ApplicationEventPublisher），事件event（ApplicationEvent）和监听对象listener(注解或实现ApplicationListener，可使用异步注解@Async)

监听对象：具体实现可用   ApplicationContext，而获得ApplicationContext
可使用 实现 App]]></description><category></category></item><item><title><![CDATA[克隆和序列化]]></title><link>https://blog.youkuaiyun.com/MyCurlingStick/article/details/122193615</link><guid>https://blog.youkuaiyun.com/MyCurlingStick/article/details/122193615</guid><author>MyCurlingStick</author><pubDate>Tue, 28 Dec 2021 15:00:42 +0800</pubDate><description><![CDATA[其实，这个序列化ID起着关键的作用，它决定着是否能够成功反序列化！简单来说，java的序列化机制是通过在运行时判断类的serialVersionUID来验证版本一致性的。在进行反序列化时，JVM会把传来的字节流中的serialVersionUID与本地实体类中的serialVersionUID进行比较，如果相同则认为是一致的，便可以进行反序列化，否则就会报序列化版本不一致的异常。
序列化ID如何产生：

当我们一个实体类中没有显示的定义一个名为“serialVersionUID”、类型为long的变量时，J]]></description><category></category></item><item><title><![CDATA[jvm存储关系]]></title><link>https://blog.youkuaiyun.com/MyCurlingStick/article/details/120888738</link><guid>https://blog.youkuaiyun.com/MyCurlingStick/article/details/120888738</guid><author>MyCurlingStick</author><pubDate>Thu, 21 Oct 2021 16:09:02 +0800</pubDate><description><![CDATA[]]></description><category></category></item><item><title><![CDATA[getResource 和 getResourceAsStream]]></title><link>https://blog.youkuaiyun.com/MyCurlingStick/article/details/116919357</link><guid>https://blog.youkuaiyun.com/MyCurlingStick/article/details/116919357</guid><author>MyCurlingStick</author><pubDate>Mon, 17 May 2021 11:04:41 +0800</pubDate><description><![CDATA[（一 ）获取路径

1 如果需要获取某个文件所在的全路径，可用空参：XX.class.getResource("").getPath()
2 如果需要获取当前类所在classpath根目录，可用：XX.class.getResource("/").getPath()，与XX无关
（二）获取流

1 如果带getClassLoader，不用带/开头，表示获取classpath根路径开始
2 不用getClassLoader，
（1） 不带/表示参数文件所在目录
（2）带/表示根目录开始

...]]></description><category></category></item><item><title><![CDATA[shiro理解]]></title><link>https://blog.youkuaiyun.com/MyCurlingStick/article/details/116463857</link><guid>https://blog.youkuaiyun.com/MyCurlingStick/article/details/116463857</guid><author>MyCurlingStick</author><pubDate>Thu, 06 May 2021 21:39:17 +0800</pubDate><description><![CDATA[1. Subject（主体）通常我们会将Subject对象理解为一个用户，同样的它也有可能是一个三方程序，它是一个抽象的概念，可以理解为任何与系统交互的“东西”都是Subject。
如果使用常见的账号+密码验证：UsernamePasswordToken
Subject subject = SecurityUtils.getSubject();
subject.login(new UsernamePasswordToken(username,password));

当使用login时，实际会调用Autho]]></description><category></category></item><item><title><![CDATA[XXL-JOB  分布式任务调度平台]]></title><link>https://blog.youkuaiyun.com/MyCurlingStick/article/details/116230522</link><guid>https://blog.youkuaiyun.com/MyCurlingStick/article/details/116230522</guid><author>MyCurlingStick</author><pubDate>Wed, 28 Apr 2021 11:50:52 +0800</pubDate><description><![CDATA[XXL-JOB

分布式任务调度平台

官方文档：https://www.xuxueli.com/xxl-job/
]]></description><category></category></item><item><title><![CDATA[termQuery ,matchQuery, boolQuery, rangeQuery, wildcardQuery]]></title><link>https://blog.youkuaiyun.com/MyCurlingStick/article/details/103476825</link><guid>https://blog.youkuaiyun.com/MyCurlingStick/article/details/103476825</guid><author>MyCurlingStick</author><pubDate>Tue, 10 Dec 2019 15:41:37 +0800</pubDate><description><![CDATA[https://www.cnblogs.com/yanyuechao/p/8467602.html

]]></description><category></category></item><item><title><![CDATA[五大约束、索引]]></title><link>https://blog.youkuaiyun.com/MyCurlingStick/article/details/100658904</link><guid>https://blog.youkuaiyun.com/MyCurlingStick/article/details/100658904</guid><author>MyCurlingStick</author><pubDate>Mon, 09 Sep 2019 13:12:41 +0800</pubDate><description><![CDATA[数据库五大约束
数据库中的五种约束及其添加方法
五大约束
1.—-主键约束（Primay Key Coustraint） 唯一性，非空性
2.—-唯一约束 （Unique Counstraint）唯一性，可以空，但只能有一个
3.—-检查约束 (Check Counstraint) 对该列数据的范围、格式的限制（如：年龄、性别等）
4.—-默认约束 (Default Counstraint) 该数...]]></description><category></category></item><item><title><![CDATA[索引是什么，怎么确定索引]]></title><link>https://blog.youkuaiyun.com/MyCurlingStick/article/details/98125015</link><guid>https://blog.youkuaiyun.com/MyCurlingStick/article/details/98125015</guid><author>MyCurlingStick</author><pubDate>Fri, 02 Aug 2019 00:19:40 +0800</pubDate><description><![CDATA[B-Tree 是最常用的用于索引的数据结构。因为它们是时间复杂度低， 查找、删除、插入操作都可以可以在对数时间内完成。另外一个重要原因存储在B-Tree中的数据是有序的。
索引是怎么提升性能的？

因为索引基本上是用来存储列值的数据结构，这使查找这些列值更加快速。如果索引使用最常用的数据结构-B-Tree-那么其中的数据是有序的。有序的列值可以极大的提升性能。下面解释原因。

假设我们在 Empl...]]></description><category></category></item><item><title><![CDATA[springboot常用注解]]></title><link>https://blog.youkuaiyun.com/MyCurlingStick/article/details/97971331</link><guid>https://blog.youkuaiyun.com/MyCurlingStick/article/details/97971331</guid><author>MyCurlingStick</author><pubDate>Wed, 31 Jul 2019 22:39:37 +0800</pubDate><description><![CDATA[@SpringBootApplication  等同@SpringBootConfiguration@EnableAutoConfiguration@ComponentScan
@Configuration加入了这个注解的类被认为是 Spring Boot 的配置类
@Bean这个注解是方法级别上的注解，主要添加在 @Configuration 或 @SpringBootConfiguration...]]></description><category></category></item><item><title><![CDATA[mybatis懒加载]]></title><link>https://blog.youkuaiyun.com/MyCurlingStick/article/details/97635464</link><guid>https://blog.youkuaiyun.com/MyCurlingStick/article/details/97635464</guid><author>MyCurlingStick</author><pubDate>Mon, 29 Jul 2019 13:05:05 +0800</pubDate><description><![CDATA[1 整体
首先要知道mybatis的懒加载默认是可以执行的，但是为了明显最好还是在配置文件里的settings标签中设置为true即:
  &lt;settings&gt;
        &lt;setting name="lazyLoadingEnabled" value="true"/&gt;
    &lt;/settings

2  具体到某个结果可用  fetchType=“lazy”...]]></description><category></category></item><item><title><![CDATA[死锁]]></title><link>https://blog.youkuaiyun.com/MyCurlingStick/article/details/97395989</link><guid>https://blog.youkuaiyun.com/MyCurlingStick/article/details/97395989</guid><author>MyCurlingStick</author><pubDate>Fri, 26 Jul 2019 16:47:24 +0800</pubDate><description><![CDATA[什么是死锁？
所谓死锁，是指多个进程在运行过程中因争夺资源而造成的一种僵局，当进程处于这种僵持状态时，若无外力作用，它们都将无法再向前推进。 因此我们举个例子来描述，如果此时有一个线程A，按照先锁a再获得锁b的的顺序获得锁，而在此同时又有另外一个线程B，按照先锁b再锁a的顺序获得锁。如下图所示：

产生死锁的原因？
可归结为如下两点：
a. 竞争资源
系统中的资源可以分为两类：
可剥夺资源，是指某...]]></description><category></category></item><item><title><![CDATA[springcloud简单搭建+eureka服务发现]]></title><link>https://blog.youkuaiyun.com/MyCurlingStick/article/details/96576512</link><guid>https://blog.youkuaiyun.com/MyCurlingStick/article/details/96576512</guid><author>MyCurlingStick</author><pubDate>Sat, 20 Jul 2019 12:43:40 +0800</pubDate><description><![CDATA[1 eureka服务发现，可以提供可视化，等同于dubbo中的zookepper
1.1 需要spring-cloud-starter-netflix-eureka-server服务端依赖包并在配置文件中配置可视化的路径
1.2 在启动类上加入注解@EnableEurekaServer

2 微服务提供者：
ms-provider，配置eureka客户端
2.1需要pom文件中假如spring-c...]]></description><category></category></item><item><title><![CDATA[springcloud 常用组件]]></title><link>https://blog.youkuaiyun.com/MyCurlingStick/article/details/96576067</link><guid>https://blog.youkuaiyun.com/MyCurlingStick/article/details/96576067</guid><author>MyCurlingStick</author><pubDate>Sat, 20 Jul 2019 11:58:36 +0800</pubDate><description><![CDATA[下面只简单介绍下经常用的5个
服务发现——Netflix Eureka
客服端负载均衡——Netflix Ribbon
断路器——Netflix Hystrix
服务网关——Netflix Zuul
分布式配置——Spring Cloud Config
Eureka
作用：实现服务治理（服务注册与发现）
简介：Spring Cloud Eureka是Spring Cloud Netflix项目下的...]]></description><category></category></item><item><title><![CDATA[class.forname和classloader区别]]></title><link>https://blog.youkuaiyun.com/MyCurlingStick/article/details/96479238</link><guid>https://blog.youkuaiyun.com/MyCurlingStick/article/details/96479238</guid><author>MyCurlingStick</author><pubDate>Fri, 19 Jul 2019 15:14:39 +0800</pubDate><description><![CDATA[Java中class是如何加载到JVM中的：
1.class加载到JVM中有三个步骤
装载：（loading）找到class对应的字节码文件。
连接：（linking）将对应的字节码文件读入到JVM中。
初始化：（initializing）对class做相应的初始化动作。
2.Java中两种加载class到JVM中的方式
2.1：Class.forName(“className”);
      ...]]></description><category></category></item></channel></rss>