<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[IceCaptain的博客]]></title><description><![CDATA[未来，由梦想打造。]]></description><link>https://blog.youkuaiyun.com/IceCaptain</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; IceCaptain]]></copyright><item><title><![CDATA[关于敏捷的一点收获]]></title><link>https://blog.youkuaiyun.com/IceCaptain/article/details/108653360</link><guid>https://blog.youkuaiyun.com/IceCaptain/article/details/108653360</guid><author>IceCaptain</author><pubDate>Thu, 17 Sep 2020 23:21:13 +0800</pubDate><description><![CDATA[前言
从毕业至今，差不多刚好过了一年，在我老大的指引下，勉勉强强完成了从学生过渡到职场人的过程，不说技术上能有多大的提升，至少在这一年里，敏捷让我学会了在互联网开发下成为一个会做事的人，在这里我想记录一下我所经历的敏捷。


敏捷开发
角色
在我的团队里，敏捷分为产品和开发，产品有1人，开发leader有1人，而其他开发有多人。
在这里，我将团队比作一条船上划龙舟的一帮人。

产品
产品的定位是船头掌舵控制方向的人，从拿到用户需求，到初步的需求分析，择出可行实际的需求后，再到产品规划，制定出整个团队下一阶段]]></description><category></category></item><item><title><![CDATA[一个通用的Excel导入导出功能]]></title><link>https://blog.youkuaiyun.com/IceCaptain/article/details/97802047</link><guid>https://blog.youkuaiyun.com/IceCaptain/article/details/97802047</guid><author>IceCaptain</author><pubDate>Tue, 30 Jul 2019 17:39:52 +0800</pubDate><description><![CDATA[前言
Excel表单导入，是将Excel文件中的数据导入到数据库；而Excel表单导出，是将数据库的数据导出到Excel文件中。
在本文中开发的功能是基于SpringBoot + JPA框架进行开发，而在系统中，数据库表结构又分成了两种情况，一种是单表结构，另一种是存在@OneToMany注解的主外键关联的主辅表结构，所以本次开发目的是可以同时兼容两种情况。
另外，因为不同的数据表对应的Excel...]]></description><category></category></item><item><title><![CDATA[SpringBoot整合RocketMQ消息队列demo]]></title><link>https://blog.youkuaiyun.com/IceCaptain/article/details/89383748</link><guid>https://blog.youkuaiyun.com/IceCaptain/article/details/89383748</guid><author>IceCaptain</author><pubDate>Thu, 18 Apr 2019 17:27:44 +0800</pubDate><description><![CDATA[前言
在此只引入关键依赖，关于SpringBoot等其他基础依赖请自行准备。
另外，本文中的实现方式为点对点的方式。
&nbsp;
开始
首先，在pom文件中引入依赖

    &lt;dependency&gt;
        &lt;groupId&gt;org.apache.rocketmq&lt;/groupId&gt;
        &lt;artifactId&gt;rocketm...]]></description><category></category></item><item><title><![CDATA[RocketMQ简易安装]]></title><link>https://blog.youkuaiyun.com/IceCaptain/article/details/89382889</link><guid>https://blog.youkuaiyun.com/IceCaptain/article/details/89382889</guid><author>IceCaptain</author><pubDate>Thu, 18 Apr 2019 17:00:03 +0800</pubDate><description><![CDATA[安装前
*请务必保证 java 及 maven 环境，否则会安装失败。
&nbsp;
CentOS环境
几个命令
①下载：wget  http://mirrors.tuna.tsinghua.edu.cn/apache/rocketmq/4.2.0/rocketmq-all-4.2.0-source-release.zip
②解压：unzip rocketmq-all-4.2.0-source-r...]]></description><category></category></item><item><title><![CDATA[涂鸦智能Java实习面试经历]]></title><link>https://blog.youkuaiyun.com/IceCaptain/article/details/85768730</link><guid>https://blog.youkuaiyun.com/IceCaptain/article/details/85768730</guid><author>IceCaptain</author><pubDate>Fri, 04 Jan 2019 12:43:09 +0800</pubDate><description><![CDATA[一轮面试
形式：电话面试。
内容：Java基本数据类型，Redis基本数据类型和底层数据结构以及自己的使用，HashMap底层实现，谈谈SpringBoot的优势以及特点。
用时：二十分钟。
二轮面试
形式：现场面试。
内容：非常广泛，先说一个项目经验，讲讲自己做的工作，然后开始提问，涵盖了JVM内存分配，多线程，锁Synchronized和Lock的区别，CAS的原理，SpringBean的生命...]]></description><category></category></item><item><title><![CDATA[Spring Boot整合JPA+MySQL+Redis（二）]]></title><link>https://blog.youkuaiyun.com/IceCaptain/article/details/82598347</link><guid>https://blog.youkuaiyun.com/IceCaptain/article/details/82598347</guid><author>IceCaptain</author><pubDate>Mon, 10 Sep 2018 23:55:33 +0800</pubDate><description><![CDATA[前言

