<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[jxausea的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/jxausea</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; jxausea]]></copyright><item><title><![CDATA[Java 集合框架 ArrayList 源码剖析]]></title><link>https://blog.youkuaiyun.com/jxausea/article/details/84924640</link><guid>https://blog.youkuaiyun.com/jxausea/article/details/84924640</guid><author>jxausea</author><pubDate>Sat, 11 Aug 2018 14:31:40 +0800</pubDate><description><![CDATA[
ArrayList实现了List接口，是顺序容器，即元素存放的数据与放进去的顺序相同，允许放入null元素，底层通过数组实现。除该类未实现同步外，其余跟Vector大致相同。每个ArrayList都有一个容量（capacity），表示底层数组的实际大小，容器内存储元素的个数不能多于当前容量。当向容器中添加元素时，如果容量不足，容器会自动增大底层数组的大小。前面已经提过，Java泛型只是编译器提供...]]></description><category></category></item><item><title><![CDATA[分布式存储系统关键问题]]></title><link>https://blog.youkuaiyun.com/jxausea/article/details/84924391</link><guid>https://blog.youkuaiyun.com/jxausea/article/details/84924391</guid><author>jxausea</author><pubDate>Mon, 06 Aug 2018 10:44:35 +0800</pubDate><description><![CDATA[
（一）关键问题

数据分布

对于存储系统，最重要的问题就是数据分布，即什么样的数据放置在什么样的节点上。数据分布时需要考虑数据是否均衡、以后是否容易扩容等一系列问题。不同的数据分布方式也存在不同的优缺点，需要根据自身数据特点进行选择。
1）哈希分布 =&amp;gt; 随机读取
取模直接哈希：将不同哈希值的数据分布到不同的服务器上

 
关键：找出一个散列特性很好的哈希函数
问题：增加...]]></description><category></category></item><item><title><![CDATA[基于Elasticsearch实现搜索建议]]></title><link>https://blog.youkuaiyun.com/jxausea/article/details/84924014</link><guid>https://blog.youkuaiyun.com/jxausea/article/details/84924014</guid><author>jxausea</author><pubDate>Fri, 27 Jul 2018 08:23:12 +0800</pubDate><description><![CDATA[
搜索建议是搜索的一个重要组成部分，一个搜索建议的实现通常需要考虑建议词的来源、匹配、排序、聚合、关联的文档数和拼写纠错等，本文介绍一个基于Elasticsearch实现的搜索建议。
问题描述
电商网站的搜索是最基础最重要的功能之一，搜索框上面的良好体验能为电商带来更高的收益，我们先来看看淘宝、京东、亚马逊网站的搜索建议。
在淘宝的搜索框输入【卫衣】时，下方的搜索建议包括建议词以及相关的标签...]]></description><category></category></item><item><title><![CDATA[互联网后端基础设施]]></title><link>https://blog.youkuaiyun.com/jxausea/article/details/84923982</link><guid>https://blog.youkuaiyun.com/jxausea/article/details/84923982</guid><author>jxausea</author><pubDate>Thu, 26 Jul 2018 11:11:27 +0800</pubDate><description><![CDATA[

1.1 后端基础设施
使用Java后端技术的目的就是构建业务应用，为用户提供在线或者离线服务。因此，一个业务应用需要哪些技术、依赖哪些基础设施就决定了需要掌握的后端技术有哪些。纵观整个互联网技术体系再结合公司的目前状况，笔者认为必不可少或者非常关键的后端基础技术/设施如下图所示：

这里的后端基础设施主要指的是应用在线上稳定运行需要依赖的关键组件或者服务。开发或者搭建好以上的后端基础设...]]></description><category></category></item><item><title><![CDATA[利用cookies实现对弹出窗口频率的控制]]></title><link>https://blog.youkuaiyun.com/jxausea/article/details/84923518</link><guid>https://blog.youkuaiyun.com/jxausea/article/details/84923518</guid><author>jxausea</author><pubDate>Sat, 14 Jul 2018 08:40:35 +0800</pubDate><description><![CDATA[
原理：

当用户第一次访问网站时候，此时没有设置cookies参数,并且设置过期，弹出显示对话框，弹完之后，设置cookies参数”popped=yes;expires=”+date.toGMTString()”，第二次加载时候，判断存在这个参数，则跳过加载对话框，cookies失效后，浏览器会自动删除失效的参数

