<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[u014615041的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/u014615041</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; u014615041]]></copyright><item><title><![CDATA[Java 中的一些关于锁的整理浅析]]></title><link>https://blog.youkuaiyun.com/u014615041/article/details/123635686</link><guid>https://blog.youkuaiyun.com/u014615041/article/details/123635686</guid><author>u014615041</author><pubDate>Mon, 21 Mar 2022 15:27:48 +0800</pubDate><description><![CDATA[乐观锁和悲观锁
独占锁和共享锁
互斥锁和读写锁
公平锁和非公平锁
可重入锁
自旋锁
分段锁
锁升级（无锁|偏向锁|轻量级锁|重量级锁）
锁优化技术（锁粗化、锁消除）

悲观锁
悲观锁对应于生活中悲观的人，悲观的人总是想着事情往坏的方向发展。
一个共享数据加了悲观锁，那线程每次想操作这个数据前都会假设其他线程也可能会操作这个数据，所以每次操作前都会上锁，这样其他线程想操作这个数据拿不到锁只能阻塞了。

在 Java 语言中 synchronized 和 ReentrantLock等就是典型的悲观锁，还有一些.]]></description><category></category></item><item><title><![CDATA[Kafka从入门到精通学习笔记]]></title><link>https://blog.youkuaiyun.com/u014615041/article/details/118803872</link><guid>https://blog.youkuaiyun.com/u014615041/article/details/118803872</guid><author>u014615041</author><pubDate>Fri, 16 Jul 2021 17:32:29 +0800</pubDate><description><![CDATA[前言：
新公司消息队列用选用卡夫卡，刚好之前没有用这个消息队列过借此机会学习一波。发现大公司都喜欢用这款消息队列。
消息队列中间件的使用并不复杂，但消息队列的选型一直是个难点。比如：
不同业务场景下该如何选型消息队列？
流消息系统和队列消息系统的 producer 有何区别？
Kafka、RocketMQ、RabbitMQ 各自的优劣在哪？
在实际场景中，性能强大的 Kafka 支持排序保证，非常适合提取消息；而RocketMQ、RabbitMQ 拥有完善的队列特性，可以弥补 Kafka 的不足。
很多公司]]></description><category></category></item><item><title><![CDATA[SpringBoot的Json转换大小写的坑 以及Lombok 的get 、set 方法 的坑]]></title><link>https://blog.youkuaiyun.com/u014615041/article/details/109637417</link><guid>https://blog.youkuaiyun.com/u014615041/article/details/109637417</guid><author>u014615041</author><pubDate>Thu, 12 Nov 2020 10:05:36 +0800</pubDate><description><![CDATA[SpringBoot的Json转换大小写的坑 以及Lombok 的get 、set 方法 的坑
Springboot+mybatis的框架，往前端进行Json格式转换的时候，发现属性的大写首字母变小写了，
1） 如果没有使用fastjson,使用@JsonProperty(“XXXX”)的注解方式可以解决问题，XXXX就是转换成Json的属性名，但注意，只有放在getter上才是有效的，直接在属性上加没效果（这里我用的是Lombok   所以直接放在字段上也是可以的）
2）如果使用了fastjson,就用@]]></description><category></category></item><item><title><![CDATA[Spring MVC  还是Web Flux ? 有什么区别  响应式编程 能提高程序访问速度吗？]]></title><link>https://blog.youkuaiyun.com/u014615041/article/details/109504890</link><guid>https://blog.youkuaiyun.com/u014615041/article/details/109504890</guid><author>u014615041</author><pubDate>Thu, 05 Nov 2020 10:11:10 +0800</pubDate><description><![CDATA[看这篇文章就够了 https://www.cnblogs.com/quanxiaoha/p/10773773.html
]]></description><category></category></item><item><title><![CDATA[Spring Data JPA 和Mybattis 的实现敏感信息mysql数据加密存储解密查询]]></title><link>https://blog.youkuaiyun.com/u014615041/article/details/104995530</link><guid>https://blog.youkuaiyun.com/u014615041/article/details/104995530</guid><author>u014615041</author><pubDate>Fri, 20 Mar 2020 18:03:03 +0800</pubDate><description><![CDATA[mysql 提供直接的加解密函数 aes_encrypt() 和 aes_decrypt() ，我们就是直接使用这两个函数。方法比较简单，在需要加解密的字段上，使用 @ColumnTransformer 注解，来调用aes_encrypt() 和 aes_decrypt() 函数。但需要注意的是，aes_encrypt() 加密之后是二进制数据，因此数据库字段类型需要使用 blob，如果你的应用是...]]></description><category></category></item><item><title><![CDATA[实现利用fastjson数据传输时的数据脱敏]]></title><link>https://blog.youkuaiyun.com/u014615041/article/details/104891466</link><guid>https://blog.youkuaiyun.com/u014615041/article/details/104891466</guid><author>u014615041</author><pubDate>Mon, 16 Mar 2020 09:04:37 +0800</pubDate><description><![CDATA[一：定义脱敏工具类
public class DesensitizedUtils {
    /**
     * 【中文姓名】只显示第一个汉字，其他隐藏为2个星号，比如：李**
     *
     * @param fullName
     * @return
     */
    public static String chineseName(String fullName) {
 ...]]></description><category></category></item><item><title><![CDATA[java使用itextpdf生成 pdf （支持table）分页]]></title><link>https://blog.youkuaiyun.com/u014615041/article/details/103525561</link><guid>https://blog.youkuaiyun.com/u014615041/article/details/103525561</guid><author>u014615041</author><pubDate>Fri, 13 Dec 2019 13:38:34 +0800</pubDate><description><![CDATA[先来看一下我做的效果图

