<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[鸟窝]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/smallnest</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; smallnest]]></copyright><item><title><![CDATA[跟着实例学习ZooKeeper的用法： Leader选举]]></title><link>https://blog.youkuaiyun.com/smallnest/article/details/41895431</link><guid>https://blog.youkuaiyun.com/smallnest/article/details/41895431</guid><author>smallnest</author><pubDate>Fri, 12 Dec 2014 16:21:09 +0800</pubDate><description><![CDATA[http://colobu.com/2014/12/12/zookeeper-recipes-by-example-1/

ZooKeeper官方给出了使用zookeeper的几种用途。

Leader ElectionBarriersQueuesLocksTwo-phased Commit其它应用如Name Service, Configuration, Group Membership]]></description><category></category></item><item><title><![CDATA[java 8 lambdas深度研究]]></title><link>https://blog.youkuaiyun.com/smallnest/article/details/39179715</link><guid>https://blog.youkuaiyun.com/smallnest/article/details/39179715</guid><author>smallnest</author><pubDate>Wed, 10 Sep 2014 12:35:10 +0800</pubDate><description><![CDATA[Java 8发布有一段日子， 大家关注Java 8中的lambda可能更早， 对Java 8中这一最重要的语言变化也基本熟悉了。这篇文章将深入研究Java 8中的lambda特性以及Stream接口等， 讨论一些深层次的技术细节。
比如， 一个lambda表达式序列化反序列化后， 对捕获的上下文变量的引用的情况。 Lambda表达式递归。 类方法的引用和实例方法的引用的区别。 菱形继承的问题。 Stream接口的Lazy和eager模式。 Lambda的性能。]]></description><category></category></item><item><title><![CDATA[Sass基础]]></title><link>https://blog.youkuaiyun.com/smallnest/article/details/38847709</link><guid>https://blog.youkuaiyun.com/smallnest/article/details/38847709</guid><author>smallnest</author><pubDate>Tue, 26 Aug 2014 14:59:17 +0800</pubDate><description><![CDATA[Css自己本身很有趣，但是杨士丹变得越来越大，越来越复杂， 变得很难维护。 这真是预处理器要做的。 Sass让你使用CSS不存在的特性，比如变量，嵌套，混合(mixin)， 继承等其它90个好的玩意来让CSS编写变得更有趣。

一旦你开始使用Sass, 它会预处理你的Saa文件， 把它村委一个正常的CSS文件， 用在你的网站上。]]></description><category></category></item><item><title><![CDATA[Java序列化框架性能比较]]></title><link>https://blog.youkuaiyun.com/smallnest/article/details/38847653</link><guid>https://blog.youkuaiyun.com/smallnest/article/details/38847653</guid><author>smallnest</author><pubDate>Tue, 26 Aug 2014 14:55:33 +0800</pubDate><description><![CDATA[jvm-serializers提供了一个很好的比较各种Java序列化的的测试套件。 它罗列了各种序列化框架， 可以自动生成测试报告。
我在AWS c3.xlarge机器上进行了测试，一下是测试报告与解析。]]></description><category></category></item><item><title><![CDATA[最流行的android组件大全]]></title><link>https://blog.youkuaiyun.com/smallnest/article/details/38658593</link><guid>https://blog.youkuaiyun.com/smallnest/article/details/38658593</guid><author>smallnest</author><pubDate>Mon, 18 Aug 2014 13:02:18 +0800</pubDate><description><![CDATA[Android 是目前最流行的移动操作系统(还需要加之一吗？)。 随着新版本的不断发布， Android的功能也日益强大， 涌现了很多流行的应用程序， 也催生了一大批的优秀的组件。
本文试图将目前流行的组件收集起来以供参考， 如果你发现本文还没有列出的组件，欢迎在评论中贴出来，我会定期的更新本文。

    很好的中文教程
    Google Android官方培训课程中文版

    awesome-android， android列表。

    另，github上的一个项目， 收集了好多的Andro]]></description><category></category></item><item><title><![CDATA[Java bean validation 规范与参考实现]]></title><link>https://blog.youkuaiyun.com/smallnest/article/details/38491541</link><guid>https://blog.youkuaiyun.com/smallnest/article/details/38491541</guid><author>smallnest</author><pubDate>Mon, 11 Aug 2014 13:54:24 +0800</pubDate><description><![CDATA[JSR 303 – Bean Validation 是一个数据验证的规范。 2009年11月正式发布最终版本。
