<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[厉兵秣码]]></title><description><![CDATA[落霞与孤鹜齐飞，秋水共长天一色。渔舟唱晚，响穷彭蠡之滨，雁阵惊寒，声断衡阳之浦。]]></description><link>https://blog.youkuaiyun.com/u014429653</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; u014429653]]></copyright><item><title><![CDATA[PostgreSQL分表，即对表格进行分区]]></title><link>https://blog.youkuaiyun.com/u014429653/article/details/123142173</link><guid>https://blog.youkuaiyun.com/u014429653/article/details/123142173</guid><author>u014429653</author><pubDate>Fri, 25 Feb 2022 22:21:03 +0800</pubDate><description><![CDATA[PostgreSQL分表，即对表格进行分区]]></description><category></category></item><item><title><![CDATA[二分法（数组没有重复数字和有重复数字）]]></title><link>https://blog.youkuaiyun.com/u014429653/article/details/123142011</link><guid>https://blog.youkuaiyun.com/u014429653/article/details/123142011</guid><author>u014429653</author><pubDate>Fri, 25 Feb 2022 22:10:11 +0800</pubDate><description><![CDATA[二分查找(数字不重复和重复的情况)]]></description><category></category></item><item><title><![CDATA[zookeeper windows 伪集群搭建]]></title><link>https://blog.youkuaiyun.com/u014429653/article/details/122482994</link><guid>https://blog.youkuaiyun.com/u014429653/article/details/122482994</guid><author>u014429653</author><pubDate>Thu, 13 Jan 2022 21:31:03 +0800</pubDate><description><![CDATA[zookeeper windows  伪集群搭建]]></description><category></category></item><item><title><![CDATA[zookeeper windows单机版搭建]]></title><link>https://blog.youkuaiyun.com/u014429653/article/details/122482795</link><guid>https://blog.youkuaiyun.com/u014429653/article/details/122482795</guid><author>u014429653</author><pubDate>Thu, 13 Jan 2022 21:18:48 +0800</pubDate><description><![CDATA[zookeeper windows  单机版搭建]]></description><category></category></item><item><title><![CDATA[trie字典树使用]]></title><link>https://blog.youkuaiyun.com/u014429653/article/details/119298796</link><guid>https://blog.youkuaiyun.com/u014429653/article/details/119298796</guid><author>u014429653</author><pubDate>Sun, 01 Aug 2021 15:39:41 +0800</pubDate><description><![CDATA[参考一下文章，写代码自己记录下
数据结构与算法：字典树（前缀树）
字典树节点
class TrieNode {
    //表示以当前单词结尾的单词数量。
    int count;
    //表示以当前节点之前（包括当前节点）的字符串为前缀的字符串个数
    // 表示以该处节点之前的字符串为前缀的单词数量
    int prefix;
    TrieNode[] nextNode = new TrieNode[26];

    public TrieNode() {
        coun]]></description><category></category></item><item><title><![CDATA[Morries法遍历二叉树]]></title><link>https://blog.youkuaiyun.com/u014429653/article/details/118864177</link><guid>https://blog.youkuaiyun.com/u014429653/article/details/118864177</guid><author>u014429653</author><pubDate>Sat, 17 Jul 2021 23:09:04 +0800</pubDate><description><![CDATA[参考  树（一）——Morris 二叉树神级遍历
