<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Mr.Lee]]></title><description><![CDATA[stay hangry stay foolish. ]]></description><link>https://blog.youkuaiyun.com/ssbb1995</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ssbb1995]]></copyright><item><title><![CDATA[git异常分析]]></title><link>https://blog.youkuaiyun.com/ssbb1995/article/details/82833993</link><guid>https://blog.youkuaiyun.com/ssbb1995/article/details/82833993</guid><author>ssbb1995</author><pubDate>Tue, 25 Sep 2018 01:55:29 +0800</pubDate><description><![CDATA[一、前言
本篇博客主要记录git时发生的一些异常以及解决方式，持续更新。
二、异常
1、fatal: No configured push destination.
详细异常信息:
Either specify the URL from the command-line or configure a remote repository using
解决方式:
 // 添加远程仓库 name:仓库名...]]></description><category></category></item><item><title><![CDATA[分布式Session]]></title><link>https://blog.youkuaiyun.com/ssbb1995/article/details/82561169</link><guid>https://blog.youkuaiyun.com/ssbb1995/article/details/82561169</guid><author>ssbb1995</author><pubDate>Sun, 09 Sep 2018 19:04:58 +0800</pubDate><description><![CDATA[一、session

在单机下,session由部署在服务器上的web容器管理;但是在分布式环境中,负载均衡下将请求随机分发到集群中到任何一个服务器上,此时获取正确到session就比较复杂.



1、session复制

session复制是集群中的服务器之间同步session对象,每台服务器都保存session信息,这样保证了session都高可用;但这只是和集群比较小都情况,当集群比较大当...]]></description><category></category></item><item><title><![CDATA[await在forEach不起作用解决]]></title><link>https://blog.youkuaiyun.com/ssbb1995/article/details/82084800</link><guid>https://blog.youkuaiyun.com/ssbb1995/article/details/82084800</guid><author>ssbb1995</author><pubDate>Sun, 26 Aug 2018 21:29:35 +0800</pubDate><description><![CDATA[一、前言

前两天在项目中用for遍历的时候遇到了一个坑，花了一天的时间解决。这里就记一下。



二、问题

首先引一个很简单题目:给一个数组,每隔1s打印出来.这里我把我一开始在项目中的代码贴出来.(当然这里完全和业务无关的)



const _ = require('lodash');

const echo = async (i) =&amp;gt; {
    setTimeout(() =&amp;...]]></description><category></category></item><item><title><![CDATA[每日算法之丑数]]></title><link>https://blog.youkuaiyun.com/ssbb1995/article/details/79853493</link><guid>https://blog.youkuaiyun.com/ssbb1995/article/details/79853493</guid><author>ssbb1995</author><pubDate>Sun, 08 Apr 2018 16:11:51 +0800</pubDate><description><![CDATA[描述

设计一个算法，找出只含素因子2，3，5 的第 n 小的数。（我们可以认为1也是一个丑数）

符合条件的数如：1, 2, 3, 4, 5, 6, 8, 9, 10, 12…



实现



 /**
     * @param n: An integer
     * @return: the nth prime number as description.
     */
    pub...]]></description><category></category></item><item><title><![CDATA[每日算法之统计数字]]></title><link>https://blog.youkuaiyun.com/ssbb1995/article/details/79839311</link><guid>https://blog.youkuaiyun.com/ssbb1995/article/details/79839311</guid><author>ssbb1995</author><pubDate>Sat, 07 Apr 2018 10:22:06 +0800</pubDate><description><![CDATA[题目要求

计算数字k在0到n中的出现的次数，k可能是0~9的一个值。

例如n=12，k=1，在 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]，我们发现1出现了5次 (1, 10, 11, 12)

代码实现：



public int digitCounts(int k, int n) {
       int count = 0;
        f...]]></description><category></category></item><item><title><![CDATA[每日算法之a+b和尾部零的算法]]></title><link>https://blog.youkuaiyun.com/ssbb1995/article/details/79835671</link><guid>https://blog.youkuaiyun.com/ssbb1995/article/details/79835671</guid><author>ssbb1995</author><pubDate>Fri, 06 Apr 2018 18:35:05 +0800</pubDate><description><![CDATA[一、a+b问题

