<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[【无与科比】]]></title><description><![CDATA[编织梦想，程就未来~]]></description><link>https://blog.youkuaiyun.com/KobeSilent</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; KobeSilent]]></copyright><item><title><![CDATA[Java堆空间的划分：新生代、老年代]]></title><link>https://blog.youkuaiyun.com/KobeSilent/article/details/58605329</link><guid>https://blog.youkuaiyun.com/KobeSilent/article/details/58605329</guid><author>KobeSilent</author><pubDate>Tue, 28 Feb 2017 17:34:25 +0800</pubDate><description><![CDATA[在JVM中堆空间划分如下图所示





上图中，刻画了Java程序运行时的堆空间,可以简述成如下2条  
1.JVM中堆空间可以分成三个大区，新生代、老年代、永久代  
2.新生代可以划分为三个区，Eden区，两个幸存区  在JVM运行时，可以通过配置以下参数改变整个JVM堆的配置比例

1.JVM运行时堆的大小

　　-Xms堆的最小值

　　-Xmx堆空间的最大值

2.]]></description><category></category></item><item><title><![CDATA[SimpleChannelInboundHandler和ChannelInboundHandlerAdapter区别]]></title><link>https://blog.youkuaiyun.com/KobeSilent/article/details/52711343</link><guid>https://blog.youkuaiyun.com/KobeSilent/article/details/52711343</guid><author>KobeSilent</author><pubDate>Fri, 30 Sep 2016 14:56:59 +0800</pubDate><description><![CDATA[一般用netty来发送和接收数据都会继承SimpleChannelInboundHandler和ChannelInboundHandlerAdapter这两个抽象类，那么这两个到底有什么区别呢？

其实用这两个抽象类是有讲究的，在客户端的业务Handler继承的是SimpleChannelInboundHandler，而在服务器端继承的是ChannelInboundHandlerAdapter]]></description><category></category></item><item><title><![CDATA[RabbitMQ与KafKa区别]]></title><link>https://blog.youkuaiyun.com/KobeSilent/article/details/52710315</link><guid>https://blog.youkuaiyun.com/KobeSilent/article/details/52710315</guid><author>KobeSilent</author><pubDate>Fri, 30 Sep 2016 11:37:05 +0800</pubDate><description><![CDATA[在应用场景方面，

RabbitMQ,遵循AMQP协议，由内在高并发的erlanng语言开发，用在实时的对可靠性要求比较高的消息传递上。

kafka是Linkedin于2010年12月份开源的消息发布订阅系统,它主要用于处理活跃的流式数据,大数据量的数据处理上。

1)在架构模型方面，

RabbitMQ遵循AMQP协议，RabbitMQ的broker由Exchange,Bind]]></description><category></category></item><item><title><![CDATA[RabbitMQ三种Exchange模式(fanout,direct,topic)的性能比较]]></title><link>https://blog.youkuaiyun.com/KobeSilent/article/details/52313147</link><guid>https://blog.youkuaiyun.com/KobeSilent/article/details/52313147</guid><author>KobeSilent</author><pubDate>Thu, 25 Aug 2016 11:43:20 +0800</pubDate><description><![CDATA[RabbitMQ中，所有生产者提交的消息都由Exchange来接受，然后Exchange按照特定的策略转发到Queue进行存储

RabbitMQ提供了四种Exchange：fanout,direct,topic,header

header模式在实际使用中较少，本文只对前三种模式进行比较。

性能排序：fanout > direct >> topic。比例大约为11：10：6]]></description><category></category></item><item><title><![CDATA[LinkedList源码注释]]></title><link>https://blog.youkuaiyun.com/KobeSilent/article/details/51954080</link><guid>https://blog.youkuaiyun.com/KobeSilent/article/details/51954080</guid><author>KobeSilent</author><pubDate>Tue, 19 Jul 2016 11:16:43 +0800</pubDate><description><![CDATA[package java.util;