为什么可以不采用辅助结构？？
首先思考一下，为什么我们要用栈或者队列来辅助我们遍历？
因为二叉树的结构是，一个父节点可以轻松的找到子节点，但是子节点无法直接找到父节点。我们需要利用栈或者队列保存访问的记录，以便于我们可以回溯到父节点。
Morris 遍历采用多个指针，使得通过复杂度不高的操作可以找到父节点。
Morris 遍历
Morris 遍历是一种节省空间复杂度的方法。将叶子节点上的空指针利用起来，指向父节点，当再次遍历到这个节点的时候再修改回来，这样最]]></description><category></category></item><item><title><![CDATA[二分查找(数字不重复和重复的情况)]]></title><link>https://blog.youkuaiyun.com/u014429653/article/details/118256547</link><guid>https://blog.youkuaiyun.com/u014429653/article/details/118256547</guid><author>u014429653</author><pubDate>Sun, 27 Jun 2021 00:22:01 +0800</pubDate><description><![CDATA[怎么写出无bug的二分查找算法代码
1二分查找
单调递增数列中没有重复的数字
    public static int binarySearch(int[] nums, int tar) {
        int low = 0;
        int high = nums.length - 1;
        int mid;
        while (low &lt;= high) {
            mid = (low + high) / 2;
            if (]]></description><category></category></item><item><title><![CDATA[二叉树的递归和非递归遍历]]></title><link>https://blog.youkuaiyun.com/u014429653/article/details/118254442</link><guid>https://blog.youkuaiyun.com/u014429653/article/details/118254442</guid><author>u014429653</author><pubDate>Sat, 26 Jun 2021 21:11:05 +0800</pubDate><description><![CDATA[参考文章：详解二叉树的非递归遍历
二叉树的非递归遍历的思考
二叉树的遍历
1结构体：节点
class Node{
    int data;
    Node left;
    Node right;
    public Node(int data,Node left,Node right){
        this.data=data;
        this.left=left;
        this.right=right;
    }
}

2递归遍历
    //前序遍历递归
    ]]></description><category></category></item><item><title><![CDATA[BM算法（字符串模式匹配）]]></title><link>https://blog.youkuaiyun.com/u014429653/article/details/118165274</link><guid>https://blog.youkuaiyun.com/u014429653/article/details/118165274</guid><author>u014429653</author><pubDate>Thu, 24 Jun 2021 00:13:34 +0800</pubDate><description><![CDATA[参考的该篇文章：字符串匹配算法（BM）
https://blog.youkuaiyun.com/qq_21201267/article/details/92799488
详细推倒过程参考上面的链接，以下仅是个人笔记
1求坏字符
    //坏字符规则：获得坏字符数组
    //该int[]浪费空间，可以优化，badChars[c-‘a’] = i;
    public static void getBc(String pat, int[] badChars) {
        int len = pat.leng]]></description><category></category></item><item><title><![CDATA[排序方法总结]]></title><link>https://blog.youkuaiyun.com/u014429653/article/details/117912996</link><guid>https://blog.youkuaiyun.com/u014429653/article/details/117912996</guid><author>u014429653</author><pubDate>Mon, 14 Jun 2021 23:00:10 +0800</pubDate><description><![CDATA[时间复杂度
常见的时间复杂度，按数量级递增排列依次为：常数阶O(1)、对数阶O(log2n)、线性阶O(n)、线性对数阶O(nlog2n)、平方阶O(n2)、立方阶O(n3)、k次方阶O(nk)、指数阶O(2n)。常见的算法时间复杂度由小到大依次为：
                           c &lt; log2N &lt; n &lt; n * Log2N &lt; n^2 &lt; n^3 &lt; 2^n &lt; 3^n &lt; n!

其中c是一个常量，如果一个算法的复杂度为c 、]]></description><category></category></item><item><title><![CDATA[BF和KMP算法]]></title><link>https://blog.youkuaiyun.com/u014429653/article/details/117676721</link><guid>https://blog.youkuaiyun.com/u014429653/article/details/117676721</guid><author>u014429653</author><pubDate>Tue, 08 Jun 2021 00:08:25 +0800</pubDate><description><![CDATA[参考KMP算法
主要是看了上面的讲解，自己做一下记录，加深印象
BF算法
t为目标串，p为模式串
暴力解：思想：先从第一个字符开始匹配，如果p[j]==t[i]，那么继续向下比较，一旦不相等，即回溯到目标串的下一个字符，重复工作。
成功条件：当循环结束时，判断j的值与模式串p的长度是否相等，如果相等，说明匹配成功到了模式p的最后一个字符。
返回值：返回模式串在目标串中出现的位置。
方式一：
    public static int bf(String t,String p){
        char[]]]></description><category></category></item><item><title><![CDATA[排序之（2）希尔排序]]></title><link>https://blog.youkuaiyun.com/u014429653/article/details/113486792</link><guid>https://blog.youkuaiyun.com/u014429653/article/details/113486792</guid><author>u014429653</author><pubDate>Sun, 31 Jan 2021 23:16:29 +0800</pubDate><description><![CDATA[希尔排序
