<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[bocli的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/bochuangli</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; bochuangli]]></copyright><item><title><![CDATA[git 常用命令]]></title><link>https://blog.youkuaiyun.com/bochuangli/article/details/125426240</link><guid>https://blog.youkuaiyun.com/bochuangli/article/details/125426240</guid><author>bochuangli</author><pubDate>Thu, 23 Jun 2022 14:18:22 +0800</pubDate><description><![CDATA[Git操作命令]]></description><category></category></item><item><title><![CDATA[docker file的使用]]></title><link>https://blog.youkuaiyun.com/bochuangli/article/details/125151645</link><guid>https://blog.youkuaiyun.com/bochuangli/article/details/125151645</guid><author>bochuangli</author><pubDate>Mon, 06 Jun 2022 18:11:40 +0800</pubDate><description><![CDATA[编写 Dockerfile 文件
命令解析：
https://www.runoob.com/docker/docker-dockerfile.html
命令解析：java:8是指Docker Hub上官方提供的java镜像，版本号是8也就是jdk1.8，有了这个基础镜像后，Dockerfile可以通过FROM指令直接获取它的状态——也就是在容器中java是已经安装的，接下来通过自定义的命令来运行Spring Boot应用VOLUME指向了一个/tmp的目录，由于Spring Boot使用内置的Tomcat容]]></description><category></category></item><item><title><![CDATA[elastic search 实战笔记]]></title><link>https://blog.youkuaiyun.com/bochuangli/article/details/124495092</link><guid>https://blog.youkuaiyun.com/bochuangli/article/details/124495092</guid><author>bochuangli</author><pubDate>Fri, 29 Apr 2022 19:46:45 +0800</pubDate><description><![CDATA[文章目录1.聚合查询1.1 插入数据1.2 查询1.3 结果2.普通id查询2.1 查询2.2 结果
1.聚合查询
1.1 插入数据
PUT /bcl/_doc/1
{
  "name":"aaa",
  "sex":"man"
}

PUT /bcl/_doc/2
{
  "name":"bbb",
  "sex":"man"
}

PUT /bcl/_doc/3
{
  "name":"ccc",
  "sex":"women"
}

PUT /bcl/_doc/4
{
  "name":"ddd",
]]></description><category></category></item><item><title><![CDATA[完全卸载mac上面的VSCode]]></title><link>https://blog.youkuaiyun.com/bochuangli/article/details/124036899</link><guid>https://blog.youkuaiyun.com/bochuangli/article/details/124036899</guid><author>bochuangli</author><pubDate>Fri, 08 Apr 2022 11:19:36 +0800</pubDate><description><![CDATA[1.退出 VSCode 应用
2.输入如下指令，删除 VSCode 的设置和配置
sudo rm -rf $HOME/Library/Application\ Support/Code

3.输入如下指令，删除 VSCode 的插件
sudo rm -rf $HOME/.vscode

4.从 Application 中移除 VSCode

]]></description><category></category></item><item><title><![CDATA[mac安装brew命令]]></title><link>https://blog.youkuaiyun.com/bochuangli/article/details/123901973</link><guid>https://blog.youkuaiyun.com/bochuangli/article/details/123901973</guid><author>bochuangli</author><pubDate>Fri, 01 Apr 2022 16:53:04 +0800</pubDate><description><![CDATA[1.输入命令:


/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"


2.镜像源可以选择 2（清华）



新电脑安装可能会存在如下问题：安装brew 依赖git 因此如下图中的提示需要先安装git(弹框提示，点安装后等待即可)



3.利用 brew 安装需要的软件


利用 brew 安装需要的软件搜索：brew search go





安装需要的版本号brew in.]]></description><category></category></item><item><title><![CDATA[好用的命令]]></title><link>https://blog.youkuaiyun.com/bochuangli/article/details/123520376</link><guid>https://blog.youkuaiyun.com/bochuangli/article/details/123520376</guid><author>bochuangli</author><pubDate>Wed, 16 Mar 2022 10:37:29 +0800</pubDate><description><![CDATA[1.curl 常用命令
1.1 带cookie插叙
curl url --cookie "access_token=9e7d4e0440ac497c8ed01150a01c3bea"