在任何时候，当你要处理一个应用程序的业务逻辑，数据校验是你必须要考虑和面对的事情。应用程序必须通过某种手段来确保输入进来的数据从语义上来讲是正确的。在通常的情况下，应用程序是分层的，比如表现层，业务层，持久化层等，很多时候同样的数据验证逻辑会出现在不同的层，这样就会导致代码冗余和一些管理的问题，比如说语义的一致性等。为了避免这样的情况发生，最好是将验证逻辑与相应的域模型进行绑定，为各个层提供统一的]]></description><category></category></item><item><title><![CDATA[Metrics介绍和Spring的集成]]></title><link>https://blog.youkuaiyun.com/smallnest/article/details/38491507</link><guid>https://blog.youkuaiyun.com/smallnest/article/details/38491507</guid><author>smallnest</author><pubDate>Mon, 11 Aug 2014 13:52:28 +0800</pubDate><description><![CDATA[Metrics可以为你的代码的运行提供无与伦比的洞察力。作为一款监控指标的度量类库，它提供了很多模块可以为第三方库或者应用提供辅助统计信息， 比如Jetty, Logback, Log4j, Apache HttpClient, Ehcache, JDBI, Jersey, 它还可以将度量数据发送给Ganglia和Graphite以提供图形化的监控。

Metrics提供了Gauge、Counter、Meter、Histogram、Timer等度量工具类以及Health Check功能。]]></description><category></category></item><item><title><![CDATA[Kafka入门]]></title><link>https://blog.youkuaiyun.com/smallnest/article/details/38491483</link><guid>https://blog.youkuaiyun.com/smallnest/article/details/38491483</guid><author>smallnest</author><pubDate>Mon, 11 Aug 2014 13:50:49 +0800</pubDate><description><![CDATA[Apache Kafka是一个分布式消息发布订阅系统。它最初由LinkedIn公司基于独特的设计实现为一个分布式的提交日志系统( a distributed commit log)，，之后成为Apache项目的一部分。Kafka系统快速、可扩展并且可持久化。它的分区特性，可复制和可容错都是其不错的特性。

Apache Kafka与传统消息系统相比，有以下不同：

    它被设计为一个分布式系统，易于向外扩展；
    它同时为发布和订阅提供高吞吐量；
    它支持多订阅者，当失败时能自动平衡消费者；
]]></description><category></category></item><item><title><![CDATA[使用Apache Bench 和 Gnuplot产生性能测试图]]></title><link>https://blog.youkuaiyun.com/smallnest/article/details/38491445</link><guid>https://blog.youkuaiyun.com/smallnest/article/details/38491445</guid><author>smallnest</author><pubDate>Mon, 11 Aug 2014 13:49:02 +0800</pubDate><description><![CDATA[http://colobu.com/2014/08/04/Apache-Bench-and-Gnuplot/]]></description><category></category></item><item><title><![CDATA[三步创建Disruptor应用]]></title><link>https://blog.youkuaiyun.com/smallnest/article/details/38491417</link><guid>https://blog.youkuaiyun.com/smallnest/article/details/38491417</guid><author>smallnest</author><pubDate>Mon, 11 Aug 2014 13:45:04 +0800</pubDate><description><![CDATA[博客地址 
http://colobu.com/2014/08/01/3-steps-to-create-a-disruptor-application/




Disruptor是一个高性能的用于线程间消息处理的开源框架。它的目标就是快.
我们知道，java.util.concurrent.ArrayBlockingQueue 是一个非常优秀的有界队列实现。Disruptor与之]]></description><category></category></item><item><title><![CDATA[How to Analyze Java Thread Dumps]]></title><link>https://blog.youkuaiyun.com/smallnest/article/details/8102232</link><guid>https://blog.youkuaiyun.com/smallnest/article/details/8102232</guid><author>smallnest</author><pubDate>Tue, 23 Oct 2012 12:13:34 +0800</pubDate><description><![CDATA[http://java.dzone.com/articles/how-analyze-java-thread-dumps