public class LinkedList extends AbstractSequentialList
    implements List, Deque, Cloneable, java.io.Serializable
{	//deque 即双端队列。是一种具有队列和栈的性质的数据结构。双端队列中的元素可以从两端弹出，其限定插入和删除操作在表的两端]]></description><category></category></item><item><title><![CDATA[Java 异步回调机制]]></title><link>https://blog.youkuaiyun.com/KobeSilent/article/details/51783902</link><guid>https://blog.youkuaiyun.com/KobeSilent/article/details/51783902</guid><author>KobeSilent</author><pubDate>Wed, 29 Jun 2016 16:28:15 +0800</pubDate><description><![CDATA[一、什么是回调
回调，回调。要先有调用，才有调用者和被调用者之间的回调。所以在百度百科中是这样的：
软件模块之间总是存在着一定的接口，从调用方式上，可以把他们分为三类：同步调用、回调和异步调用。
回调是一种特殊的调用，至于三种方式也有点不同。
1、同步回调，即阻塞，单向。
2、回调，即双向（类似自行车的两个齿轮）。
3、异步调用，即通过异步消息进行通知。
二、CS中的异步回调（jav]]></description><category></category></item><item><title><![CDATA[Java调用Shell脚本]]></title><link>https://blog.youkuaiyun.com/KobeSilent/article/details/51759080</link><guid>https://blog.youkuaiyun.com/KobeSilent/article/details/51759080</guid><author>KobeSilent</author><pubDate>Sat, 25 Jun 2016 16:47:25 +0800</pubDate><description><![CDATA[/**
     * 执行脚本
     * 
     * @param shellString 需要执行的脚本内容
     * @return
     */
    public static int executeShell(String shellString) {
        int exitValue = 0;
        Process process = null;
 ]]></description><category></category></item><item><title><![CDATA[java：去除数组重复内容]]></title><link>https://blog.youkuaiyun.com/KobeSilent/article/details/51554328</link><guid>https://blog.youkuaiyun.com/KobeSilent/article/details/51554328</guid><author>KobeSilent</author><pubDate>Wed, 01 Jun 2016 10:55:11 +0800</pubDate><description><![CDATA[private String[] filtrate(String[] input) {  
       Set set = new HashSet();  
       set.addAll(Arrays.asList(input));  
       String[] arr = (String[]) set.toArray(new String[0]);  
       String[]]></description><category></category></item><item><title><![CDATA[对java中MessageFormat类的一个简单扩展]]></title><link>https://blog.youkuaiyun.com/KobeSilent/article/details/51361094</link><guid>https://blog.youkuaiyun.com/KobeSilent/article/details/51361094</guid><author>KobeSilent</author><pubDate>Tue, 10 May 2016 10:26:26 +0800</pubDate><description><![CDATA[原始的只提供从0开始的数字作为字符串占位符，做了个简单的扩展，支持用字符串作为占位符， 
如 “ {:name} -- {:age} -- {:name} ”格式则模型可被顺利解析。 

代码如下： 
package demo;
 
import java.util.HashMap;
import java.util.Map;
 
public class MessageFormatDem]]></description><category></category></item><item><title><![CDATA[linux 中强大且常用命令：find、grep]]></title><link>https://blog.youkuaiyun.com/KobeSilent/article/details/51012139</link><guid>https://blog.youkuaiyun.com/KobeSilent/article/details/51012139</guid><author>KobeSilent</author><pubDate>Wed, 30 Mar 2016 10:42:05 +0800</pubDate><description><![CDATA[1 Find命令
find命令是一个无处不在命令，是linux中最有用的命令之一。find命令用于：在一个目录（及子目录）中搜索文件，你可以指定一些匹配条件，如按文件名、文件类型、用户甚至是时间戳查找文件。下面就通过实例来体验下find命令的强大。

1.1 find命令的一般形式
man文档中给出的find命令的一般形式为：

