<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[锋声的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/xikaifeng</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; xikaifeng]]></copyright><item><title><![CDATA[linux 常用查看日志命令--more 命令]]></title><link>https://blog.youkuaiyun.com/xikaifeng/article/details/124176423</link><guid>https://blog.youkuaiyun.com/xikaifeng/article/details/124176423</guid><author>xikaifeng</author><pubDate>Thu, 14 Apr 2022 17:02:34 +0800</pubDate><description><![CDATA[命令功能
more命令和cat命令一样都是查看文件里的内容，但more可以支持分页查询文件内容，还支持直接跳转行等功能
常用命令
more +n xxx.log 从第n行开始显示
more -n xxx.log 设定每屏显示的行数
more +/abc xxx.log 查找文件中第一次出现abc的行，并从该处前两行开始显示
ls -l | more -n 分页查看目录下文件
命令参数
+n 从笫n行开始显示
-n 定义屏幕大小为n行
+/pattern 在每个档案显示前搜寻该字串（pattern），然后从该]]></description><category></category></item><item><title><![CDATA[BigDecimal 工具类]]></title><link>https://blog.youkuaiyun.com/xikaifeng/article/details/124105769</link><guid>https://blog.youkuaiyun.com/xikaifeng/article/details/124105769</guid><author>xikaifeng</author><pubDate>Mon, 11 Apr 2022 18:20:12 +0800</pubDate><description><![CDATA[import java.math.BigDecimal;
import java.math.RoundingMode;

/**
 * 简化BigDecimal计算的小工具类
 */
public class BigDecimalUtil {

    /**
     * 默认除法运算精度
     */
    private static final int DEF_DIV_SCALE = 10;

    private BigDecimalUtil() {
    }