a=1，b=2，不使用加减乘除，来实现a+b的效果。（可以使用位操作符）

算法思路： 
①1+1=0,0+0=0，1+0=1，可以看出和异或产生的效果类似。 
②上面的加法虽然可以用异或来实现，但是还有1+1的进位问题，可以用另一种方式解决，比方说：1+1=0，可以通过1&amp;amp;1，为0，同时，将其左移一位即可获取进位。 
③接着就是将①和②的结果加起来即可。



 pub...]]></description><category></category></item><item><title><![CDATA[快速排序（java实现）]]></title><link>https://blog.youkuaiyun.com/ssbb1995/article/details/79310724</link><guid>https://blog.youkuaiyun.com/ssbb1995/article/details/79310724</guid><author>ssbb1995</author><pubDate>Sun, 11 Feb 2018 14:53:01 +0800</pubDate><description><![CDATA[一、前言

快速排序，听这个名字也知道这是一个性能比较好的排序算法。最坏情况下时间复杂度为O(n²），虽然最坏时间复杂度很差，但是快速排序通常是实际排序中最好的选择，因为它平均性能最好：它的期望时间复杂度O(nlgn)，而且隐含的常数因子非常小。快速排序主要利用



二、实现

整个实现思路可以这样理解：①找到一个基准，例如将最后一个元素当做基准②从第一个元素依次和基准比较，如果小于基准则不动，...]]></description><category></category></item><item><title><![CDATA[堆排序（java实现）]]></title><link>https://blog.youkuaiyun.com/ssbb1995/article/details/79303856</link><guid>https://blog.youkuaiyun.com/ssbb1995/article/details/79303856</guid><author>ssbb1995</author><pubDate>Sat, 10 Feb 2018 11:20:04 +0800</pubDate><description><![CDATA[一、前言

堆是一个数组，它可以看成近似的完全二叉树。表示堆的数组包括两个属性：A.length数组元素的个数，A.heapSize表示多少个元素存在数组中。这里的关系是：

 0&amp;lt;= A.heapSize&amp;lt;=A.length


树的根节点为A[1]，堆排序的时间复杂度为O(nlgn)。二叉堆分为两种形式：最大堆和最小堆。最大堆是父节点&amp;gt;=子节点。最小堆即相反。下面用java实...]]></description><category></category></item><item><title><![CDATA[ActiveMQ（一）-入门篇]]></title><link>https://blog.youkuaiyun.com/ssbb1995/article/details/79182106</link><guid>https://blog.youkuaiyun.com/ssbb1995/article/details/79182106</guid><author>ssbb1995</author><pubDate>Sat, 27 Jan 2018 18:01:39 +0800</pubDate><description><![CDATA[一、目录分析



从上面看出一般的项目目录类似，简单分析下其作用：


bin：为启动目录。
conf：为配置文件，核心文件有activemq.xml（核心配置，加载jetty.xml等文件和管理数据持久化）、jetty.xml（配置启动端口）、jetty-realm.properties（配置用户名密码）几个。在登录web控制台的时候，需要用户名和密码。 
data：是消息持久化的地方，默认使]]></description><category></category></item><item><title><![CDATA[HashMap源码分析]]></title><link>https://blog.youkuaiyun.com/ssbb1995/article/details/78983907</link><guid>https://blog.youkuaiyun.com/ssbb1995/article/details/78983907</guid><author>ssbb1995</author><pubDate>Mon, 08 Jan 2018 16:16:50 +0800</pubDate><description><![CDATA[一、前言

上篇简单分析了下HashTable，本篇就分析HashMap的源码，对于HashMap源码中涉及到的一些基本概念和HashTable类似，不过具体内容区别还是很大的。OK，就一起来分析吧。