find [-H] [-L] [-P] [-D debu]]></description><category></category></item><item><title><![CDATA[Dom4j解析xml文件]]></title><link>https://blog.youkuaiyun.com/KobeSilent/article/details/51011819</link><guid>https://blog.youkuaiyun.com/KobeSilent/article/details/51011819</guid><author>KobeSilent</author><pubDate>Wed, 30 Mar 2016 10:24:47 +0800</pubDate><description><![CDATA[Dom4j是dom4j.org出品的一个开源XML解析包。Dom4j是一个易用的、开源的库，用于XML，XPath和XSLT。它应用于Java平台，采用了Java集合框架并完全支持DOM，SAX和JAXP。Hibernate也是用它来读写配置文件的。
一、DOM4j的下载  
dom4j-1.6.1.jar 下载：http://sourceforge.net/directory/os:wind]]></description><category></category></item><item><title><![CDATA[SpringMVC中ModelAndView, Model, ModelMap, Map, String, void的相关内容]]></title><link>https://blog.youkuaiyun.com/KobeSilent/article/details/50999631</link><guid>https://blog.youkuaiyun.com/KobeSilent/article/details/50999631</guid><author>KobeSilent</author><pubDate>Mon, 28 Mar 2016 18:05:59 +0800</pubDate><description><![CDATA[spring mvc处理方法支持如下的返回方式：ModelAndView, Model, ModelMap, Map, String, void


ModelAndView

通过ModelAndView构造方法可以指定返回的页面名称，也可以通过setViewName()方法跳转到指定的页面 ,使用addObject()设置需要返回的值，addObject()有几个不同参数的方法，可以]]></description><category></category></item><item><title><![CDATA[Java生成不重复的随机数]]></title><link>https://blog.youkuaiyun.com/KobeSilent/article/details/50977857</link><guid>https://blog.youkuaiyun.com/KobeSilent/article/details/50977857</guid><author>KobeSilent</author><pubDate>Fri, 25 Mar 2016 11:05:57 +0800</pubDate><description><![CDATA[import java.util.Random;

public class RadomUtil {

   //设定几位数

   private static final int LENGTH = 8;