在之前的发布的博客https://blog.youkuaiyun.com/IceCaptain/article/details/79200388已经做过一次相关整合，这篇文章主要是记录一些注意点和非注解的缓存方式。

*注：这篇文章的所有配置都是基于上一篇文章，只是变更了实体类，删除了redisKey属性，并且将使用的service类直接继承了RedisService，其他的大致相同，在这里只演示Re...]]></description><category></category></item><item><title><![CDATA[ActiveMQ消息队列demo]]></title><link>https://blog.youkuaiyun.com/IceCaptain/article/details/81228655</link><guid>https://blog.youkuaiyun.com/IceCaptain/article/details/81228655</guid><author>IceCaptain</author><pubDate>Thu, 26 Jul 2018 22:08:10 +0800</pubDate><description><![CDATA[前言

什么是消息队列？ 
消息是指在两个独立的系统间传递的数据，这两个系统可以是两台计算机，也可以是两个进程。 
消息可以非常简单，可以是简单的字符串，也可以是保存了数据持久化的各种类型的文档集合。 
队列是在消息的传输过程中的通道，是保存消息的容器，根据不同的情形，可以有先进先出，优先级队列等区别 。 
为什么要使用消息队列？ 
我个人的理解是主要对业务的解耦，操作异步处理，还有流量削锋等等问...]]></description><category></category></item><item><title><![CDATA[Redis总结]]></title><link>https://blog.youkuaiyun.com/IceCaptain/article/details/81219478</link><guid>https://blog.youkuaiyun.com/IceCaptain/article/details/81219478</guid><author>IceCaptain</author><pubDate>Thu, 26 Jul 2018 14:27:07 +0800</pubDate><description><![CDATA[原博客地址：https://blog.youkuaiyun.com/qq_35553341/article/details/77096280

（1）什么是redis?

Redis 是一个基于内存的高性能key-value数据库。 (有空再补充，有理解错误或不足欢迎指正)

（2）Reids的特点 
Redis本质上是一个Key-Value类型的内存数据库，很像memcached，整个数据库统统加载在内存当...]]></description><category></category></item><item><title><![CDATA[剑指offer ——  二维数组中的查找]]></title><link>https://blog.youkuaiyun.com/IceCaptain/article/details/80657647</link><guid>https://blog.youkuaiyun.com/IceCaptain/article/details/80657647</guid><author>IceCaptain</author><pubDate>Mon, 11 Jun 2018 20:44:07 +0800</pubDate><description><![CDATA[问题描述：在一个二维数组中，每一行都按照从左到右递增的顺序排序，每一列都按照从上到下递增的顺序排序。请完成一个函数，输入这样的一个二维数组和一个整数，判断数组中是否含有该整数。

问题分析： 
两种方案： 
方案一：因为矩阵每一行从左到右都是递增的，可以对矩阵的每一行进行二分查找。 
方案二：因为矩阵从左到右是递增的，同时从上到下也是递增的，可以发现在矩阵左下角处是一个非常巧妙的位置，右边的数比其...]]></description><category></category></item><item><title><![CDATA[第K大的数]]></title><link>https://blog.youkuaiyun.com/IceCaptain/article/details/80454320</link><guid>https://blog.youkuaiyun.com/IceCaptain/article/details/80454320</guid><author>IceCaptain</author><pubDate>Fri, 25 May 2018 17:07:36 +0800</pubDate><description><![CDATA[问题描述：给定一组数，找到其中第K大的数。

问题分析： 
借助快排的思想，根据基准划分数组子区间。因为左子区间的数全部小于基准元素，所以若K小于基准坐标，则在其左子区间递归划分查找；因为右子区间的数全部大于基准元素，所以若K大于基准坐标，则在其右子区间递归划分查找。显然，当K等于基准坐标时，即查找结束，返回结果。