二、源码分析



1 常用字段

同样，首先贴出HashMap中的一些常用字段。



// 初始化容量
static final int DEFAULT_INITIAL_CAPACITY]]></description><category></category></item><item><title><![CDATA[Eclipse中给maven项目打jar包]]></title><link>https://blog.youkuaiyun.com/ssbb1995/article/details/78983915</link><guid>https://blog.youkuaiyun.com/ssbb1995/article/details/78983915</guid><author>ssbb1995</author><pubDate>Fri, 05 Jan 2018 18:00:45 +0800</pubDate><description><![CDATA[一、 前言

最近写项目需要将其打成jar上传到服务器上，之前一直写到是web，打的是war包，这次写的是游戏服务器，是jar包。顺便记之。

二、maven打包

关于打包有两种类型：①不带依赖的打包，②带依赖的打包 
默认情况下我们使用maven install打包生成的是第①种，如果想要第②种，可以使用插件实现



使用插件：

build>
        plugins>]]></description><category></category></item><item><title><![CDATA[HashTable源码分析]]></title><link>https://blog.youkuaiyun.com/ssbb1995/article/details/78900285</link><guid>https://blog.youkuaiyun.com/ssbb1995/article/details/78900285</guid><author>ssbb1995</author><pubDate>Tue, 26 Dec 2017 11:19:15 +0800</pubDate><description><![CDATA[一、前言前面几篇介绍了List相关的几个类。本篇开始分析Map相关的集合常用类的源码，OK，从HashTable开始分析。我们知道HashTable是线程安全的，但是其实现实中我们使用它的概率却比线程不安全的HashMap要低，为什么呢？二、源码分析内部数据结构// 哈希表,内部使用单链表解决冲突,容量不足也会自动增长,transient保证不会被序列化
private transient Entr]]></description><category></category></item><item><title><![CDATA[LinkedList&CopyOnWriteArrayList源码分析]]></title><link>https://blog.youkuaiyun.com/ssbb1995/article/details/78812336</link><guid>https://blog.youkuaiyun.com/ssbb1995/article/details/78812336</guid><author>ssbb1995</author><pubDate>Fri, 15 Dec 2017 14:03:24 +0800</pubDate><description><![CDATA[前言由于LinkedList和CopyOnWriteArrayList的源码相对来说比较简单，就放在一起分析了。LinkedList就从下面一个例子开始分析 public static void main(String[] args) {
    List<String> list = new LinkedList<String>(); 
    List<String> l = new Array]]></description><category></category></item><item><title><![CDATA[jdk源码之自动装拆箱]]></title><link>https://blog.youkuaiyun.com/ssbb1995/article/details/78784725</link><guid>https://blog.youkuaiyun.com/ssbb1995/article/details/78784725</guid><author>ssbb1995</author><pubDate>Tue, 12 Dec 2017 18:30:00 +0800</pubDate><description><![CDATA[前言在讲自动转拆箱之前，我先出一个题目吧，如果能够答对并且知道为什么，那么久不用看本篇了。public static void main(String[] args) {
    Integer i = 128 ; // 装箱
    Integer j = 128 ;
    Integer x = 1 ; // 装箱
    Integer y = 1 ;    System.out.print]]></description><category></category></item><item><title><![CDATA[jdk源码分析--ArrayList]]></title><link>https://blog.youkuaiyun.com/ssbb1995/article/details/78784578</link><guid>https://blog.youkuaiyun.com/ssbb1995/article/details/78784578</guid><author>ssbb1995</author><pubDate>Tue, 12 Dec 2017 18:08:22 +0800</pubDate><description><![CDATA[ArrayList其实在整个List体系中源码相对于其它类来说是比较简单的了。因为是作为第一篇，一切都还是简单点。 
