<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[qq_45020745的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/qq_45020745</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qq_45020745]]></copyright><item><title><![CDATA[2021-07-21]]></title><link>https://blog.youkuaiyun.com/qq_45020745/article/details/118961505</link><guid>https://blog.youkuaiyun.com/qq_45020745/article/details/118961505</guid><author>qq_45020745</author><pubDate>Wed, 21 Jul 2021 10:56:58 +0800</pubDate><description><![CDATA[portainer 点击 connect 报错：Failure Cannot connect to the Docker daemon at unix:///var/run/docker.sock.
转载自：https://blog.youkuaiyun.com/peng2hui1314/article/details/109742299

 目录
 1. 操作场景2. 问题根源3. 解决方案4. 拓展

 
【注】使用的环境为 MacOS ，在 Local模式下出现的错误。Linux 和 MacOS 操作是一样的， ]]></description><category></category></item><item><title><![CDATA[dubbo-admin安装测试]]></title><link>https://blog.youkuaiyun.com/qq_45020745/article/details/118766182</link><guid>https://blog.youkuaiyun.com/qq_45020745/article/details/118766182</guid><author>qq_45020745</author><pubDate>Thu, 15 Jul 2021 18:46:41 +0800</pubDate><description><![CDATA[https://github.com/apache/dubbo-admin/tree/master下载


移动到根目录下   cd /usr/local


达成jar包 admin@C02D37LSML85 dubbo-admin-master % mvn clean package -Dmaven.test.skip=true


运行jar包admin@C02D37LSML85 target % java -jar dubbo-admin-0.0.1-SNAPSHOT.jar
(注意要打开zoo..]]></description><category></category></item><item><title><![CDATA[zookeeper的安装与启动]]></title><link>https://blog.youkuaiyun.com/qq_45020745/article/details/118766145</link><guid>https://blog.youkuaiyun.com/qq_45020745/article/details/118766145</guid><author>qq_45020745</author><pubDate>Thu, 15 Jul 2021 18:44:33 +0800</pubDate><description><![CDATA[官方向导：https://zookeeper.apache.org/doc/r3.6.2/zookeeperStarted.html

创建安装目录
cd /usr/local/
mkdir zookeeper
cd zookeeper
下载
地址为：https://mirrors.bfsu.edu.cn/apache/zookeeper/zookeeper-3.6.2/apache-zookeeper-3.6.2-bin.tar.gz
安装
将下载的压缩文件解压、创建数据和日志目录，用于存储zookeep]]></description><category></category></item><item><title><![CDATA[Mybatis Plus入门（一）分页、逻辑删除、性能分析软件、复杂条件查询]]></title><link>https://blog.youkuaiyun.com/qq_45020745/article/details/115841247</link><guid>https://blog.youkuaiyun.com/qq_45020745/article/details/115841247</guid><author>qq_45020745</author><pubDate>Sun, 18 Apr 2021 22:23:42 +0800</pubDate><description><![CDATA[分页

配置分页插件

@Bean
    public PaginationInterceptor paginationInterceptor(){
        return new PaginationInterceptor();
    }


编写分页代码

@Test
    void testPagination(){
        Page&lt;User&gt; page=new Page&lt;&gt;(1,3);//当前页和每页显示记录数
        //调用mp分页查询方法,]]></description><category></category></item><item><title><![CDATA[Mybatis Plus入门（二）  主键策略、自动填充、乐观锁]]></title><link>https://blog.youkuaiyun.com/qq_45020745/article/details/115840583</link><guid>https://blog.youkuaiyun.com/qq_45020745/article/details/115840583</guid><author>qq_45020745</author><pubDate>Sun, 18 Apr 2021 21:43:34 +0800</pubDate><description><![CDATA[环境搭建

依赖

&lt;!--mybatis-plus--&gt;
&lt;dependency&gt;
    &lt;groupId&gt;com.baomidou&lt;/groupId&gt;
    &lt;artifactId&gt;mybatis-plus-boot-starter&lt;/artifactId&gt;
    &lt;version&gt;3.0.5&lt;/version&gt;
&lt;/dependency&gt;

启动类：@MapperScan("com.bky]]></description><category></category></item><item><title><![CDATA[idea cannot download sources的两种解决办法]]></title><link>https://blog.youkuaiyun.com/qq_45020745/article/details/115826249</link><guid>https://blog.youkuaiyun.com/qq_45020745/article/details/115826249</guid><author>qq_45020745</author><pubDate>Sun, 18 Apr 2021 13:16:59 +0800</pubDate><description><![CDATA[方法一、
https://blog.youkuaiyun.com/jwcxs_m/article/details/80076909
https://blog.youkuaiyun.com/qq_41486775/article/details/114334818
但是建议修改
&lt;mirror&gt;
    &lt;id&gt;alimaven&lt;/id&gt;
    &lt;mirrorOf&gt;central&lt;/mirrorOf&gt;
    &lt;name&gt;aliyun maven&lt;/na]]></description><category></category></item><item><title><![CDATA[栈（3）中缀表达式转后缀表达式并计算]]></title><link>https://blog.youkuaiyun.com/qq_45020745/article/details/115620700</link><guid>https://blog.youkuaiyun.com/qq_45020745/article/details/115620700</guid><author>qq_45020745</author><pubDate>Mon, 12 Apr 2021 14:16:24 +0800</pubDate><description><![CDATA[中缀表达式转后缀表达式