测试： 
输入一组整数：5, 3, 4, 1, 2, 9, 6, 8, 7 
找...]]></description><category></category></item><item><title><![CDATA[MySQL索引背后的数据结构及算法原理]]></title><link>https://blog.youkuaiyun.com/IceCaptain/article/details/80201738</link><guid>https://blog.youkuaiyun.com/IceCaptain/article/details/80201738</guid><author>IceCaptain</author><pubDate>Fri, 04 May 2018 23:52:45 +0800</pubDate><description><![CDATA[原博客地址：http://blog.codinglabs.org/articles/theory-of-mysql-index.html



摘要

本文以MySQL数据库为研究对象，讨论与数据库索引相关的一些话题。特别需要说明的是，MySQL支持诸多存储引擎，而各种存储引擎对索引的支持也各不相同，因此MySQL数据库支持多种索引类型，如BTree索引，哈希索引，全文索引等等。为了避免混乱，本文...]]></description><category></category></item><item><title><![CDATA[进程—僵尸进程与孤儿进程]]></title><link>https://blog.youkuaiyun.com/IceCaptain/article/details/80201278</link><guid>https://blog.youkuaiyun.com/IceCaptain/article/details/80201278</guid><author>IceCaptain</author><pubDate>Fri, 04 May 2018 22:46:22 +0800</pubDate><description><![CDATA[原博客地址：http://blog.youkuaiyun.com/l953972252/article/details/51399576

在探讨这个问题之前，我们先来弄清什么是进程。  
进程(Process)是计算机中的程序关于某数据集合上的一次运行活动，是系统进行资源分配和调度的基本单位，是操作系统结构的基础。在早期面向进程设计的计算机结构中，进程是程序的基本执行实体;在当代面向线程设计的计算机结构中，...]]></description><category></category></item><item><title><![CDATA[UML的六种关系]]></title><link>https://blog.youkuaiyun.com/IceCaptain/article/details/80201229</link><guid>https://blog.youkuaiyun.com/IceCaptain/article/details/80201229</guid><author>IceCaptain</author><pubDate>Fri, 04 May 2018 22:39:53 +0800</pubDate><description><![CDATA[原博客地址：https://www.cnblogs.com/chengJAVA/p/5646322.html

UML定义的关系主要有：泛化、实现、依赖、关联、聚合、组合，这六种关系紧密程度依次加强，分别看一下

泛化 
概念：泛化是一种一般与特殊、一般与具体之间关系的描述，具体描述建立在一般描述的基础之上，并对其进行了扩展。在程序中是通过继承类实现的。比如狗是对动物的具体描述，在面向对象设计的时...]]></description><category></category></item><item><title><![CDATA[二叉搜索树]]></title><link>https://blog.youkuaiyun.com/IceCaptain/article/details/80178734</link><guid>https://blog.youkuaiyun.com/IceCaptain/article/details/80178734</guid><author>IceCaptain</author><pubDate>Thu, 03 May 2018 13:28:28 +0800</pubDate><description><![CDATA[二叉树的定义：二叉树是每个结点最多有两个子树的树结构，通常子树被称作“左子树”和“右子树”。二叉树的每个结点最多只有两棵子树，二叉树的子树有左右之分，次序不能颠倒。

下图为一颗二叉树： 
 

二叉搜索树的定义：它是具有下列性质的二叉树，若它的左子树不为空，则左子树上所有结点的值均小于它的根结点的值；若它的右子树不为空，则右子树上所有结点的值均大于它的根结点的值；它的左右子树也分别为二叉搜索树。...]]></description><category></category></item><item><title><![CDATA[0-1背包问题]]></title><link>https://blog.youkuaiyun.com/IceCaptain/article/details/80178486</link><guid>https://blog.youkuaiyun.com/IceCaptain/article/details/80178486</guid><author>IceCaptain</author><pubDate>Thu, 03 May 2018 13:02:55 +0800</pubDate><description><![CDATA[什么是背包问题？

问题描述：给定一组物品，每种物品都有自己的重量和价格，在限定的总重量内，我们如何选择，才能使得物品的总价格最高。即给定一个载重量为room的背包，另有num个物品，其每个物品重量为size_i，价值为value_i，1&amp;lt;=i&amp;lt;=n，选择物品装入背包，使得背包内的物品价值最大。

