<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[didixiao_的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/didixiao_</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; didixiao_]]></copyright><item><title><![CDATA[Java 动态代理详解]]></title><link>https://blog.youkuaiyun.com/didixiao_/article/details/103620023</link><guid>https://blog.youkuaiyun.com/didixiao_/article/details/103620023</guid><author>didixiao_</author><pubDate>Thu, 19 Dec 2019 19:08:58 +0800</pubDate><description><![CDATA[https://www.jianshu.com/p/4dcc74b63f1c



静态代理的缺点

虽然静态代理实现简单，且不侵入原代码，但是，当场景稍微复杂一些的时候，静态代理的缺点也会暴露出来。

1、 当需要代理多个类的时候，由于代理对象要实现与目标对象一致的接口，有两种方式：

只维护一个代理类，由这个代理类实现多个接口，但是这样就导致代理类过于庞大
	新建多个代理类，每个目标对象对应...]]></description><category></category></item><item><title><![CDATA[高并发策略]]></title><link>https://blog.youkuaiyun.com/didixiao_/article/details/103613211</link><guid>https://blog.youkuaiyun.com/didixiao_/article/details/103613211</guid><author>didixiao_</author><pubDate>Thu, 19 Dec 2019 13:57:04 +0800</pubDate><description><![CDATA[对于高并发的系统，有三把利器用来保护系统：缓存、降级和限流

缓存，异步，限流
]]></description><category></category></item><item><title><![CDATA[go学习]]></title><link>https://blog.youkuaiyun.com/didixiao_/article/details/103066106</link><guid>https://blog.youkuaiyun.com/didixiao_/article/details/103066106</guid><author>didixiao_</author><pubDate>Fri, 29 Nov 2019 09:52:42 +0800</pubDate><description><![CDATA[Go 语言 select 语句

select 会循环检测条件，如果有满足则执行并退出，否则一直循环检测。

select 随机执行一个可运行的 case。如果没有 case 可运行，它将阻塞，直到有 case 可运行。一个默认的子句应该总是可运行的。

如果有多个 case 都可以运行，Select 会随机公平地选出一个执行。其他不会执行。
否则：

如果有 default 子句，则执行该语句...]]></description><category></category></item><item><title><![CDATA[尾递归]]></title><link>https://blog.youkuaiyun.com/didixiao_/article/details/103044890</link><guid>https://blog.youkuaiyun.com/didixiao_/article/details/103044890</guid><author>didixiao_</author><pubDate>Wed, 13 Nov 2019 10:54:12 +0800</pubDate><description><![CDATA[https://blog.youkuaiyun.com/Vermont_/article/details/84557065

https://blog.youkuaiyun.com/NeverLate_gogogo/article/details/93197422
]]></description><category></category></item><item><title><![CDATA[ActiveMQ的推拉模型]]></title><link>https://blog.youkuaiyun.com/didixiao_/article/details/101543269</link><guid>https://blog.youkuaiyun.com/didixiao_/article/details/101543269</guid><author>didixiao_</author><pubDate>Fri, 27 Sep 2019 16:41:41 +0800</pubDate><description><![CDATA[https://blog.youkuaiyun.com/qq_35508033/article/details/80255138
]]></description><category></category></item><item><title><![CDATA[大型网站技术架构:核心原理与案例分析]]></title><link>https://blog.youkuaiyun.com/didixiao_/article/details/101542721</link><guid>https://blog.youkuaiyun.com/didixiao_/article/details/101542721</guid><author>didixiao_</author><pubDate>Fri, 27 Sep 2019 16:34:41 +0800</pubDate><description><![CDATA[]]></description><category></category></item><item><title><![CDATA[企业IT架构转型之道 阿里巴巴中台战略思想与架构实战]]></title><link>https://blog.youkuaiyun.com/didixiao_/article/details/100975881</link><guid>https://blog.youkuaiyun.com/didixiao_/article/details/100975881</guid><author>didixiao_</author><pubDate>Tue, 24 Sep 2019 11:13:48 +0800</pubDate><description><![CDATA[1.厚平台，薄应用