思路分析
若栈顶元素不是运算符，也直接压入S1

初始化两个栈：运算符栈S1和存储中间结果栈S2
从左至右扫描中缀表达式
遇到操作数时：直接入S2栈
遇到运算符时：比较其与S1栈顶运算符的优先级

若S1为空或栈顶元素为 (，将次运算符压入S1
若次运算符的优先级大于S1栈顶元素的优先级，就将其直接入S1
否则，将S1栈顶元素弹出并压到S2中，在转到第四步与s1中新的栈顶运算符比较


遇到括号时：

如果是左括号，直接压入S1
如果是右括号，依次弹出S1栈顶的运算符，并压入S2，直]]></description><category></category></item><item><title><![CDATA[栈（2）前缀、中缀、后缀表达式]]></title><link>https://blog.youkuaiyun.com/qq_45020745/article/details/115619160</link><guid>https://blog.youkuaiyun.com/qq_45020745/article/details/115619160</guid><author>qq_45020745</author><pubDate>Mon, 12 Apr 2021 13:45:38 +0800</pubDate><description><![CDATA[前缀表达式:

遇到运算符时，弹出栈顶的两个数，用运算符对它们做相应的计算，并将结果入栈
重复上述过程直到表达式最右端，最后运算出的值就是表达式的结果
例：(2+4)5-6 -&gt;34+56-

中缀表达式：我们日常计算的


后缀表达式（逆波兰表达式）：

从左至右扫描表达式，遇到数字时，将数字压入堆栈，
遇到运算符时，弹出栈顶的两个数，用运算符对它们做相应的计算，并将结果入栈
重复上述过程直到表达式最右端，最后运算出的值就是表达式的结果
例：(2+4)5-6 -&gt;34+56-
tips:观看.]]></description><category></category></item><item><title><![CDATA[栈（1）]]></title><link>https://blog.youkuaiyun.com/qq_45020745/article/details/115618982</link><guid>https://blog.youkuaiyun.com/qq_45020745/article/details/115618982</guid><author>qq_45020745</author><pubDate>Mon, 12 Apr 2021 13:42:38 +0800</pubDate><description><![CDATA[栈实现综合计算器

思路


通过一个index来遍历表达式
如果是数字，直接入数栈
如果是符号

符号栈为空，直接入符号栈
符号栈不为空：

当前操作符的优先级小于等于栈中的操作符，就从数栈中pop出两个数，再从符号栈中pop一个符号进行运算，将得到的结果入数栈
当前操作符的优先级大于栈中的操作符，就直接入符号栈




当表达式扫描完毕，就顺序从数栈和符号栈中pop出相应的数和符号，并运行
最后在数栈只有一个数字，就是表达式结果

import java.util.Scanner;

public cl]]></description><category></category></item><item><title><![CDATA[链表来模拟栈]]></title><link>https://blog.youkuaiyun.com/qq_45020745/article/details/115510977</link><guid>https://blog.youkuaiyun.com/qq_45020745/article/details/115510977</guid><author>qq_45020745</author><pubDate>Thu, 08 Apr 2021 11:06:29 +0800</pubDate><description><![CDATA[链表来模拟栈