    /**
     ]]></description><category></category></item><item><title><![CDATA[IDEA 常用快捷键（详细）]]></title><link>https://blog.youkuaiyun.com/xikaifeng/article/details/123901604</link><guid>https://blog.youkuaiyun.com/xikaifeng/article/details/123901604</guid><author>xikaifeng</author><pubDate>Fri, 01 Apr 2022 16:33:11 +0800</pubDate><description><![CDATA[一、常用快捷键
Ctrl + F12 弹出当前文件结构层(类的方法属性等)，可以在弹出的层上直接输入，进行筛选
Ctrl + 左键单击 在打开的文件标题上，弹出该文件路径
Ctrl + N 根据输入的 类名 查找类文件
Ctrl + D 复制光标所在行 或 复制选择内容，并把复制内容插入光标位置下面
Ctrl + P 方法参数提示显示
Ctrl + Alt + O 优化导入的类，可以对当前文件和整个包目录使用
Alt + Insert 代码自动生成，如生成对象的 set / get 方法，构造函数，toSt]]></description><category></category></item><item><title><![CDATA[hashCode() 和 equals()相关问题解答]]></title><link>https://blog.youkuaiyun.com/xikaifeng/article/details/122645936</link><guid>https://blog.youkuaiyun.com/xikaifeng/article/details/122645936</guid><author>xikaifeng</author><pubDate>Sun, 23 Jan 2022 00:29:21 +0800</pubDate><description><![CDATA[1、equals() 的作用是什么？

equals() 的作用是 用来判断两个对象是否相等。
equals()定义在JDK的Object.java中。通过判断两个对象的地址是否相等(即，是否是同一个对象)来区分它们是否相等。源码如下：

public boolean equals(Object obj) {
    return (this == obj);
}


既然Object.java中定义了equals()方法，这就意味着所有的Java类都实现了equals()方法，所有的类都可以通过equal]]></description><category></category></item><item><title><![CDATA[HashMap遍历、性能、原理以及安全性]]></title><link>https://blog.youkuaiyun.com/xikaifeng/article/details/121954817</link><guid>https://blog.youkuaiyun.com/xikaifeng/article/details/121954817</guid><author>xikaifeng</author><pubDate>Wed, 15 Dec 2021 16:25:52 +0800</pubDate><description><![CDATA[HashMap遍历、性能、原理以及安全性HashMap 遍历1.迭代器 EntrySet2.迭代器 KeySet3.ForEach EntrySet4.ForEach KeySet5.Lambda6.Streams API 单线程7.Streams API 多线程性能测试性能原理分析安全性测试1.迭代器方式2.For 循环方式3.Lambda 方式4.Stream 方式小结总结
HashMap 遍历
HashMap 遍历从大的方向来说，可分为以下 4 类：

迭代器（Iterator）方式遍历；
For E]]></description><category></category></item><item><title><![CDATA[rabbitmq-plugins enable rabbitmq_management出现{:query, :rabbit@centos8, {:badrpc, :timeout}}修改主机名]]></title><link>https://blog.youkuaiyun.com/xikaifeng/article/details/121645262</link><guid>https://blog.youkuaiyun.com/xikaifeng/article/details/121645262</guid><author>xikaifeng</author><pubDate>Tue, 30 Nov 2021 23:57:54 +0800</pubDate><description><![CDATA[问题：在开启 web 管理插件时出现以下错误

究其原因是因为在安装centos设置网络和主机名时修改了主机名，而默认的主机名为localhost.localdomain

1.首先查看hostname,输入命令：hostnamectl


2.修改/etc/hosts,输入命令：vi /etc/hosts
3.修改完成后再次开启 web 管理插件 成功


...]]></description><category></category></item><item><title><![CDATA[5种全局ID生成方式、优缺点及改进方案]]></title><link>https://blog.youkuaiyun.com/xikaifeng/article/details/121636936</link><guid>https://blog.youkuaiyun.com/xikaifeng/article/details/121636936</guid><author>xikaifeng</author><pubDate>Tue, 30 Nov 2021 16:51:09 +0800</pubDate><description><![CDATA[5种全局ID生成方式、优缺点及改进方案1、全局唯一id介绍全局唯一id特点：2、常见全局唯一id生成策略1、数据库自增长序列或字段生成id2、UUID3、Redis生成ID4、zookeeper生成ID5、Twitter的snowflake算法
1、全局唯一id介绍
系统唯一id是我们在设计阶段常常遇到的问题。在复杂的分布式系统中，几乎都需要对大量的数据和消息进行唯一标识。在设计初期，我们需要考虑日后数据量的级别，如果可能会对数据进行分库分表，那么就需要有一个全局唯一id来标识一条数据或记录。生成唯一id的]]></description><category></category></item><item><title><![CDATA[windows系统VMware中安装CentOS8]]></title><link>https://blog.youkuaiyun.com/xikaifeng/article/details/121626246</link><guid>https://blog.youkuaiyun.com/xikaifeng/article/details/121626246</guid><author>xikaifeng</author><pubDate>Tue, 30 Nov 2021 14:46:19 +0800</pubDate><description><![CDATA[Windows系统VMware中安装CentOS81、VMware下载2、VMware 安装3、下载CentOS8镜像4、安装CentOS8
1、VMware下载
进入官网的 VMware Workstation Pro 页面，下滑页面点击 试用 Workstation 16 Pro 下方的下载链接，跳转至下载页面。

2、VMware 安装
打开下载好的 .exe文件， 开始安装，点击下一步

勾选许可协议，点击下一步

安装位置默认在 C 盘下，在这里我选择安装在 E 盘，安装路径尽量不要有中文，点击下]]></description><category></category></item><item><title><![CDATA[YAML 文件详解]]></title><link>https://blog.youkuaiyun.com/xikaifeng/article/details/121612180</link><guid>https://blog.youkuaiyun.com/xikaifeng/article/details/121612180</guid><author>xikaifeng</author><pubDate>Mon, 29 Nov 2021 16:07:07 +0800</pubDate><description><![CDATA[YAML 文件详解 1、什么是YAML2、基本语法3、数据类型4、文本块5、显示指定类型6、引用7、单文件多配置
1、什么是YAML
YAML是"YAML Ain’t a Markup Language"（YAML不是一种标记语言）的递归缩写。YAML的意思其实是：“Yet Another Markup Language”（仍是一种标记语言）。主要强度这种语音是以数据为中心，而不是以标记语言为重心，例如像xml语言就会使用大量的标记。
YAML是一个可读性高，易于理解，用来表达数据序列化的格式。它的语法和其]]></description><category></category></item><item><title><![CDATA[Java 几个常用工具类库]]></title><link>https://blog.youkuaiyun.com/xikaifeng/article/details/121606558</link><guid>https://blog.youkuaiyun.com/xikaifeng/article/details/121606558</guid><author>xikaifeng</author><pubDate>Mon, 29 Nov 2021 14:46:28 +0800</pubDate><description><![CDATA[Java 几个常用工具类库1、Apache相关IOUtils类2、Apache相关FileUtils3、StringUtils (org.apache.commons.lang.StringUtils)4、Apache 相关EntityUtils5、Apache相关StringUtils(org.apache.commons.lang3.StringUtils)6、Apache 相关FilenameUtils7、Spring相关的StringUtils(org.springframework.util.St]]></description><category></category></item><item><title><![CDATA[Java 泛型通配符 T，E，K，V，?]]></title><link>https://blog.youkuaiyun.com/xikaifeng/article/details/121605496</link><guid>https://blog.youkuaiyun.com/xikaifeng/article/details/121605496</guid><author>xikaifeng</author><pubDate>Mon, 29 Nov 2021 11:45:37 +0800</pubDate><description><![CDATA[Java 泛型通配符 T，E，K，V，?1、前言2、泛型带来的好处3、泛型中通配符5、Class和 Class区别
1、前言



Java 泛型（generics）是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制，该机制允许开发者在编译时检测到非法的类型。


泛型的本质是参数化类型，也就是说所操作的数据类型被指定为一个参数。



2、泛型带来的好处
在没有泛型的情况的下，通过对类型 Object 的引用来实现参数的“任意化”，“任意化”带来的缺点是要做显式的强制类型转换，而这种转]]></description><category></category></item><item><title><![CDATA[Oauth2.0实现单点登录的原理流程]]></title><link>https://blog.youkuaiyun.com/xikaifeng/article/details/121580627</link><guid>https://blog.youkuaiyun.com/xikaifeng/article/details/121580627</guid><author>xikaifeng</author><pubDate>Sat, 27 Nov 2021 18:05:33 +0800</pubDate><description><![CDATA[Oauth2.0实现单点登录的原理流程1、什么是单点登录2、OAuth2 认证授权的原理流程3、基于 SpringBoot 实现认证/授权4、综合运用
1、什么是单点登录
1.1 多点登录
传统的多点登录系统中，每个站点都实现了本站专用的帐号数据库和登录模块。各站点的登录状态相互不认可，各站点需要逐一手工登录。如下图，有两个术语含义如下：


认证(authentication): 验证用户的身份；


授权(authorization): 验证用户的访问权限。



1.2 单点登录
单点登录，英文是 S]]></description><category></category></item><item><title><![CDATA[SpringBoot 静态获取 bean 的三种方式]]></title><link>https://blog.youkuaiyun.com/xikaifeng/article/details/121580262</link><guid>https://blog.youkuaiyun.com/xikaifeng/article/details/121580262</guid><author>xikaifeng</author><pubDate>Sat, 27 Nov 2021 18:00:20 +0800</pubDate><description><![CDATA[SpringBoot 静态获取 bean 的三种方式1、 注解@PostConstruct2、  启动类ApplicationContext3、 手动注入ApplicationContext

注意：调用者要被spring管理

1、 注解@PostConstruct
/**
 * springboot静态方法获取 bean 的三种方式(一)
 * @author: fs
 * @version: 1.1.0
 */
@Component
public class StaticMethodGetBean_1]]></description><category></category></item><item><title><![CDATA[说说 SpringMVC 工作原理]]></title><link>https://blog.youkuaiyun.com/xikaifeng/article/details/121580432</link><guid>https://blog.youkuaiyun.com/xikaifeng/article/details/121580432</guid><author>xikaifeng</author><pubDate>Sat, 27 Nov 2021 17:33:27 +0800</pubDate><description><![CDATA[说说 SpringMVC 工作原理1、SpringMVC流程2、组件说明3、MVC模式4、SpringMVC是什么
先看一张SpringMVC的工作原理图：

