<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[ZHAO_Beer的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/ZHAO_Beer</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ZHAO_Beer]]></copyright><item><title><![CDATA[缓存使用注意点总结]]></title><link>https://blog.youkuaiyun.com/ZHAO_Beer/article/details/103464313</link><guid>https://blog.youkuaiyun.com/ZHAO_Beer/article/details/103464313</guid><author>ZHAO_Beer</author><pubDate>Mon, 09 Dec 2019 20:08:19 +0800</pubDate><description><![CDATA[常见的缓存问题以及解决方案：
当系统处于高峰期的时候，业务流量剧增，给系统带来了很大的压力，严重情况下可能导致系统宕机。

我们一般都会使用 异步/限流/缓存 等措施来减轻DB的 压力。其中每种措施都有复杂的使用场景以及措施。 而其中 缓存我们使用的就有很多，例如缓存 个人主页圈子列表第一页，等一些不太易变的数据。
在使用缓存系统的时候，当遇到大并发的情况下，经常会遇到较多的问题，以下总结一下常见...]]></description><category></category></item><item><title><![CDATA[经验学习总结]]></title><link>https://blog.youkuaiyun.com/ZHAO_Beer/article/details/103464205</link><guid>https://blog.youkuaiyun.com/ZHAO_Beer/article/details/103464205</guid><author>ZHAO_Beer</author><pubDate>Mon, 09 Dec 2019 20:04:23 +0800</pubDate><description><![CDATA[前言：
在系统中经常存在一些 需要经过一定的计算/存储在某些较为昂贵的存储介质  才能得到的数据集，并且该数据集在一定时间内可以保持不变，或者说业务上对该数据的时效性不是那么的敏感，但是却对性能很敏感，
这时候我们就可以使用 JVM 的本地缓存来实现。
思考：
由于获取 该数据集 的成本较高（1. 需要经过复杂的计算；2.需要从其他较为昂贵的地方获取【例如 阿里云的 ots, 是 按照 CU 收费...]]></description><category></category></item><item><title><![CDATA[tmux]]></title><link>https://blog.youkuaiyun.com/ZHAO_Beer/article/details/103464027</link><guid>https://blog.youkuaiyun.com/ZHAO_Beer/article/details/103464027</guid><author>ZHAO_Beer</author><pubDate>Mon, 09 Dec 2019 19:55:48 +0800</pubDate><description><![CDATA[会话和进程：
平时使用命令行一般都是打开一个终端，输入ssh指令，和远程主机进行交互，然后关闭窗口，这称之为一次会话（session）;
下次打开的时候需要重新连接远程主机，同时上次的操作历史指令已经不见了。这就反应了会话的特性，窗口和在窗口中启动的会话进程是强绑定的，打开窗口，会话开始，关闭窗口，会话结束，同时在会话中启动的进程也会结束。
为了解决这个问题，会话和窗口可以解绑，窗口关闭，会话不结...]]></description><category></category></item><item><title><![CDATA[powerline]]></title><link>https://blog.youkuaiyun.com/ZHAO_Beer/article/details/103463915</link><guid>https://blog.youkuaiyun.com/ZHAO_Beer/article/details/103463915</guid><author>ZHAO_Beer</author><pubDate>Mon, 09 Dec 2019 19:48:46 +0800</pubDate><description><![CDATA[学习了 tmux 神器，总感觉少了一点什么。对了总是感觉命令行这么的单调，不够的酷炫，所以我们再来看一下powerline 美化吧。
前期准备：
powerline 是一款比较酷炫的状态栏工具，可以美化 终端/vim，他是由 python 开发的，并且现在仅支持 python2.X，由于某些原因，python2.x python3.x 互不兼容，所以这就要求我们必须安装python2.x 的版本了...]]></description><category></category></item><item><title><![CDATA[spring]]></title><link>https://blog.youkuaiyun.com/ZHAO_Beer/article/details/103283225</link><guid>https://blog.youkuaiyun.com/ZHAO_Beer/article/details/103283225</guid><author>ZHAO_Beer</author><pubDate>Wed, 27 Nov 2019 20:50:50 +0800</pubDate><description><![CDATA[######AOP 详解：

]]></description><category></category></item><item><title><![CDATA[redis]]></title><link>https://blog.youkuaiyun.com/ZHAO_Beer/article/details/103273747</link><guid>https://blog.youkuaiyun.com/ZHAO_Beer/article/details/103273747</guid><author>ZHAO_Beer</author><pubDate>Wed, 27 Nov 2019 12:42:28 +0800</pubDate><description><![CDATA[1. HyperLogLog
redis 在 2.8.9 版本添加了 HyperLogLog 结构，HyperLogLog 的优点是，在输入元素的数量或者体积非常非常大时，计算基数所需的空间总是固定 的、并且是很小的。
在 Redis 里面，每个 HyperLogLog 键只需要花费 12 KB 内存，就可以计算接近 2^64 个不同元素的基 数。这和计算基数时，元素越多耗费内存就越多的集合形成鲜...]]></description><category></category></item><item><title><![CDATA[java]]></title><link>https://blog.youkuaiyun.com/ZHAO_Beer/article/details/103270769</link><guid>https://blog.youkuaiyun.com/ZHAO_Beer/article/details/103270769</guid><author>ZHAO_Beer</author><pubDate>Wed, 27 Nov 2019 10:24:28 +0800</pubDate><description><![CDATA[1. Date 和 DateTime 的区别：
Date: 代表xxxx年xx月xx日 只表示前面的日期；
DateTime: 标示xxxx年xx月xx日xx时xx分xx秒 精确到是分秒，用于做时间戳；

]]></description><category></category></item><item><title><![CDATA[sql]]></title><link>https://blog.youkuaiyun.com/ZHAO_Beer/article/details/80538087</link><guid>https://blog.youkuaiyun.com/ZHAO_Beer/article/details/80538087</guid><author>ZHAO_Beer</author><pubDate>Fri, 30 Aug 2019 20:53:58 +0800</pubDate><description><![CDATA[建索引的几大原则