链接: 插入排序.
基本思想：
希尔排序是希尔（Donald Shell）于1959年提出的一种排序算法。希尔排序也是一种插入排序，它是简单插入排序经过改进之后的一个更高效的版本，也称为“缩小增量排序”，同时该算法是冲破O(n2）的第一批算法之一。
希尔排序是把记录按下标的一定增量分组，对每组使用直接插入排序算法排序；随着增量逐渐减少，每组包含的关键词越来越多，当增量减至1时，整个文件恰被分成一组，算法便终止。
基本步骤：
我们来看下希尔排序的基本步骤，在此我们选择增量gap=length/2，缩]]></description><category></category></item><item><title><![CDATA[排序之（1）插入排序]]></title><link>https://blog.youkuaiyun.com/u014429653/article/details/113486086</link><guid>https://blog.youkuaiyun.com/u014429653/article/details/113486086</guid><author>u014429653</author><pubDate>Sun, 31 Jan 2021 22:33:41 +0800</pubDate><description><![CDATA[插入排序
基本思想：
每一步将一个待排序的数据插入到前面已经排好序的有序序列中，直到插完所有元素为止。
算法实现：直接插入排序是将无序序列中的数据插入到有序的序列中，在遍历无序序列时，首先拿无序序列中的首元素去与有序序列中的每一个元素比较并插入到合适的位置，一直到无序序列中的所有元素插完为止。对于一个无序序列arr{7，6，5，9，2}来说，我们首先先确定首元素4是有序的，然后对无序序列{6，5，9，2}遍历，6小于7则它插入到7的前面，得到{6，7，5，9，2}；再继续遍历到5，5小于7，则5应该插入到7]]></description><category></category></item><item><title><![CDATA[Linux下如何查找自己java进程的pid(ps和jps区别)]]></title><link>https://blog.youkuaiyun.com/u014429653/article/details/108186341</link><guid>https://blog.youkuaiyun.com/u014429653/article/details/108186341</guid><author>u014429653</author><pubDate>Sun, 23 Aug 2020 18:55:55 +0800</pubDate><description><![CDATA[这里先介绍可以测试的在线Linux系统：
链接: https://blog.youkuaiyun.com/u014429653/article/details/99069829.
1、JPS介绍
jps(Java Virtual Machine Process Status Tool)是JDK 1.5提供的一个显示当前所有java进程pid的命令，简单实用，非常适合在linux/unix平台上简单察看当前java进程的一些简单情况。
用来查看基于HotSpot的JVM里面中，所有具有访问权限的Java进程的具体状态, ]]></description><category></category></item><item><title><![CDATA[Linux下arthas启动时找不到java进程]]></title><link>https://blog.youkuaiyun.com/u014429653/article/details/108186111</link><guid>https://blog.youkuaiyun.com/u014429653/article/details/108186111</guid><author>u014429653</author><pubDate>Sun, 23 Aug 2020 18:08:45 +0800</pubDate><description><![CDATA[问题：
Linux系统下arthas启动时找不到java进程，或者是jps命令找不到java进程
场景：某个java进程已经启动，用jps却显示不了该进程进程号？
链接: https://www.cnblogs.com/jpfss/p/11313248.html.
现象：
用ps -ef|grep java能看到启动的java进程，但是用jps查看却不存在该进程的id。在该情况下，jconsole、jvisualvm可能无法监控该进程，其他java自带工具也可能无法使用
分析：
java程序启动后，默认（请]]></description><category></category></item><item><title><![CDATA[Arthas(阿尔萨斯)使用]]></title><link>https://blog.youkuaiyun.com/u014429653/article/details/107737774</link><guid>https://blog.youkuaiyun.com/u014429653/article/details/107737774</guid><author>u014429653</author><pubDate>Sat, 01 Aug 2020 23:43:00 +0800</pubDate><description><![CDATA[这里写自定义目录标题1、背景2、Arthas 介绍3、Arthas 使用场景4、 Arthas 如何使用4.1 安装4.2 demo4.3 启动Arthas4.4 用arthas解决常见问题4.4.1 cpu占用过高4.4.2 死锁4.4.3 内存泄漏4.5其他命令4.4.1 help命令4.4.2 dashboard命令4.4.3 thread命令（查看具体线程信息使用）4.4.4 watch命令（查看类里某个方法的返回值和入参）4.4.5 trace命令（方法调用路径、耗时解析）功能快捷键合理的创建标题]]></description><category></category></item><item><title><![CDATA[线程状态转换和调度]]></title><link>https://blog.youkuaiyun.com/u014429653/article/details/107600591</link><guid>https://blog.youkuaiyun.com/u014429653/article/details/107600591</guid><author>u014429653</author><pubDate>Sun, 26 Jul 2020 22:38:27 +0800</pubDate><description><![CDATA[线程状态转换