1、SpringMVC流程

1、  用户发送请求至前端控制器DispatcherServlet。
2、  DispatcherServlet收到请求调用HandlerMapping处理器映射器。
3、 处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找)，生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServ]]></description><category></category></item><item><title><![CDATA[23种设计模式通俗理解]]></title><link>https://blog.youkuaiyun.com/xikaifeng/article/details/121580050</link><guid>https://blog.youkuaiyun.com/xikaifeng/article/details/121580050</guid><author>xikaifeng</author><pubDate>Sat, 27 Nov 2021 17:15:29 +0800</pubDate><description><![CDATA[23种设计模式通俗理解1、根据目的来分2、根据作用范围来分3、GoF的23种设计模式的功能1、FACTORY 工厂方法2、BUILDER建造者模式3、FACTORY METHOD抽象工厂4、PROTOTYPE 原型模式5、SINGLETON 单态模式6、ADAPTER 适配器模式7、BRIDGE 桥梁模式8、COMPOSITE合成模式9、DECORATOR装饰模式10、FACADE门面模式11、FLYWEIGHT享元模式12、PROXY代理模式13、CHAIN OF RESPONSIBLEITY责任链模式1]]></description><category></category></item><item><title><![CDATA[MySQL 性能优化的 9 种姿势]]></title><link>https://blog.youkuaiyun.com/xikaifeng/article/details/121579373</link><guid>https://blog.youkuaiyun.com/xikaifeng/article/details/121579373</guid><author>xikaifeng</author><pubDate>Sat, 27 Nov 2021 17:03:18 +0800</pubDate><description><![CDATA[MySQL 性能优化的 9 种姿势1、选择最合适的字段属性2、尽量把字段设置为NOT NULL3、使用连接(JOIN)来代替子查询(Sub-Queries)4、使用联合(UNION)来代替手动创建的临时表5、事务6、锁定表7、使用外键8、使用索引9、优化de的查询语句
1、选择最合适的字段属性