public class LinkedStackDemo {
    public static void main(String[] args) {
        StackNodeList stackNodeList=new StackNodeList();
        int key=-1;
        boolean loop=true;//控制是否退出菜单
        Scanner scanner=new Scanner(System.in);
        w.]]></description><category></category></item><item><title><![CDATA[使用数组来模拟栈]]></title><link>https://blog.youkuaiyun.com/qq_45020745/article/details/115510864</link><guid>https://blog.youkuaiyun.com/qq_45020745/article/details/115510864</guid><author>qq_45020745</author><pubDate>Thu, 08 Apr 2021 11:05:45 +0800</pubDate><description><![CDATA[思路分析


使用数组来模拟栈
定义一个top来表示栈顶，初始化为-1
入栈操作：top++;stack[top]=data;
出栈操作： int value=stack[pop];pop–;return value;


数组模拟栈

import java.util.Scanner;
public class ArrayStackDemo {
    public static void main(String[] args) {
        ArrayStack arrayStack = new.]]></description><category></category></item><item><title><![CDATA[栈的使用场景和介绍]]></title><link>https://blog.youkuaiyun.com/qq_45020745/article/details/115510718</link><guid>https://blog.youkuaiyun.com/qq_45020745/article/details/115510718</guid><author>qq_45020745</author><pubDate>Thu, 08 Apr 2021 11:04:19 +0800</pubDate><description><![CDATA[场景


子程序的调用：在跳往子程序前，会先将下个指令的地址存到堆栈中，直到子程序执行完后再将地址取出，回到原来的程序中
处理递归调用：只是除了存储下一个指令的地址外，也将参数、区域变量等数据存入堆栈。
表达式的转换[中缀表达式转后缀表达式]与求值（实际解决）
二叉树的遍历
图的深度优先搜素法


介绍


是一个先入后出的有序列表
限制线性表中元素的插入和删除只能在线性表的同一端进行。允许插入和删除的一端称为栈顶，另一端为栈底。
最先放入栈中的元素在栈底，最后放入的元素在栈顶
而删除元素正好相反，最后放.]]></description><category></category></item><item><title><![CDATA[稀疏数组的全套Java实现]]></title><link>https://blog.youkuaiyun.com/qq_45020745/article/details/115440934</link><guid>https://blog.youkuaiyun.com/qq_45020745/article/details/115440934</guid><author>qq_45020745</author><pubDate>Mon, 05 Apr 2021 13:01:06 +0800</pubDate><description><![CDATA[稀疏数组

介绍

​	当一个数组中大部分元素为0或者同一个值的数组是，可雅使用稀疏数组。
处理方法：

记录数组一共几行几列，有多少个不同值
把具有不同值的元素的行列及值记录在一个小规模的数组中，从而虽小程序规模

实际需求：棋盘存盘退出和续上盘

思路

二位数组转稀疏数组的思路：（稀疏数组的第一行存的是行数和列数）

遍历原始的二维数组，得到有效数据的个数
根据sum就可以创建稀疏数组sparseArr int[sum+1] [ 3]
将二维数组的有效数据存入到稀疏数组中

稀疏数组转原始的二维数组的]]></description><category></category></item><item><title><![CDATA[队列的全套Java实现]]></title><link>https://blog.youkuaiyun.com/qq_45020745/article/details/115440927</link><guid>https://blog.youkuaiyun.com/qq_45020745/article/details/115440927</guid><author>qq_45020745</author><pubDate>Mon, 05 Apr 2021 12:59:37 +0800</pubDate><description><![CDATA[队列

介绍


队列是一个有序链表，可以用数组或是链表来实现
遵循先入先出的原子


应用场景

医院排队叫号

数组模拟队列

public class test {
//[1,3,5,6], 5
//输出: 2


    public static void main(String[] args) {
    //创建一个队列
        ArrayQueue queue = new ArrayQueue(3);
        char key=' ';//接受用户输入
        Sca]]></description><category></category></item><item><title><![CDATA[单链表的面试题五：合并两个有序的单链表（合并后有序）]]></title><link>https://blog.youkuaiyun.com/qq_45020745/article/details/115440909</link><guid>https://blog.youkuaiyun.com/qq_45020745/article/details/115440909</guid><author>qq_45020745</author><pubDate>Mon, 05 Apr 2021 12:57:57 +0800</pubDate><description><![CDATA[5）合并两个有序的单链表（合并后有序）