直接上代码
@Configuration
public class ItextPdfUtils {

    private static final Logger log = LoggerFactory.getLogger(ItextPdfUtils.class);

    private static String SimApiPdfUploadPath;

   ...]]></description><category></category></item><item><title><![CDATA[关于Spring的@Value注解注入静态变量 Integer  String等类型方法]]></title><link>https://blog.youkuaiyun.com/u014615041/article/details/103523592</link><guid>https://blog.youkuaiyun.com/u014615041/article/details/103523592</guid><author>u014615041</author><pubDate>Fri, 13 Dec 2019 11:20:48 +0800</pubDate><description><![CDATA[话不多说 直接上代码：配置文件中有三种类型 数据 需要注入
分别为 String ，Bolean ,Integer

我需要在工具类里的静态方法中注入 String  和Integer
这里我们用Spring 的set方法注入 Integer 类型直接转换 就可以
Bolean 类型就直接注入
@Value("${start_uniqued_auth}")
private Boolean star...]]></description><category></category></item><item><title><![CDATA[解决oracle 分页排序混乱问题]]></title><link>https://blog.youkuaiyun.com/u014615041/article/details/102502191</link><guid>https://blog.youkuaiyun.com/u014615041/article/details/102502191</guid><author>u014615041</author><pubDate>Fri, 11 Oct 2019 15:37:12 +0800</pubDate><description><![CDATA[首先这跟oracle无关, 是典型的order by字段值不唯一造成分页记录混乱。
解决办法 order by 【不唯一字段】排序之后 在加一个唯一字段比如主键 排序就解决问题了。
看个例子：
select *
from (select id, member_id, company_name, rownum rn
from (select t.id, t.member_id, t.company_...]]></description><category></category></item><item><title><![CDATA[Java 面试总结(基础，多线程并发编程、常用开源框架，数据库，中间件、微服务、算法、工具容器等)]]></title><link>https://blog.youkuaiyun.com/u014615041/article/details/100916417</link><guid>https://blog.youkuaiyun.com/u014615041/article/details/100916417</guid><author>u014615041</author><pubDate>Tue, 17 Sep 2019 18:07:07 +0800</pubDate><description><![CDATA[我的 java相关笔记]]></description><category></category></item><item><title><![CDATA[org.springframework.web.multipart.MultipartException: Could not parse multipart上传文件报错]]></title><link>https://blog.youkuaiyun.com/u014615041/article/details/100512702</link><guid>https://blog.youkuaiyun.com/u014615041/article/details/100512702</guid><author>u014615041</author><pubDate>Tue, 03 Sep 2019 10:36:20 +0800</pubDate><description><![CDATA[java.io 上传文件 报错]]></description><category></category></item><item><title><![CDATA[spring 配置 cache 缓存使用 Redis（基于注解）]]></title><link>https://blog.youkuaiyun.com/u014615041/article/details/99725835</link><guid>https://blog.youkuaiyun.com/u014615041/article/details/99725835</guid><author>u014615041</author><pubDate>Mon, 19 Aug 2019 14:48:13 +0800</pubDate><description><![CDATA[Spring boot默认使用的是SimpleCacheConfiguration，即使用ConcurrentMapCacheManager来实现缓存。
Spring cache是代码级的缓存，一般是使用一个ConcurrentMap，也就是说实际上还是是使用JVM的内存来缓存对象的，这势必会造成大量的内存消耗。但好处是显然的：使用方便。
Redis 作为一个缓存服务器，是内存级的缓存。它是使用单...]]></description><category></category></item><item><title><![CDATA[Orcale函数Row_Number() over(partition by xxx ORDER BY xx desc)使用]]></title><link>https://blog.youkuaiyun.com/u014615041/article/details/98938306</link><guid>https://blog.youkuaiyun.com/u014615041/article/details/98938306</guid><author>u014615041</author><pubDate>Fri, 09 Aug 2019 09:39:44 +0800</pubDate><description><![CDATA[当我们遇到这种情况需要处理数据时可以使用这个函数：
查询结果中根据相同字段的数据再根据特定字段取取值较大或较小的一条返回
`SELECT * FROM
(SELECT a.,Row_Number() Over(partition by a.pfvtId ORDER BY a.mcalEvent desc) as rn FROM*
(SELECT
(select TO_DATE(TO_CHAR(sy...]]></description><category></category></item><item><title><![CDATA[Oracle序列(sequence)使用总结]]></title><link>https://blog.youkuaiyun.com/u014615041/article/details/98034276</link><guid>https://blog.youkuaiyun.com/u014615041/article/details/98034276</guid><author>u014615041</author><pubDate>Thu, 01 Aug 2019 15:52:03 +0800</pubDate><description><![CDATA[前言：
我们都知道数据库表中的主键值有的时候我们会用数字类型的并且自增。mysql、sql server中的都可以使用工具创建表的时候很容易实现。但是oracle中没有设置自增的方法的工具，一般情况我们会使用序列和触发器来实现主键自增的功能。
序列：
Sequence 是oracle提供的用于产生一系列唯一数字的数据库对象。由于oracle中没有设置自增列的方法，所以我们在oracle数据库中主要...]]></description><category></category></item><item><title><![CDATA[安装Elasticsearch elasticsearch-head  ik分词器时所踩过的坑]]></title><link>https://blog.youkuaiyun.com/u014615041/article/details/97137152</link><guid>https://blog.youkuaiyun.com/u014615041/article/details/97137152</guid><author>u014615041</author><pubDate>Wed, 24 Jul 2019 17:09:04 +0800</pubDate><description><![CDATA[Elasticsearch官网：https://www.elastic.co/cn/products/elasticsearch
参考安装教程
这个教程中还要注意的是elasticsearch.yml文件中增加和打开修改的配置一定要注意格式有空格及引号的格式问题
避免的坑
1：查看自己的jdk版本选择合适的安装包7.0版本以上的需要jdk11 如果jdk版本过低启动会报错具体可以参考这个：
htt...]]></description><category></category></item><item><title><![CDATA[整理了基于Restful +WebService + RPC +RMI + SOAP +HttpClient 的概念区别以及应用场景]]></title><link>https://blog.youkuaiyun.com/u014615041/article/details/96156909</link><guid>https://blog.youkuaiyun.com/u014615041/article/details/96156909</guid><author>u014615041</author><pubDate>Tue, 16 Jul 2019 18:14:24 +0800</pubDate><description><![CDATA[Rest入门介绍
Rest接口设计规范
WebService学习总结
SOAP协议
WebService两种实现方式SOAP与Rest比较
RPC概念及原理
HttpClient
RPC与Rest区别
RPC与RMI区别: https://cloud.tencent.com/developer/article/1353191
Dubbo各协议的比较：https://blog.youkuaiyun.com/fd...]]></description><category></category></item><item><title><![CDATA[设计模式(内含Java代码示例及优秀学习博文）]]></title><link>https://blog.youkuaiyun.com/u014615041/article/details/95448252</link><guid>https://blog.youkuaiyun.com/u014615041/article/details/95448252</guid><author>u014615041</author><pubDate>Thu, 11 Jul 2019 18:03:46 +0800</pubDate><description><![CDATA[常用的遵循原则：
1：单一职责原则（SRP）就一个类而言，应该仅有一个引起它变化的原因。
2：里氏代换原则（LSP）子类型必须能够替代掉他们的父类型。
3：依赖倒转原则 A： 高层模块不应该依赖底层模块。两个都应该抽象依赖。
B： 抽象不应该依赖细节。细节应该依赖抽象。
4：开放封闭原则  软件实体（类，模块，函数等等）应该可以扩展，但是不可以修改。]]></description><category></category></item><item><title><![CDATA[彻底搞懂单例模式的懒汉式饿汉式 双检索 线程安全问题]]></title><link>https://blog.youkuaiyun.com/u014615041/article/details/94433906</link><guid>https://blog.youkuaiyun.com/u014615041/article/details/94433906</guid><author>u014615041</author><pubDate>Tue, 02 Jul 2019 11:04:45 +0800</pubDate><description><![CDATA[单例类只能有一个实例。
1、单例类只能有一个实例。
　 　2、单例类必须自己创建自己的唯一实例。
　 　3、单例类必须给所有其他对象提供这一实例。
懒汉式单例类.在第一次调用的时候实例化自己
public class Singleton {
private Singleton() {}
private static Singleton single=null;
//静态工厂方法
public st...]]></description><category></category></item></channel></rss>