就是分为服务层和应用层，就好比挂单有关的功能，可以做出一个微服务，然后用户前台和管理前台都能使用该服务。原来做的是依赖，现在是以服务的形式。

还有一种架构是每个功能实现一套从前端到dao层的服务。

2.

























































...]]></description><category></category></item><item><title><![CDATA[redo/undo log、binlog 的详解及其区别]]></title><link>https://blog.youkuaiyun.com/didixiao_/article/details/101206484</link><guid>https://blog.youkuaiyun.com/didixiao_/article/details/101206484</guid><author>didixiao_</author><pubDate>Mon, 23 Sep 2019 15:05:14 +0800</pubDate><description><![CDATA[https://www.jianshu.com/p/57c510f4ec28
]]></description><category></category></item><item><title><![CDATA[如何使用jstack分析线程状态]]></title><link>https://blog.youkuaiyun.com/didixiao_/article/details/100639713</link><guid>https://blog.youkuaiyun.com/didixiao_/article/details/100639713</guid><author>didixiao_</author><pubDate>Sun, 08 Sep 2019 21:42:04 +0800</pubDate><description><![CDATA[https://www.cnblogs.com/wuchanming/p/7766994.html


]]></description><category></category></item><item><title><![CDATA[MySQL分析数据运行状态利器【SHOW PROCESSLIST】]]></title><link>https://blog.youkuaiyun.com/didixiao_/article/details/100573078</link><guid>https://blog.youkuaiyun.com/didixiao_/article/details/100573078</guid><author>didixiao_</author><pubDate>Fri, 06 Sep 2019 09:34:01 +0800</pubDate><description><![CDATA[https://blog.youkuaiyun.com/qq_38182820/article/details/82079637
]]></description><category></category></item><item><title><![CDATA[阿里新零售总结]]></title><link>https://blog.youkuaiyun.com/didixiao_/article/details/100555020</link><guid>https://blog.youkuaiyun.com/didixiao_/article/details/100555020</guid><author>didixiao_</author><pubDate>Thu, 05 Sep 2019 11:45:27 +0800</pubDate><description><![CDATA[1.使用innodb存储引擎是行级锁，update，delete,insert默认添加排它锁。排它锁是不影响别的事务读的，只是别的事务不能加锁；行级锁也是锁的行，不影响别的。



2.唯一索引能够控制数据库中的重复，业务中有些字段是不能重复的，就用唯一索引控制。比如一个人只能买一件这个商品，就可以建商品id和userid的唯一索引

3.避免超卖，可以加一个sql判断，数量大于0.也可以使用re...]]></description><category></category></item><item><title><![CDATA[Effective Java]]></title><link>https://blog.youkuaiyun.com/didixiao_/article/details/100522687</link><guid>https://blog.youkuaiyun.com/didixiao_/article/details/100522687</guid><author>didixiao_</author><pubDate>Tue, 03 Sep 2019 17:01:40 +0800</pubDate><description><![CDATA[https://juejin.im/post/5d6a4cf6e51d45621479ad24#heading-9
]]></description><category></category></item><item><title><![CDATA[9 try-with-resources]]></title><link>https://blog.youkuaiyun.com/didixiao_/article/details/100518776</link><guid>https://blog.youkuaiyun.com/didixiao_/article/details/100518776</guid><author>didixiao_</author><pubDate>Tue, 03 Sep 2019 15:12:09 +0800</pubDate><description><![CDATA[https://www.cnblogs.com/itZhy/p/7636615.html
]]></description><category></category></item><item><title><![CDATA[3枚举单例实现]]></title><link>https://blog.youkuaiyun.com/didixiao_/article/details/100517385</link><guid>https://blog.youkuaiyun.com/didixiao_/article/details/100517385</guid><author>didixiao_</author><pubDate>Tue, 03 Sep 2019 14:22:11 +0800</pubDate><description><![CDATA[https://blog.youkuaiyun.com/qq_38844728/article/details/88903939