Mysql是一种关系型数据库，可以很好地支持大数据量的存储，但是一般来说，数据库中的表越小，在它上面执行的查询也就越快。因此，在创建表的时候，为了获得更好的性能，我们可以将表中字段的宽度舍得尽可能小。

例如：在定]]></description><category></category></item><item><title><![CDATA[巧用 Java 8 的 Stream 来优化代码，太简洁了]]></title><link>https://blog.youkuaiyun.com/xikaifeng/article/details/121577500</link><guid>https://blog.youkuaiyun.com/xikaifeng/article/details/121577500</guid><author>xikaifeng</author><pubDate>Sat, 27 Nov 2021 16:13:49 +0800</pubDate><description><![CDATA[巧用 Java 8 的 Stream 来优化代码，太简洁了！1、流如何简化代码2、什么是流3、如何生成流1.通过集合生成，应用中最常用的一种2.通过数组生成3.通过值生成4.通过文件生成5.通过函数生成 提供了iterate和generate两个静态方法从函数中生成流4、流的操作类型1.中间操作2.终端操作5、流使用1.中间操作2.终端操作6、总结

Java8的新特性主要是Lambda表达式和流，当流和Lambda表达式结合起来一起使用时，因为流申明式处理数据集合的特点，可以让代码变得简洁易读

1、流如]]></description><category></category></item><item><title><![CDATA[Java 中的 BigDecimal 运算，如何解决精度丢失问题？]]></title><link>https://blog.youkuaiyun.com/xikaifeng/article/details/121576974</link><guid>https://blog.youkuaiyun.com/xikaifeng/article/details/121576974</guid><author>xikaifeng</author><pubDate>Sat, 27 Nov 2021 14:58:52 +0800</pubDate><description><![CDATA[Java 中的 BigDecimal 运算，如何解决精度丢失问题？1、我们先看一个例子2、BigDecimal中的一些方法3、值得注意的是如果要想无精度丢失的情况下计算结果，那么需要把double,float类型的参数转化为String类型的。4、在一般开发过程中，我们数据库中存储的数据都是float和double类型的。
1、我们先看一个例子

可以看到在Java中进行浮点数运算的时候，会出现丢失精度的问题。那么我们如果在进行商品价格计算的时候，就会出现问题。很有可能造成我们手中有0.06元，却无法购买一]]></description><category></category></item><item><title><![CDATA[Redis 击穿、穿透、雪崩产生原因以及解决思路]]></title><link>https://blog.youkuaiyun.com/xikaifeng/article/details/121565891</link><guid>https://blog.youkuaiyun.com/xikaifeng/article/details/121565891</guid><author>xikaifeng</author><pubDate>Fri, 26 Nov 2021 18:18:24 +0800</pubDate><description><![CDATA[1前言
大家都知道，计算机的瓶颈之一就是IO，为了解决内存与磁盘速度不匹配的问题，产生了缓存，将一些热点数据放在内存中，随用随取，降低连接到数据库的请求链接,避免数据库挂掉。需要注意的是，无论是击穿还是后面谈到的穿透与雪崩,都是在高并发前提下，比如当缓存中某一个热点key失效。

2问题起因
有两个主要原因：
1、Key过期；
2、Key被页面置换淘汰。
对于第一个原因是因为在Redis中，Key有过期时间，如果某一个时刻(假如商城做活动,零点开始)key失效，那么零点之后对某一个商品查询请求将全都压到数据]]></description><category></category></item><item><title><![CDATA[Spring Boot 实现各种参数校验]]></title><link>https://blog.youkuaiyun.com/xikaifeng/article/details/121564788</link><guid>https://blog.youkuaiyun.com/xikaifeng/article/details/121564788</guid><author>xikaifeng</author><pubDate>Fri, 26 Nov 2021 17:49:36 +0800</pubDate><description><![CDATA[Spring Boot 实现各种参数校验简单使用引入依赖`requestBody`参数校验`requestParam/PathVariable`参数校验统一异常处理进阶使用分组校验嵌套校验集合校验自定义校验编程式校验快速失败 (Fail Fast)`@Valid`和`@Validated`区别实现原理`requestBody`参数校验实现原理方法级别的参数校验实现原理
简单使用
Java API规范 (JSR303) 定义了Bean校验的标准validation-api，但没有提供实现。hibernate ]]></description><category></category></item></channel></rss>