public class Main {
    public static void main(String[] args) {
        HeroNode heroNode=new HeroNode(1,"a","a");
        HeroNode heroNode2=new HeroNode(5,"b","b");
        HeroNode heroNode3=new HeroNode(6,"c","d");
        HeroNode]]></description><category></category></item><item><title><![CDATA[单链表的面试题四：两种方式实现从尾到头打印单链表]]></title><link>https://blog.youkuaiyun.com/qq_45020745/article/details/115440902</link><guid>https://blog.youkuaiyun.com/qq_45020745/article/details/115440902</guid><author>qq_45020745</author><pubDate>Mon, 05 Apr 2021 12:57:24 +0800</pubDate><description><![CDATA[4）从尾到头打印单链表
要求： 方式一（见上篇博客）
先将单链表进行反转，再遍历，这样做的问题是会破坏原来的单链表的结构，不建议
方式二：
利用栈这个数据结构，将各个节点压入栈中，利用栈的先进后出的特点，就实现了逆序打印
 public  void  reversetList2(HeroNode head){
        if(head.next==null||head.next.next==null){
            return;
        }
        Stack&lt;He]]></description><category></category></item><item><title><![CDATA[单链表的面试题三：单链表的反转]]></title><link>https://blog.youkuaiyun.com/qq_45020745/article/details/115440895</link><guid>https://blog.youkuaiyun.com/qq_45020745/article/details/115440895</guid><author>qq_45020745</author><pubDate>Mon, 05 Apr 2021 12:56:29 +0800</pubDate><description><![CDATA[3）单链表的反转
思路：

先定义一个节点reverseHead
从头到尾遍历原来的链表，每遍历一个节点，就将其取出，放在链表的最前端
原来的链表的head.next=reverseHead.next


代码实现

 public   void reversetList(HeroNode head){

            //如果当前链表为空或者只有一个节点，无需反转，直接返回
        if(head.next==null||head.next.next==null){
          ]]></description><category></category></item><item><title><![CDATA[单链表的面试题二：查找单链表中的倒数第k个节点]]></title><link>https://blog.youkuaiyun.com/qq_45020745/article/details/115440887</link><guid>https://blog.youkuaiyun.com/qq_45020745/article/details/115440887</guid><author>qq_45020745</author><pubDate>Mon, 05 Apr 2021 12:55:43 +0800</pubDate><description><![CDATA[2）查找单链表中的倒数第k个节点
public HeroNode findLastIndexNode(HeroNode head,int index){
            if(head.next==null){
                return null;
            }

            int getlen = getlen(head); //获得链表长度
            if(index&lt;=0||index&gt;getlen){
        ]]></description><category></category></item><item><title><![CDATA[单链表的面试题一：求单链表中有效节点个数]]></title><link>https://blog.youkuaiyun.com/qq_45020745/article/details/115440874</link><guid>https://blog.youkuaiyun.com/qq_45020745/article/details/115440874</guid><author>qq_45020745</author><pubDate>Mon, 05 Apr 2021 12:54:52 +0800</pubDate><description><![CDATA[单链表的面试题
1）求单链表中有效节点个数
如果是带头节点的链表，需求不统计头结点
public class Main {
    public static void main(String[] args) {
        HeroNode heroNode=new HeroNode(1,"a","a");
        HeroNode heroNode2=new HeroNode(2,"b","b");
        HeroNode heroNode3=new HeroNode(6,"c",]]></description><category></category></item><item><title><![CDATA[单链表的全套Java实现]]></title><link>https://blog.youkuaiyun.com/qq_45020745/article/details/115440836</link><guid>https://blog.youkuaiyun.com/qq_45020745/article/details/115440836</guid><author>qq_45020745</author><pubDate>Mon, 05 Apr 2021 12:51:53 +0800</pubDate><description><![CDATA[单链表
单链表的无序插入
单链表的创建直接添加到尾部
public class SinleLinkedListDemo {
    public static void main(String[] args) {
        HeroNode heroNode=new HeroNode(1,"a","a");
        HeroNode heroNode2=new HeroNode(2,"b","b");
        HeroNode heroNode3=new HeroNode(3,"c",]]></description><category></category></item></channel></rss>