代码：
JS/css引入

&amp;lt;link rel=”style...]]></description><category></category></item><item><title><![CDATA[集成druid数据源【JWordPress前台项目实战】]]></title><link>https://blog.youkuaiyun.com/jxausea/article/details/84923454</link><guid>https://blog.youkuaiyun.com/jxausea/article/details/84923454</guid><author>jxausea</author><pubDate>Fri, 13 Jul 2018 10:27:26 +0800</pubDate><description><![CDATA[
写在前面

  DRUID是阿里巴巴开源平台上一个数据库连接池实现，它结合了C3P0、DBCP、PROXOOL等DB池的优点，同时加入了日志监控，可以很好的监控DB池连接和SQL的执行情况，下面我们来讲讲springboot如何继承druid连接池

代码
pom.xml添加相应的jar

&amp;lt;!–alibaba 数据库连接池 druid 配置 –&amp;gt;&amp;lt;depende...]]></description><category></category></item><item><title><![CDATA[Semaphore源码分析]]></title><link>https://blog.youkuaiyun.com/jxausea/article/details/84923400</link><guid>https://blog.youkuaiyun.com/jxausea/article/details/84923400</guid><author>jxausea</author><pubDate>Thu, 12 Jul 2018 11:34:12 +0800</pubDate><description><![CDATA[
源码解析
Semaphore有两种模式，公平模式和非公平模式。公平模式就是调用acquire的顺序就是获取许可证的顺序，遵循FIFO；而非公平模式是抢占式的，也就是有可能一个新的获取线程恰好在一个许可证释放时得到了这个许可证，而前面还有等待的线程。
构造方法
Semaphore有两个构造方法，如下：
       public Semaphore(int permits) {
    ...]]></description><category></category></item><item><title><![CDATA[咱们来聊聊并发工具类Semaphore]]></title><link>https://blog.youkuaiyun.com/jxausea/article/details/84923337</link><guid>https://blog.youkuaiyun.com/jxausea/article/details/84923337</guid><author>jxausea</author><pubDate>Wed, 11 Jul 2018 10:30:18 +0800</pubDate><description><![CDATA[
什么是Semaphore？
Semaphore是计数信号量。Semaphore管理一系列许可证。每个acquire方法阻塞，直到有一个许可证可以获得然后拿走一个许可证；每个release方法增加一个许可证，这可能会释放一个阻塞的acquire方法。然而，其实并没有实际的许可证这个对象，Semaphore只是维持了一个可获得许可证的数量。
应用场景
Semaphore可以用于做流量控制，特别...]]></description><category></category></item><item><title><![CDATA[用栅栏（CyclicBarrier）实现高并发测试]]></title><link>https://blog.youkuaiyun.com/jxausea/article/details/84923300</link><guid>https://blog.youkuaiyun.com/jxausea/article/details/84923300</guid><author>jxausea</author><pubDate>Tue, 10 Jul 2018 10:59:09 +0800</pubDate><description><![CDATA[
CyclicBarrier
含义
栅栏允许两个或者多个线程在某个集合点同步。当一个线程到达集合点时，它将调用await()方法等待其它的线程。线程调用await()方法后，CyclicBarrier将阻塞这个线程并将它置入休眠状态等待其它线程的到来。等最后一个线程调用await()方法时，CyclicBarrier将唤醒所有等待的线程然后这些线程将继续执行。CyclicBarrier可以传入...]]></description><category></category></item><item><title><![CDATA[五分钟看懂UML类图与类的关系详解]]></title><link>https://blog.youkuaiyun.com/jxausea/article/details/84923255</link><guid>https://blog.youkuaiyun.com/jxausea/article/details/84923255</guid><author>jxausea</author><pubDate>Mon, 09 Jul 2018 11:25:26 +0800</pubDate><description><![CDATA[
在画类图的时候，理清类和类之间的关系是重点。类的关系有泛化(Generalization)、实现（Realization）、依赖(Dependency)和关联(Association)。其中关联又分为一般关联关系和聚合关系(Aggregation)，合成关系(Composition)。下面我们结合实例理解这些关系。
基本概念
类图（Class Diagram）: 类图是面向对象系统建模中最常...]]></description><category></category></item><item><title><![CDATA[压力测试神器stresstester源码分析]]></title><link>https://blog.youkuaiyun.com/jxausea/article/details/84923217</link><guid>https://blog.youkuaiyun.com/jxausea/article/details/84923217</guid><author>jxausea</author><pubDate>Sun, 08 Jul 2018 08:59:14 +0800</pubDate><description><![CDATA[
写在前面
stresstester-1.0.jar是早期淘宝的一个压力测试工具，很方便开发人员进行本地代码的压力测试，其他专门压力测试工具也有很多，如:jmeter  loadrunner 等等，本篇文章主要讲一下stresstester的源码设计
先来张类图