一.为什么使用枚举
单例的枚举实现在Effective Java一书中提到。因为其功能完善，使用简介，无偿地提供了序列化机制，在面对复杂的序列化或者反射攻击时任然可以绝对防止多次实例化等优点，被作者所推崇。
二.代码体现
模拟一个数据库连接类
public enum DataS...]]></description><category></category></item><item><title><![CDATA[1使用静态工厂方法代替构造器]]></title><link>https://blog.youkuaiyun.com/didixiao_/article/details/100514869</link><guid>https://blog.youkuaiyun.com/didixiao_/article/details/100514869</guid><author>didixiao_</author><pubDate>Tue, 03 Sep 2019 11:31:57 +0800</pubDate><description><![CDATA[这是Effective Java第2章提出的第一条建议：


考虑用静态工厂方法代替构造器


此处的静态工厂方法并不是设计模式，主要指static修饰的静态方法，关于static的说明可以参考之前的博文《java中final与static的使用场景总结》。

什么是静态工厂方法？

可以参考书中的例子（摘自JDK1.7 java.lang.Boolean）




public final cl...]]></description><category></category></item><item><title><![CDATA[Java对象的序列化与反序列化-Json篇]]></title><link>https://blog.youkuaiyun.com/didixiao_/article/details/100273287</link><guid>https://blog.youkuaiyun.com/didixiao_/article/details/100273287</guid><author>didixiao_</author><pubDate>Mon, 02 Sep 2019 14:30:22 +0800</pubDate><description><![CDATA[https://www.cnblogs.com/UniqueColor/p/8358377.html
]]></description><category></category></item><item><title><![CDATA[qps/tps/pv]]></title><link>https://blog.youkuaiyun.com/didixiao_/article/details/100184209</link><guid>https://blog.youkuaiyun.com/didixiao_/article/details/100184209</guid><author>didixiao_</author><pubDate>Sun, 01 Sep 2019 16:01:57 +0800</pubDate><description><![CDATA[https://zhuanlan.zhihu.com/p/28802925

术语说明：
QPS = req/sec = 请求数/秒

【QPS计算PV和机器的方式】

QPS统计方式 [一般使用 http_load 进行统计]
QPS = 总请求数 / ( 进程总数 * 请求时间 )
QPS: 单个进程每秒请求服务器的成功次数

单台服务器每天PV计算
公式1：每天总PV = QPS * 360...]]></description><category></category></item><item><title><![CDATA[java的耦合与解耦]]></title><link>https://blog.youkuaiyun.com/didixiao_/article/details/100107055</link><guid>https://blog.youkuaiyun.com/didixiao_/article/details/100107055</guid><author>didixiao_</author><pubDate>Tue, 27 Aug 2019 19:36:23 +0800</pubDate><description><![CDATA[https://blog.youkuaiyun.com/qq_38788128/article/details/81187763
]]></description><category></category></item><item><title><![CDATA[为什么要用枚举实现单例模式（避免反射、序列化问题）]]></title><link>https://blog.youkuaiyun.com/didixiao_/article/details/100030867</link><guid>https://blog.youkuaiyun.com/didixiao_/article/details/100030867</guid><author>didixiao_</author><pubDate>Fri, 23 Aug 2019 09:39:10 +0800</pubDate><description><![CDATA[https://www.cnblogs.com/linjiaxin/p/7923135.html
]]></description><category></category></item><item><title><![CDATA[createTime，updateTime处理]]></title><link>https://blog.youkuaiyun.com/didixiao_/article/details/99689225</link><guid>https://blog.youkuaiyun.com/didixiao_/article/details/99689225</guid><author>didixiao_</author><pubDate>Sat, 17 Aug 2019 09:47:46 +0800</pubDate><description><![CDATA[CREATE TABLE `luser` (
 `uid` int(11) unsigned NOT NULL COMMENT '关联 fuser 一对一',
 `pid` int(11) DEFAULT NULL COMMENT '邀请人为普通用户',
 `spid` int(11) DEFAULT NULL COMMENT '邀请人为合伙人',
 `inviteCount` int(...]]></description><category></category></item></channel></rss>