初始状态/新建状态（New）：新创建了一个线程对象。
就绪状态/可运行状态（Runnable）：线程对象创建后，其他线程调用了该对象的start()方法，该状态的线程位于可运行线程池中，已经获取了运行所需要的资源，等待获取CPU的使用权。
运行状态（Running）：就绪状态的线程获取了CPU的使用权，执行程序代码。
阻塞状态（Blocked）：阻塞状态是线程因为某种原因放弃CPU的使用权，暂时停止运行。直到线程进入就绪状态，才有机会进入运行状态，阻塞的情况分为三种：
（一）等待阻塞：运行]]></description><category></category></item><item><title><![CDATA[Java自带四种线程池使用]]></title><link>https://blog.youkuaiyun.com/u014429653/article/details/107437365</link><guid>https://blog.youkuaiyun.com/u014429653/article/details/107437365</guid><author>u014429653</author><pubDate>Sat, 18 Jul 2020 23:43:00 +0800</pubDate><description><![CDATA[Java自带四种线程池使用1、线程池的概念2、使用线程池的原因3、线程池的工作机制4、 四种常见的线程池详解4.1、线程池的返回值ExecutorService简介：4.2、具体的4种常用的线程池实现如下：4.2.1、 Executors.newCacheThreadPool()4.2.2、 Executors.newFixedThreadPool(int nThreads)4.2.3、 Executors.newSingleThreadExecutor()4.2.4、 Executors.newSched]]></description><category></category></item><item><title><![CDATA[Java多线程详解]]></title><link>https://blog.youkuaiyun.com/u014429653/article/details/107425870</link><guid>https://blog.youkuaiyun.com/u014429653/article/details/107425870</guid><author>u014429653</author><pubDate>Sat, 18 Jul 2020 17:14:52 +0800</pubDate><description><![CDATA[这里写目录标题1、程序、进程、现场1.1程序1.2进程1.3线程1.4并行和并发1.5单核CPU和多核CPU2、线程的创建和使用2.1Thread类方式一:继承Thread类匿名内部类Thread方式二:实现Runnable接口匿名内部类实现Runable新增方式一:实现Callable接口匿名类部类实现Callable接口新增方式二:使用线程池2.2继承方式和实现方式的联系和区别3 线程的调度
1、程序、进程、现场
1.1程序
程序是为完成特定任务，用某种语言编写的一组指令的集合，即指一段静态的代码，静态]]></description><category></category></item><item><title><![CDATA[Required String parameter name is not present]]></title><link>https://blog.youkuaiyun.com/u014429653/article/details/107140519</link><guid>https://blog.youkuaiyun.com/u014429653/article/details/107140519</guid><author>u014429653</author><pubDate>Sun, 05 Jul 2020 16:19:16 +0800</pubDate><description><![CDATA[报错：
2020-06-27 19:01:31.164  WARN 12752 — [io-8080-exec-10] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.bind.MissingServletRequestParameterException: Required String parameter ‘name’ is not present]
Resolved [org.springfram]]></description><category></category></item></channel></rss>