The content of this article was originally written by Tae Jin Gu on the 
Cubrid blog.  
When there is an obstacle, or when a Java base]]></description><category></category></item><item><title><![CDATA[bash里的特殊变量]]></title><link>https://blog.youkuaiyun.com/smallnest/article/details/6778903</link><guid>https://blog.youkuaiyun.com/smallnest/article/details/6778903</guid><author>smallnest</author><pubDate>Thu, 15 Sep 2011 16:57:52 +0800</pubDate><description><![CDATA[变量名含义$0shell或shell脚本的名字$*以一对双引号给出参数列表$@将各个参数分别加双引号返回$#参数的个数$_代表上一个命令的最后一个参数$$代表所在命令的PID$!代表最后执行的后台命令的PID$?代表上一个命令执行后的退出状态$NN为0或者正整数，当N为0的时候，]]></description><category></category></item><item><title><![CDATA[动态创建Spring HttpInvoker client]]></title><link>https://blog.youkuaiyun.com/smallnest/article/details/6774755</link><guid>https://blog.youkuaiyun.com/smallnest/article/details/6774755</guid><author>smallnest</author><pubDate>Wed, 14 Sep 2011 15:33:47 +0800</pubDate><description><![CDATA[https://jira.springsource.org/browse/SPR-4045If you want to abstract the HttpInvokerProxyFactoryBean and its necessary afterPropertiesSet()]]></description><category></category></item><item><title><![CDATA[quicksort]]></title><link>https://blog.youkuaiyun.com/smallnest/article/details/6461313</link><guid>https://blog.youkuaiyun.com/smallnest/article/details/6461313</guid><author>smallnest</author><pubDate>Thu, 02 Jun 2011 14:49:00 +0800</pubDate><description><![CDATA[function
 partition(array, left, right, pivotIndex)
     pivotValue := array[pivotIndex]
     swap array[pivotIndex] and array[right]  // Move pivot to end

     storeIndex := left
     for
 i  from 
 left to
 right - 1 // left ≤ i < rightif
 arr]]></description><category></category></item><item><title><![CDATA[quickselect]]></title><link>https://blog.youkuaiyun.com/smallnest/article/details/6461303</link><guid>https://blog.youkuaiyun.com/smallnest/article/details/6461303</guid><author>smallnest</author><pubDate>Thu, 02 Jun 2011 14:45:00 +0800</pubDate><description><![CDATA[function
 partition(list, left, right, pivotIndex)
     pivotValue := list[pivotIndex]
     swap list[pivotIndex] and list[right]  // Move pivot to end

     storeIndex := left
     for
 i from
 left to
 right
         if
 list[i] < pivotValue
]]></description><category></category></item><item><title><![CDATA[Top K algorithm]]></title><link>https://blog.youkuaiyun.com/smallnest/article/details/6461209</link><guid>https://blog.youkuaiyun.com/smallnest/article/details/6461209</guid><author>smallnest</author><pubDate>Thu, 02 Jun 2011 14:12:00 +0800</pubDate><description><![CDATA[<br />function quickfindFirstK(list, left, right, k)<br />
     if right > left<br />
         select pivotIndex between left and right<br />
         pivotNewIndex := partition(list, left, right, pivotIndex)<br />
         if pivotNewIndex > k  // new]]></description><category></category></item><item><title><![CDATA[Spring MVC 和Struts2的性能比较]]></title><link>https://blog.youkuaiyun.com/smallnest/article/details/6424303</link><guid>https://blog.youkuaiyun.com/smallnest/article/details/6424303</guid><author>smallnest</author><pubDate>Mon, 16 May 2011 14:21:00 +0800</pubDate><description><![CDATA[Spring MVC 和Struts2的性能比较]]></description><category></category></item><item><title><![CDATA[关于final在方法参数中的应用]]></title><link>https://blog.youkuaiyun.com/smallnest/article/details/6184057</link><guid>https://blog.youkuaiyun.com/smallnest/article/details/6184057</guid><author>smallnest</author><pubDate>Mon, 14 Feb 2011 14:53:00 +0800</pubDate><description><![CDATA[<br />public class Test
{
	public static void t(final O o)
	{
		//o = new O(); //ERROR
		o.x++; //final修饰的是实例，不会影响对o的成员的修改
	}
	
	public static void t(final int i)
	{
		i++; //ERROR
	}
	
	
	public static void main(String[] args)
	{
		Test.t(]]></description><category></category></item><item><title><![CDATA[JAVA的初始化顺序]]></title><link>https://blog.youkuaiyun.com/smallnest/article/details/6184028</link><guid>https://blog.youkuaiyun.com/smallnest/article/details/6184028</guid><author>smallnest</author><pubDate>Mon, 14 Feb 2011 14:45:00 +0800</pubDate><description><![CDATA[JAVA的初始化顺序： 父类静态变量、块--->子类静态变量、块--->父类实例变量--->父类构造函数--->子类实例变量--->子类构造函数]]></description><category></category></item><item><title><![CDATA[使用JAVA和C#开发Ribbon界面]]></title><link>https://blog.youkuaiyun.com/smallnest/article/details/5146219</link><guid>https://blog.youkuaiyun.com/smallnest/article/details/5146219</guid><author>smallnest</author><pubDate>Wed, 06 Jan 2010 22:05:00 +0800</pubDate><description><![CDATA[Ribbon 原来出现在 Microsoft Office 2007 的 Word、Excel 和 Powerpoint 組件中，后来也被运用到 Windows 7 的一些附加组件等其它软件中，如画图和写字板。它是一个收藏了命令按钮和图标的面板。它把命令组织成一组"标签"，每一组包含了相关的命令。每一个应用程序都有一个不同的标签组，展示了程序所提供的功能。在每个标签里，各种的相关的选项被组在一起。]]></description><category></category></item></channel></rss>