持续更新…

]]></description><category></category></item><item><title><![CDATA[Sharding-JDBC分库分表案例]]></title><link>https://blog.youkuaiyun.com/bochuangli/article/details/123029392</link><guid>https://blog.youkuaiyun.com/bochuangli/article/details/123029392</guid><author>bochuangli</author><pubDate>Sun, 20 Feb 2022 12:50:40 +0800</pubDate><description><![CDATA[文章目录9 案例9.1 需求描述9.2 数据库设计9.3 环境说明9.4 环境准备9.4.1 mysql主从同步(windows)9.4.2 初始化数据库9.5 实现步骤9.5.1 搭建maven工程9.5.2 分片配置9.5.3 添加商品9.5.4 查询商品9.5.5 统计商品9.5.6 完整代码10 总结
9 案例
9.1 需求描述
电商平台商品列表展示，每个列表项中除了包含商品基本信息、商品描述信息之外，还包括了商品所属的店铺信息，如下：

本案例实现功能如下：

添加商品
商品分页查询
商品统计

]]></description><category></category></item><item><title><![CDATA[Sharding-JDBC分库分表(一）]]></title><link>https://blog.youkuaiyun.com/bochuangli/article/details/123014331</link><guid>https://blog.youkuaiyun.com/bochuangli/article/details/123014331</guid><author>bochuangli</author><pubDate>Sat, 19 Feb 2022 09:24:15 +0800</pubDate><description><![CDATA[文章目录1 概述1.1分库分表是什么1.2 分库分表的方式1.2.1 垂直分表1.2.2 垂直分库1.2.3 水平分库1.2.4 水平分表1.2.5 小结1.3 分库分表带来的问题1.3.1 事务一致性问题1.3.2 跨节点关联查询1.3.3 跨节点分页、排序函数1.3.4 主键避重1.3.5 公共表1.4 Sharding-JDBC介绍1.4.1 Sharding-JDBC介绍1.4.2 与jdbc性能对比2 Sharding-JDBC快速入门2.1 需求说明2.2 环境搭建2.2.1 环境说明2.2.2]]></description><category></category></item><item><title><![CDATA[JProfiler分析dump文件]]></title><link>https://blog.youkuaiyun.com/bochuangli/article/details/122898120</link><guid>https://blog.youkuaiyun.com/bochuangli/article/details/122898120</guid><author>bochuangli</author><pubDate>Sat, 12 Feb 2022 16:23:58 +0800</pubDate><description><![CDATA[文章目录1.安装JProfiler（本文使用JProfiler11）2.从服务器上将dump文件拿下来3.使用JProfiler打开4.查看Classes5.查看Reference6.查看7.查看Graph8.查看代码9.扩展
1.安装JProfiler（本文使用JProfiler11）
链接：https://pan.baidu.com/s/1VBHLIo8hIVGeeLjaBVjcIg
提取码：q5wl
在JProfiler的堆遍历器(Heap Walker)中，你可以对堆的状况进行快照并且可以通过选择步]]></description><category></category></item><item><title><![CDATA[已经有了synchronized为什么需要volatile]]></title><link>https://blog.youkuaiyun.com/bochuangli/article/details/122862651</link><guid>https://blog.youkuaiyun.com/bochuangli/article/details/122862651</guid><author>bochuangli</author><pubDate>Thu, 10 Feb 2022 18:26:02 +0800</pubDate><description><![CDATA[文章目录1.volatile和synchronized特点2.volatile和synchronized的区别3.synchronized 问题3.1 有性能损耗3.2 产生阻塞4. volatile的附加功能5. synchronized的有序性保证呢6\. 总结
1.volatile和synchronized特点
首先需要理解线程安全的两个方面：执行控制和内存可见。