    /**

   　　* 这是典型的随机洗牌算法。

   　　* 流程是从备选数组中选择一个放入目标数组中，将选取的数组从备选数组移除（放至最后，并缩小选择区域）

   　　* 算]]></description><category></category></item><item><title><![CDATA[String与InputStream的互相转换]]></title><link>https://blog.youkuaiyun.com/KobeSilent/article/details/50972604</link><guid>https://blog.youkuaiyun.com/KobeSilent/article/details/50972604</guid><author>KobeSilent</author><pubDate>Thu, 24 Mar 2016 16:15:32 +0800</pubDate><description><![CDATA[String to InputStream

InputStream String2InputStream(String str){
    ByteArrayInputStream stream = new ByteArrayInputStream(str.getBytes());
    return stream;
}
InputStream to String
方法一：
publ]]></description><category></category></item><item><title><![CDATA[ReentrantReadWriteLock读写锁的使用]]></title><link>https://blog.youkuaiyun.com/KobeSilent/article/details/50960739</link><guid>https://blog.youkuaiyun.com/KobeSilent/article/details/50960739</guid><author>KobeSilent</author><pubDate>Wed, 23 Mar 2016 10:11:42 +0800</pubDate><description><![CDATA[Lock比传统线程模型中的synchronized方式更加面向对象，与生活中的锁类似，锁本身也应该是一个对象。两个线程执行的代码片段要实现同步互斥的效果，它们必须用同一个Lock对象。　　读写锁：分为读锁和写锁，多个读锁不互斥，读锁与写锁互斥，这是由jvm自己控制的，你只要上好相应的锁即可。如果你的代码只读数据，可以很多人同时读，但不能同时写，那就上读锁；如果你的代码修改数据，只能有一个人在写，且]]></description><category></category></item><item><title><![CDATA[AtomicLongMap的使用]]></title><link>https://blog.youkuaiyun.com/KobeSilent/article/details/50957455</link><guid>https://blog.youkuaiyun.com/KobeSilent/article/details/50957455</guid><author>KobeSilent</author><pubDate>Tue, 22 Mar 2016 18:51:18 +0800</pubDate><description><![CDATA[AtomicLongMap是Google Guava项目的一个类，它是线程安全、支持并发访问的。Guava 是一个 Google 的基于java1.6的类库集合的扩展项目，包括 collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O, 等等可]]></description><category></category></item><item><title><![CDATA[避免Java应用中NullPointerException]]></title><link>https://blog.youkuaiyun.com/KobeSilent/article/details/50955312</link><guid>https://blog.youkuaiyun.com/KobeSilent/article/details/50955312</guid><author>KobeSilent</author><pubDate>Tue, 22 Mar 2016 15:05:43 +0800</pubDate><description><![CDATA[Java应用中抛出的空指针异常是解决空指针的最好方式，也是写出能顺利工作的健壮程序的关键。俗话说“预防胜于治疗”，对于这么令人讨厌的空指针异常，这句话也是成立的。值得庆幸的是运用一些防御性的编码技巧，跟踪应用中多个部分之间的联系，你可以将Java中的空指针异常控制在一个很好的水平上。1) 从已知的String对象中调用equals()和equalsIgnoreCase()方法，而非未知对象。 
总是]]></description><category></category></item><item><title><![CDATA[Java数组取交集]]></title><link>https://blog.youkuaiyun.com/KobeSilent/article/details/50952975</link><guid>https://blog.youkuaiyun.com/KobeSilent/article/details/50952975</guid><author>KobeSilent</author><pubDate>Tue, 22 Mar 2016 10:36:15 +0800</pubDate><description><![CDATA[//取两个数组的交集
private String[] intersect(String[] arr1, String[] arr2){
        if (CheckUtils.isEmpty(arr1) && CheckUtils.isEmpty(arr2)) {
            return null;
        }
        if (CheckUtils.isEmpt]]></description><category></category></item><item><title><![CDATA[逆波兰表达式]]></title><link>https://blog.youkuaiyun.com/KobeSilent/article/details/50889640</link><guid>https://blog.youkuaiyun.com/KobeSilent/article/details/50889640</guid><author>KobeSilent</author><pubDate>Mon, 14 Mar 2016 20:42:50 +0800</pubDate><description><![CDATA[逆波兰表达式又叫做后缀表达式。在通常的表达式中，二元运算符总是置于与之相关的两个运算对象之间，这种表示法也称为中缀表示。波兰逻辑学家J.Lukasiewicz于1929年提出了另一种表示表达式的方法，按此方法，每一运算符都置于其运算对象之后，故称为后缀表示。逆波兰表达式在编译技术中有着普遍的应用。 
运算符优先级：从小到大排序，相同优先级没有用逗号隔开：（，+-，*\，负号，） 
运算符优先级：(]]></description><category></category></item><item><title><![CDATA[23种设计模式趣解]]></title><link>https://blog.youkuaiyun.com/KobeSilent/article/details/50887427</link><guid>https://blog.youkuaiyun.com/KobeSilent/article/details/50887427</guid><author>KobeSilent</author><pubDate>Mon, 14 Mar 2016 16:19:39 +0800</pubDate><description><![CDATA[工厂模式， 工厂方法模式，单例模式， 外观（Facade）模式， 观察者（Observer）模式，桥接（Bridge）模式都是比较常用的 1、FACTORY—追MM少不了请吃饭了，麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西，虽然口味有所不同，但不管你带MM去麦当劳或肯德基，只管向服务员说“来四个鸡翅”就行了。麦当劳和肯德基就是生产鸡翅的Factory     工厂模式：客户类和工厂类分开。消费者任]]></description><category></category></item></channel></rss>