问题分析： 
0-1背包问题可以看作是动态规划的一个经典案例。 
在该问题中，物体只能选...]]></description><category></category></item><item><title><![CDATA[排序算法]]></title><link>https://blog.youkuaiyun.com/IceCaptain/article/details/80177266</link><guid>https://blog.youkuaiyun.com/IceCaptain/article/details/80177266</guid><author>IceCaptain</author><pubDate>Thu, 03 May 2018 11:16:57 +0800</pubDate><description><![CDATA[本文将介绍6种排序算法：冒泡排序，选择排序，插入排序，希尔排序，归并排序，快速排序。 
 
冒泡排序（每趟排序会将当前序列最大值沉到尾部）： 


选择排序（每趟排序将当前序列的最小值沉到首部）： 


插入排序（每趟排序将当前元素插到其之前序列合适位置）： 


希尔排序（每趟排序将步长为n所在位置的数进行排序）： 


归并排序（每趟排序将相邻的两个区间合并成一个有序区间）： 


快速排序（...]]></description><category></category></item><item><title><![CDATA[堆]]></title><link>https://blog.youkuaiyun.com/IceCaptain/article/details/80176733</link><guid>https://blog.youkuaiyun.com/IceCaptain/article/details/80176733</guid><author>IceCaptain</author><pubDate>Thu, 03 May 2018 10:54:01 +0800</pubDate><description><![CDATA[首先介绍一下什么是堆： 
引入百度百科：


  （英语：heap)是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵树的数组对象。堆总是满足下列性质： 
  堆中某个节点的值总是不大于或不小于其父节点的值； 
  堆总是一棵完全二叉树。 
  将根节点最大的堆叫做最大堆或大根堆，根节点最小的堆叫做最小堆或小根堆。常见的堆有二叉堆、斐波那契堆等。 
  堆的定义如下：n个元素的序列...]]></description><category></category></item><item><title><![CDATA[Dubbo接口抽取及依赖版本统一-03]]></title><link>https://blog.youkuaiyun.com/IceCaptain/article/details/79629440</link><guid>https://blog.youkuaiyun.com/IceCaptain/article/details/79629440</guid><author>IceCaptain</author><pubDate>Tue, 20 Mar 2018 18:01:37 +0800</pubDate><description><![CDATA[*前言：上两篇文章中，我们发现在两个项目dubbo-demo-provider和dubbo-demo-consumer中，接口DemoProviderService代码重复，pom.xml依赖代码重复，下面我们尝试将其统一。

①我们首先新建一个简单maven项目dubbo-demo-api，将接口DemoProviderService复制到该项目中，再将之前两个项目中的接口删除，此时，之前两个项...]]></description><category></category></item><item><title><![CDATA[Dubbo消费服务-02]]></title><link>https://blog.youkuaiyun.com/IceCaptain/article/details/79620838</link><guid>https://blog.youkuaiyun.com/IceCaptain/article/details/79620838</guid><author>IceCaptain</author><pubDate>Tue, 20 Mar 2018 09:29:14 +0800</pubDate><description><![CDATA[*前言：上一篇文章中，我们已经成功发布了一个dubbo服务接口，下面我们建立一个消费者来消费服务。

*请先确保服务接口已经成功发布。

①首先，我们新建一个简单maven项目dubbo-demo-consumer，在pom.xml下添入依赖：



&amp;lt;dependency&amp;gt;
    &amp;lt;groupId&amp;gt;com.alibaba&amp;lt;/groupId&amp;gt;
    &amp;lt;...]]></description><category></category></item><item><title><![CDATA[Dubbo初步搭建-01]]></title><link>https://blog.youkuaiyun.com/IceCaptain/article/details/79617341</link><guid>https://blog.youkuaiyun.com/IceCaptain/article/details/79617341</guid><author>IceCaptain</author><pubDate>Mon, 19 Mar 2018 20:51:30 +0800</pubDate><description><![CDATA[建立第一个dubbo服务接口

*准备工作： 
①首先，我们先从zookeeper官网http://mirrors.hust.edu.cn/apache/zookeeper下载zookeeper-3.4.11.tar压缩包； 
②然后，再在dubbo官网http://dubbo.io/下载dubbo-dubbo-2.6.0压缩包，解压即可。

下面开始建立接口： 
①新建一个简单的maven项目d...]]></description><category></category></item></channel></rss>