执行控制"的目的是控制代码执行(顺序)及是否可以并发执行。
内存可见控制:的是线程执行结果在内存中对其它线程的可见性。根据Java内存模]]></description><category></category></item><item><title><![CDATA[正确理解HashMap]]></title><link>https://blog.youkuaiyun.com/bochuangli/article/details/122841291</link><guid>https://blog.youkuaiyun.com/bochuangli/article/details/122841291</guid><author>bochuangli</author><pubDate>Wed, 09 Feb 2022 16:13:32 +0800</pubDate><description><![CDATA[文章目录1.HashMap集合简介2.HashMap集合底层的数据结构2.1数据结构概念2.2 HashMap底层的数据结构存储数据的过程3.HashMap继承关系4.HashMap集合类的成员4.1成员变量4.2构造方法4.3成员方法4.3.1增加方法4.3.2将链表转换为红黑树的treeifyBin方法4.3.3扩容方法_resize4.3.4 删除方法(remove)4.3.5查找元素方法(get)4.3.6遍历HashMap5.如何设计多个非重复的键值对要存储HashMap的初始化5.1HashMa]]></description><category></category></item><item><title><![CDATA[平衡树(六)]]></title><link>https://blog.youkuaiyun.com/bochuangli/article/details/122822630</link><guid>https://blog.youkuaiyun.com/bochuangli/article/details/122822630</guid><author>bochuangli</author><pubDate>Tue, 08 Feb 2022 14:05:42 +0800</pubDate><description><![CDATA[文章目录平衡树1. 2-3查找树1.1 2-3查找树的定义1.2 查找1.3 插入1.3.1 向2-结点中插入新键1.3.2 向一棵只含有一个3-结点的树中插入新键1.3.3 向一个父结点为2-结点的3-结点中插入新键1.3.4 向一个父结点为3-结点的3-结点中插入新键1.3.5 分解根结点1.4 2-3树的性质1.5 2-3树的实现2.红黑树2.1 红黑树的定义2.2 红黑树节点API2.3 平衡化2.3.1 左旋2.3.3 右旋2.4 向单个2-结点中插入新键2.5 向底部的2-结点插入新键2.6 颜]]></description><category></category></item><item><title><![CDATA[优先级队列(五)]]></title><link>https://blog.youkuaiyun.com/bochuangli/article/details/122812889</link><guid>https://blog.youkuaiyun.com/bochuangli/article/details/122812889</guid><author>bochuangli</author><pubDate>Mon, 07 Feb 2022 18:31:46 +0800</pubDate><description><![CDATA[文章目录1 最大优先队列1.1 最大优先队列API设计1.2 最大优先级队列代码实现2 最小优先队列2.1 最小优先级队列API设计2.2 最小优先级队列代码实现3 索引优先队列3.1 索引优先队列实现思路3.2 索引优先队列API设计3.3 最小索引优先队列代码实现3.4 最大索引优先级队列实现
普通的队列是一种先进先出的数据结构，元素在队列尾追加，而从队列头删除。在某些情况下，我们可能需要找出队列中的最大值或者最小值，例如使用一个队列保存计算机的任务，一般情况下计算机的任务都是有优先级的，我们需要在这些]]></description><category></category></item><item><title><![CDATA[堆和堆排序(四)]]></title><link>https://blog.youkuaiyun.com/bochuangli/article/details/122808138</link><guid>https://blog.youkuaiyun.com/bochuangli/article/details/122808138</guid><author>bochuangli</author><pubDate>Mon, 07 Feb 2022 14:23:59 +0800</pubDate><description><![CDATA[文章目录1 堆的定义2 堆的API设计3 堆的实现3.1 insert插入方法的实现3.2 delMax删除最大元素方法的实现3.3 堆的实现代码4 堆排序4.1 堆构造过程4.2 堆排序过程4.3 代码实现
1 堆的定义
堆是计算机科学中一类特殊的数据结构的统称，堆通常可以被看做是一棵完全二叉树的数组对象。
堆的特性：

它是完全二叉树: 除了树的最后一层结点不需要是满的，其它的每一层从左到右都是满的，如果最后一层结点不是满的，那么要求左满右不满。