1.最左前缀匹配原则，非常重要的原则，mysql会一直向右匹配直到遇到范围查询(&gt;、&lt;、between、like)就停止匹配，比如a = 1 and b = 2 and c &gt; 3 and d = 4 如果建立(a,b,c,d)顺序的索引，d是用不到索引的，如果建立(a,b,d,c)的索引则都可以用到，a,b,d的顺序可以任意调整。
2.=和in可...]]></description><category></category></item><item><title><![CDATA[记一次 Redission 的  Lock.tryLock(500, TimeUnit.MillSecond) 导致的线上Bug。]]></title><link>https://blog.youkuaiyun.com/ZHAO_Beer/article/details/100165324</link><guid>https://blog.youkuaiyun.com/ZHAO_Beer/article/details/100165324</guid><author>ZHAO_Beer</author><pubDate>Fri, 30 Aug 2019 20:49:49 +0800</pubDate><description><![CDATA[前不久产品给提了一个Bug，说他在说feed 流的时候，有时候会突然刷到空内容，而且之后无论如何刷新，总也刷不出内容。我心里一想，卧槽，这么严重，立马提升bug为高优，并着手去修复。



业务背景介绍： 业务背景大概这这样， 在一个 关注Tab 页面下，用户也可查看用户关注人的一些动态信息Feed流,。前端只是去请求固定的接口，后端需要调用另一个系统去阿里云TimeLine 引擎分页...]]></description><category></category></item><item><title><![CDATA[摘抄较好讲解]]></title><link>https://blog.youkuaiyun.com/ZHAO_Beer/article/details/84572447</link><guid>https://blog.youkuaiyun.com/ZHAO_Beer/article/details/84572447</guid><author>ZHAO_Beer</author><pubDate>Tue, 27 Nov 2018 20:03:13 +0800</pubDate><description><![CDATA[转载 https://blog.youkuaiyun.com/sinat_22594643/article/details/80509266 

预备知识
首先是关于return返回的底层知识

  java方法是在栈幀中执行，栈幀是线程私有栈的单位，执行方法的线程会为每一个方法分配一小块栈空间来作为该方法执行时的内存空间，栈幀分为三个区域：
    1. 操作数栈，用来保存正在执行的表达式中的操作数，数据结...]]></description><category></category></item><item><title><![CDATA[String.intern() 的详细理解]]></title><link>https://blog.youkuaiyun.com/ZHAO_Beer/article/details/80501776</link><guid>https://blog.youkuaiyun.com/ZHAO_Beer/article/details/80501776</guid><author>ZHAO_Beer</author><pubDate>Wed, 30 May 2018 09:34:19 +0800</pubDate><description><![CDATA[                    字符串intern 的作用以及具体案例前提：如果想了解字符串的intern操作产生的影响，必须首先知道字符串对象的创建方式，一般字符串有四种创建方式，如下String str1 = &quot;123&quot;;  // 字面两直接赋值