而ArrayList又是List体系中相对来说简单点的了。因此选择ArrayList作为第一篇。分析不管是分析什么源码，jdk源码也好，其它框架源码也好，最好是先写一个简单的Demo，然后debug，一步一步玩下走，这样能更好的帮助我们分析。public static void ma]]></description><category></category></item><item><title><![CDATA[azkaban的简单入门]]></title><link>https://blog.youkuaiyun.com/ssbb1995/article/details/78587779</link><guid>https://blog.youkuaiyun.com/ssbb1995/article/details/78587779</guid><author>ssbb1995</author><pubDate>Mon, 20 Nov 2017 22:56:25 +0800</pubDate><description><![CDATA[一、下载从github上下载，azkaban ， 需要注意的是，azkaban官方只是提供了源码，需要我们自己编译。二、编译azkaban 的编译也是很简单，但是前提是你需要足够的耐心，我是真的差点弄疯了，编译 花了我几个小时，一直以为我哪里到错误了，最后又编译成功了，实在搞不懂。需要注意的是:3.x之后的web项目中没有conf、plugins文件夹,我们需要从solo中复制过来。编译的顺序安装官]]></description><category></category></item><item><title><![CDATA[netty源码分析之客户端]]></title><link>https://blog.youkuaiyun.com/ssbb1995/article/details/78355766</link><guid>https://blog.youkuaiyun.com/ssbb1995/article/details/78355766</guid><author>ssbb1995</author><pubDate>Thu, 26 Oct 2017 16:46:53 +0800</pubDate><description><![CDATA[一、前言上篇博客介绍了服务端的启动源码,这篇就开始介绍客户端二、源码分析 
首先贴上客户端的简单代码~public class SocketClient {
    public static void main(String[] args) throws InterruptedException {
        EventLoopGroup eventLoopGroup = new NioEv]]></description><category></category></item><item><title><![CDATA[is not a @Sharable handler解决方法]]></title><link>https://blog.youkuaiyun.com/ssbb1995/article/details/78353633</link><guid>https://blog.youkuaiyun.com/ssbb1995/article/details/78353633</guid><author>ssbb1995</author><pubDate>Thu, 26 Oct 2017 14:40:48 +0800</pubDate><description><![CDATA[昨天在写编码器的时候,因为是和spring整合,因此在使用编码的时候用Autowired自动注入@Autowired
private ProtocolDecoder protocolDecoder ;@Autowired
private ProtocolEncoder protocolEncoder;结果在多个客户端连接(其实不是多客户端的问题)的时候导致一直在报错,如下io.netty.chann]]></description><category></category></item><item><title><![CDATA[netty源码分析之服务端]]></title><link>https://blog.youkuaiyun.com/ssbb1995/article/details/78330000</link><guid>https://blog.youkuaiyun.com/ssbb1995/article/details/78330000</guid><author>ssbb1995</author><pubDate>Tue, 24 Oct 2017 15:21:01 +0800</pubDate><description><![CDATA[一、前言上篇简单分析了下future、promise,由于这个在netty源码中用的实在太多,不得不提前了解下,这篇就开始分析源码了,先从server端开始~~~二、源码分析首先简单贴下server端的代码，这里只贴了核心代码public void startServer() throws Exception {
        // 只监听一个端口,因此只需要设置成线程数为1即可]]></description><category></category></item><item><title><![CDATA[netty源码分析之Future/Promise]]></title><link>https://blog.youkuaiyun.com/ssbb1995/article/details/78328706</link><guid>https://blog.youkuaiyun.com/ssbb1995/article/details/78328706</guid><author>ssbb1995</author><pubDate>Tue, 24 Oct 2017 13:47:37 +0800</pubDate><description><![CDATA[一、前言在分析Netty的源码的时候，一直看到Future、Promise之类的类，Future之前还接触过一点 
知道大致是什么东西，不过Promise没了解过,所以在分析源码之前,顺便学习下Future/Promise~二、Future1、Future是什么?首先需要明白一点的是,它不是netty自己私有的东西,它在jdk1.5后的concurrent包中就已经有 
了. 
通过一个例子了解本质]]></description><category></category></item></channel></rss>