它通常用数组来实现:具体方法就是将二叉树的结点按照]]></description><category></category></item><item><title><![CDATA[二叉树(三)]]></title><link>https://blog.youkuaiyun.com/bochuangli/article/details/122805093</link><guid>https://blog.youkuaiyun.com/bochuangli/article/details/122805093</guid><author>bochuangli</author><pubDate>Mon, 07 Feb 2022 10:31:20 +0800</pubDate><description><![CDATA[文章目录1 树的基本定义2 树的相关术语3 二叉树的基本定义4 二叉树的创建4.1  二叉树的节点类4.2 二叉树查找API设计4.3 二叉查找树实现4.4 二叉查找树其他便捷方法4.4.1 查找二叉树中最小的键4.4.2 查找二叉树中最大的键5 二叉树的基础遍历5.1 前序遍历5.2 中序遍历5.3 后序遍历6 二叉树层序遍历7 二叉树的最大深度问题8 折纸问题
之前我们实现的符号表中，不难看出，符号表的增删查操作，随着元素个数N的增多，其耗时也是线性增多的，时间复杂度都是O(n),为了提高运算效率，接下]]></description><category></category></item><item><title><![CDATA[线性表(二)]]></title><link>https://blog.youkuaiyun.com/bochuangli/article/details/122799954</link><guid>https://blog.youkuaiyun.com/bochuangli/article/details/122799954</guid><author>bochuangli</author><pubDate>Sun, 06 Feb 2022 17:45:57 +0800</pubDate><description><![CDATA[文章目录1. 顺序表1.1 顺序表的实现1.2 顺序表的遍历1.3 顺序表的容量可变1.4 顺序表的时间复杂度1.5 java中ArrayList实现2.链表2.1 单向链表2.1.1 单向链表API设计2.1.2 单向链表代码实现2.2 双向链表2.2.1 结点API设计2.2.2 双向链表API设计2.2.3 双向链表代码实现2.2.4 java中LinkedList实现2.3 链表的复杂度分析2.4 链表反转2.5 快慢指针2.5.1 中间值问题2.5.2 单向链表是否有环问题2.6 循环链表2.7 ]]></description><category></category></item><item><title><![CDATA[jvm总结]]></title><link>https://blog.youkuaiyun.com/bochuangli/article/details/122740277</link><guid>https://blog.youkuaiyun.com/bochuangli/article/details/122740277</guid><author>bochuangli</author><pubDate>Sat, 29 Jan 2022 10:43:51 +0800</pubDate><description><![CDATA[文章目录1.JDK8和JDK7区别2.如何判断一个对象可以被回收3.哪些对象可以作为GC Roots4.JVM 三种类型参数4.1 标配参数4.2 X参数4.3 XX参数5.JVM XX参数5.1 布尔类型5.2 KV键值类型6. JVM Xms/Xmx参数7.JVM 查看参数7.1 查看某个参数7.2 查看**所有**参数7.3 查看**修改**后的参数7.4 查看**常见**参数8. JVM 常用参数8.1 -Xmx/-Xms8.2 -Xss8.3 -Xmn8.4 -XX:MetaspaceSize8.]]></description><category></category></item><item><title><![CDATA[观察者模式(十七)]]></title><link>https://blog.youkuaiyun.com/bochuangli/article/details/122728690</link><guid>https://blog.youkuaiyun.com/bochuangli/article/details/122728690</guid><author>bochuangli</author><pubDate>Fri, 28 Jan 2022 11:23:08 +0800</pubDate><description><![CDATA[文章目录行为模式之-观察者模式20.1 天气预报项目需求,具体要求如下20.2 天气预报设计方案 1-普通方案20.3 观察者模式原理20.4 观察者模式解决天气预报需求20.4.3 观察者模式的好处20.5 观察者模式在 Jdk 应用的源码分析
行为模式之-观察者模式
20.1 天气预报项目需求,具体要求如下

气象站可以将每天测量到的温度，湿度，气压等等以公告的形式发布出去(比如发布到自己的网站或第三方)。
需要设计开放型 API，便于其他第三方也能接入气象站获取数据。
提供温度、气压和湿度的接口
测量]]></description><category></category></item><item><title><![CDATA[迭代器模式(十六)]]></title><link>https://blog.youkuaiyun.com/bochuangli/article/details/122728241</link><guid>https://blog.youkuaiyun.com/bochuangli/article/details/122728241</guid><author>bochuangli</author><pubDate>Fri, 28 Jan 2022 11:06:32 +0800</pubDate><description><![CDATA[文章目录行为模式之-迭代器模式19.1 看一个具体的需求19.2 传统的设计方案(类图)19.3 传统的方式的问题分析19.4 迭代器模式基本介绍19.5 迭代器模式的原理类图19.6 迭代器模式应用实例19.7 迭代器模式在 JDK-ArrayList 集合应用的源码分析19.8 迭代器模式的注意事项和细节
行为模式之-迭代器模式
19.1 看一个具体的需求
编写程序展示一个学校院系结构：需求是这样，要在一个页面中展示出学校的院系组成，一个学校有多个学院， 一个学院有多个系。如图：

19.2 传统的设计]]></description><category></category></item><item><title><![CDATA[访问者模式(十五)]]></title><link>https://blog.youkuaiyun.com/bochuangli/article/details/122727810</link><guid>https://blog.youkuaiyun.com/bochuangli/article/details/122727810</guid><author>bochuangli</author><pubDate>Fri, 28 Jan 2022 10:45:03 +0800</pubDate><description><![CDATA[文章目录18 行为模式之-访问者模式18.1 测评系统的需求18.2 传统方式的问题分析18.3 访问者模式基本介绍18.4 访问者模式的原理类图18.5 访问者模式应用实例18.6 访问者模式的注意事项和细节
18 行为模式之-访问者模式
18.1 测评系统的需求
完成测评系统需求
将观众分为男人和女人，对歌手进行测评，当看完某个歌手表演后，得到他们对该歌手不同的评价(评价 有不同的种类，比如 成功、失败 等)

18.2 传统方式的问题分析

如果系统比较小，还是 ok 的，但是考虑系统增加越来越多新的]]></description><category></category></item></channel></rss>