String str2 = new String(&quot;123&quot;); // 调用字符串构造方法生成对象
String str3 = str1 +...]]></description><category></category></item><item><title><![CDATA[动态规划]]></title><link>https://blog.youkuaiyun.com/ZHAO_Beer/article/details/69371784</link><guid>https://blog.youkuaiyun.com/ZHAO_Beer/article/details/69371784</guid><author>ZHAO_Beer</author><pubDate>Thu, 06 Apr 2017 08:51:32 +0800</pubDate><description><![CDATA[动态规划相信大家都知道，动态规划算法也是新手在刚接触算法设计时很苦恼的问题，有时候觉得难以理解，但是真正理解之后，就会觉得动态规划其实并没有想象中那么难。网上也有很多关于讲解动态规划的文章，大多都是叙述概念，讲解原理，让人觉得晦涩难懂，即使一时间看懂了，发现当自己做题的时候又会觉得无所适从。我觉得，理解算法最重要的还是在于练习，只有通过自己练习，才可以更快地提升。话不多说，接下来，下面我就通过一个例]]></description><category></category></item><item><title><![CDATA[算法思想]]></title><link>https://blog.youkuaiyun.com/ZHAO_Beer/article/details/69371779</link><guid>https://blog.youkuaiyun.com/ZHAO_Beer/article/details/69371779</guid><author>ZHAO_Beer</author><pubDate>Thu, 06 Apr 2017 08:50:37 +0800</pubDate><description><![CDATA[代码如上，我们可以得到试探算法的一般结构： 
对解集合中各解进行试探｛IF（满足条件）｛保存结果if（完成集合中所有解的试探)输出解else重复本过程进行下一步的试探（递归调用本函数）｝else｛恢复本过程保存结果之前的状态，进行另一步试探。｝｝]]></description><category></category></item><item><title><![CDATA[基础排序算法]]></title><link>https://blog.youkuaiyun.com/ZHAO_Beer/article/details/54880955</link><guid>https://blog.youkuaiyun.com/ZHAO_Beer/article/details/54880955</guid><author>ZHAO_Beer</author><pubDate>Sun, 05 Feb 2017 14:23:34 +0800</pubDate><description><![CDATA[***排序算法是平常面试中常见的，平时没有做过总结，所以就想着总结一下东西，写点博客，就不记笔记了，记了也没有时间去看他，所以就在博客上记录下来，忘得时候能查（说明》》默认是从小到大进行排列）***首先最经典的排序算法（便利默认从 0 开始进行便利） 
 简单理解：冒泡排序的主要思想为对需要排序的数列进行扫描每次扫描找出最大的（或最小的）到两边的位置（即冒泡浮起到上面），经过一定的次数就可以使数列有]]></description><category></category></item><item><title><![CDATA[Java 字符串原理浅析]]></title><link>https://blog.youkuaiyun.com/ZHAO_Beer/article/details/52937239</link><guid>https://blog.youkuaiyun.com/ZHAO_Beer/article/details/52937239</guid><author>ZHAO_Beer</author><pubDate>Wed, 26 Oct 2016 19:01:54 +0800</pubDate><description><![CDATA[在平常的javaWeb开发开发中，使用的最多的莫过于字符串对象了，所以对于javaWeb的开发人员来说，字符串是最熟悉的对象了，但从另一个方面来说，字符串对象又是最陌生的，描述这么一种情况，当下有这么一个恰当的流行词汇，最熟悉的陌生人，由于字符串实在是太平常太重要了，所以在一般的开发中，框架为我们做了完整又严密的考虑，有事我们竟不知道字符串是在什么时候，如何转换为其他的我们所需要的数据类型的，而且由]]></description><category></category></item><item><title><![CDATA[java 自动装箱拆箱及 数据对象的缓存机制详解]]></title><link>https://blog.youkuaiyun.com/ZHAO_Beer/article/details/52901273</link><guid>https://blog.youkuaiyun.com/ZHAO_Beer/article/details/52901273</guid><author>ZHAO_Beer</author><pubDate>Sun, 23 Oct 2016 13:25:20 +0800</pubDate><description><![CDATA[近段时间由于准备要找工作，就看起了源码，以前只知道，java 中的 Integer String 等类为了优化系统，采用了一系列的高速缓存机制，来提升系统的性能，但由于是在是太忙（太懒）故没有好好的研究过这方面的内容，这段时间终于没有什么杂事了，可以好好静下心来好好研究研究。
我们首先来看一个小例子：     @Test
    public void testIntegerCache(){]]></description><category></category></item><item><title><![CDATA[基础算法系列]]></title><link>https://blog.youkuaiyun.com/ZHAO_Beer/article/details/52892560</link><guid>https://blog.youkuaiyun.com/ZHAO_Beer/article/details/52892560</guid><author>ZHAO_Beer</author><pubDate>Sat, 22 Oct 2016 15:30:20 +0800</pubDate><description><![CDATA[最近一段时间比较的闲，没有什么项目要完成，没有啥任务，没事就复习起java了，看到数组的时候，就想着写个排序算法的汇总，希望自己可以坚持下去，大约有七种排序方式吧，想着当初自己接触java的时候就没有好好看排序，总是感觉有工具类之类的，就没有看重这些个东西，到后来才发现，这些基础的东西也是很重要的，虽然说重复制造轮子没有什么用处，但我感觉那是对别人来说的，对于个人来说，这个过程是很重要的，没有重复制]]></description><category></category></item><item><title><![CDATA[前缀++ 和 后缀 ++ 的深刻理解]]></title><link>https://blog.youkuaiyun.com/ZHAO_Beer/article/details/52890777</link><guid>https://blog.youkuaiyun.com/ZHAO_Beer/article/details/52890777</guid><author>ZHAO_Beer</author><pubDate>Sat, 22 Oct 2016 10:46:14 +0800</pubDate><description><![CDATA[以前只知道自加放在前面和放在后面的区别，是先赋值后自加和先自加后赋值的区别，却不知道，如果没有赋值运算，变量直接参与运算的区别，总是以为如果直接参与运算的话，应该是 自加符号 放在前面和后面是没有区别的，在前几天写程序的过程中突然发现了bug ，总是找不到问题，后来一步步的查看才知道自己以前的理解是错的，特意就做了个总结提醒自己，这也是容易犯错的地方，总是想当然。
    例如下面的代码输出就说明了]]></description><category></category></item></channel></rss>