从上图可以看出StressTestUtils是和开发者打交道的最主要的类；下面来个例子

package com.taob...]]></description><category></category></item><item><title><![CDATA[咱们一起聊聊Java 8 Stream特性]]></title><link>https://blog.youkuaiyun.com/jxausea/article/details/84923201</link><guid>https://blog.youkuaiyun.com/jxausea/article/details/84923201</guid><author>jxausea</author><pubDate>Sat, 07 Jul 2018 09:53:11 +0800</pubDate><description><![CDATA[

Java 8 API添加了一个新的抽象称为流Stream，可以让你以一种声明的方式处理数据。
Stream 使用一种类似用 SQL 语句从数据库查询数据的直观方式来提供一种对 Java 集合运算和表达的高阶抽象。
Stream API可以极大提高Java程序员的生产力，让程序员写出高效率、干净、简洁的代码。

这种风格将要处理的元素集合看作一种流， 流在管道中传输， 并且可以在管道的...]]></description><category></category></item><item><title><![CDATA[咱们一起聊聊Java异常]]></title><link>https://blog.youkuaiyun.com/jxausea/article/details/84923151</link><guid>https://blog.youkuaiyun.com/jxausea/article/details/84923151</guid><author>jxausea</author><pubDate>Fri, 06 Jul 2018 10:34:25 +0800</pubDate><description><![CDATA[
什么是异常
程序运行时，发生的不被期望的事件，它阻止了程序按照程序员的预期正常执行，这就是异常。异常发生时，是任程序自生自灭，立刻退出终止，还是输出错误给用户？或者用C语言风格：用函数返回值作为执行状态？。
Java提供了更加优秀的解决办法：异常处理机制。
异常处理机制能让程序在异常发生时，按照代码的预先设定的异常处理逻辑，针对性地处理异常，让程序尽最大可能恢复正常并继续执行，且保持代码的...]]></description><category></category></item><item><title><![CDATA[在撩单元测试代码覆盖率]]></title><link>https://blog.youkuaiyun.com/jxausea/article/details/84923110</link><guid>https://blog.youkuaiyun.com/jxausea/article/details/84923110</guid><author>jxausea</author><pubDate>Thu, 05 Jul 2018 11:33:41 +0800</pubDate><description><![CDATA[

   在做单元测试时，代码覆盖率常常被拿来作为衡量测试好坏的指标，甚至，用代码覆盖率来考核测试任务完成情况，比如，代码覆盖率必须达到80％或 90％。于是乎，测试人员费尽心思设计案例覆盖代码。用代码覆盖率来衡量，有利也有有弊。本文我们就代码覆盖率展开讨论，也欢迎同学们踊跃评论。

首先，让我们先来了解一下所谓的“代码覆盖率”。我找来了所谓的定义：
代码覆盖率 ＝ 代码的覆盖程度，一种度...]]></description><category></category></item><item><title><![CDATA[分布式系统最终一致性]]></title><link>https://blog.youkuaiyun.com/jxausea/article/details/84923041</link><guid>https://blog.youkuaiyun.com/jxausea/article/details/84923041</guid><author>jxausea</author><pubDate>Wed, 04 Jul 2018 11:02:41 +0800</pubDate><description><![CDATA[
前言

目前的应用系统，不管是企业级应用还是互联网应用，最终数据的一致性是每个应用系统都要面临的问题，随着分布式的逐渐普及，数据一致性更加艰难，但是也很难有银弹的解决方案，也并不是引入特定的中间件或者特定的开源框架能够解决的，更多的还是看业务场景，根据场景来给出解决方案。根据笔者最近几年的了解，总结了几个点，更多的应用系统在编码的时候，更加关注数据的一致性，这样系统才是健壮的。

基础理...]]></description><category></category></item><item><title><![CDATA[八分钟了解缓存的常见问题？ ]]></title><link>https://blog.youkuaiyun.com/jxausea/article/details/84923009</link><guid>https://blog.youkuaiyun.com/jxausea/article/details/84923009</guid><author>jxausea</author><pubDate>Tue, 03 Jul 2018 18:07:08 +0800</pubDate><description><![CDATA[
一、缓存一致性问题
当数据时效性要求很高时，需要保证缓存中的数据与数据库中的保持一致，而且需要保证缓存节点和副本中的数据也保持一致，不能出现差异现象。这就比较依赖缓存的过期和更新策略。一般会在数据发生更改的时，主动更新缓存中的数据或者移除对应的缓存。

二、缓存并发问题
缓存过期后将尝试从后端数据库获取数据，这是一个看似合理的流程。但是，在高并发场景下，有可能多个请求并发的去从数据库获取...]]></description><category></category></item><item><title><![CDATA[如何在Eclipse中如何自动添加注释和自定义注释风格]]></title><link>https://blog.youkuaiyun.com/jxausea/article/details/84922926</link><guid>https://blog.youkuaiyun.com/jxausea/article/details/84922926</guid><author>jxausea</author><pubDate>Mon, 02 Jul 2018 11:16:45 +0800</pubDate><description><![CDATA[
背景简介
丰富的注释和良好的代码规范，对于代码的阅读性和可维护性起着至关重要的作用。几乎每个公司对这的要求还是比较严格的，往往会形成自己的一套编码规范。但是再实施过程中，如果全靠手动完成，不仅效率低下，还难以保证真正的符合规范。所以结合IDE环境，自动生成注释，还是很有必要的。今天我们就说一下，如何使用Eclipse给我们提供的自定义代码模版的功能来作业。
设置注释模板
设置注释模板的入口...]]></description><category></category></item><item><title><![CDATA[Markdown: Basics （快速入门）]]></title><link>https://blog.youkuaiyun.com/jxausea/article/details/84922888</link><guid>https://blog.youkuaiyun.com/jxausea/article/details/84922888</guid><author>jxausea</author><pubDate>Sat, 30 Jun 2018 08:14:56 +0800</pubDate><description><![CDATA[
Getting the Gist of Markdown’s Formatting Syntax
此页提供了 Markdown 的简单概念， 语法说明 页提供了完整详细的文档，说明了每项功能。但是 Markdown 其实很简单就可以上手，此页文档提供了一些范例，并且每个范例都会提供输出的 HTML 结果。
其实直接试试看也是一个很不错的方法， Dingus 是一个网页应用程序，你可以把自已编...]]></description><category></category></item><item><title><![CDATA[再谈幂等机制]]></title><link>https://blog.youkuaiyun.com/jxausea/article/details/84922829</link><guid>https://blog.youkuaiyun.com/jxausea/article/details/84922829</guid><author>jxausea</author><pubDate>Fri, 29 Jun 2018 10:30:10 +0800</pubDate><description><![CDATA[
一、什么是幂等性？
幂等性(Idempotence)。在HTTP/1.1规范中幂等性的定义是：

Methods can also have the property of “idempotence” in that (aside from error or expiration issues) the side-effects of N &amp;gt; 0 identical requests...]]></description><category></category></item><item><title><![CDATA[服务降级的一点认识]]></title><link>https://blog.youkuaiyun.com/jxausea/article/details/84922787</link><guid>https://blog.youkuaiyun.com/jxausea/article/details/84922787</guid><author>jxausea</author><pubDate>Thu, 28 Jun 2018 14:31:26 +0800</pubDate><description><![CDATA[
什么是服务降级
服务降级：主要是针对非正常情况下的应急服务措施;比如电商平台，在针对618、双11等高峰情形下采用部分服务不出现或者延时出现的情形。
举个例子

大家都见过女生旅行吧，大号的旅行箱是必备物，平常走走近处绰绰有余，但一旦出个远门，再大的箱子都白搭了，怎么办呢？常见的情景就是把物品拿出来分分堆，比了又比，最后一些非必需品的就忍痛放下了，等到下次箱子够用了，再带上用一用。而服务...]]></description><category></category></item></channel></rss>