<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[SICAUliuy的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/SICAUliuy</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; SICAUliuy]]></copyright><item><title><![CDATA[git diff输出分析]]></title><link>https://blog.youkuaiyun.com/SICAUliuy/article/details/125256486</link><guid>https://blog.youkuaiyun.com/SICAUliuy/article/details/125256486</guid><author>SICAUliuy</author><pubDate>Mon, 13 Jun 2022 15:29:38 +0800</pubDate><description><![CDATA[git diff 命令通过文件补丁的格式比较文件在暂存区和工作区具体地显示哪些行发生了改变。本文通过实例对命令输出进行解析。]]></description><category></category></item><item><title><![CDATA[MySQL学习之路]]></title><link>https://blog.youkuaiyun.com/SICAUliuy/article/details/125059735</link><guid>https://blog.youkuaiyun.com/SICAUliuy/article/details/125059735</guid><author>SICAUliuy</author><pubDate>Sun, 12 Jun 2022 00:04:29 +0800</pubDate><description><![CDATA[MySQL基础操作，包括正则表达式、常用函数、组合查询、视图、事务、存储过程、游标、触发器和事务]]></description><category></category></item><item><title><![CDATA[什么是索引下推]]></title><link>https://blog.youkuaiyun.com/SICAUliuy/article/details/124857933</link><guid>https://blog.youkuaiyun.com/SICAUliuy/article/details/124857933</guid><author>SICAUliuy</author><pubDate>Thu, 19 May 2022 10:32:22 +0800</pubDate><description><![CDATA[概述
索引条件下推优化（Index Condition Pushdown (ICP) ）是MySQL5.6添加的，用于优化数据查询。
当使用索引条件下推优化时，如果存在某些被索引的列的判断条件时，MySQL服务器将这一部分判断条件传递给存储引擎，然后由存储引擎通过判断索引是否符合MySQL服务器传递的条件，只有当索引符合条件时才会将数据检索出来返回给MySQL服务器。索引条件下推优化可以减少存储引擎查询基础表的次数，也可以减少MySQL服务器从存储引擎接收数据的次数。]]></description><category></category></item><item><title><![CDATA[设计模式 - 工厂模式]]></title><link>https://blog.youkuaiyun.com/SICAUliuy/article/details/124645420</link><guid>https://blog.youkuaiyun.com/SICAUliuy/article/details/124645420</guid><author>SICAUliuy</author><pubDate>Sun, 08 May 2022 11:22:52 +0800</pubDate><description><![CDATA[工厂模式
工厂模式可分为简单工厂、工厂方法和抽象工厂模式。
简单工厂
简单工厂模式(Simple Factory Pattern)：又称为静态工厂方法(Static Factory Method)模式.


角色
Factory：工厂角色工厂角色负责实现创建所有实例的内部逻辑
Product：抽象产品角色抽象产品角色是所创建的所有对象的父类，负责描述所有实例所共有的公共接口
ConcreteProduct：具体产品角色具体产品角色是创建目标，所有创建的对象都充当这个角色的某个具体类的实例。


类图



]]></description><category></category></item><item><title><![CDATA[https连接过程]]></title><link>https://blog.youkuaiyun.com/SICAUliuy/article/details/124388535</link><guid>https://blog.youkuaiyun.com/SICAUliuy/article/details/124388535</guid><author>SICAUliuy</author><pubDate>Sun, 24 Apr 2022 23:12:12 +0800</pubDate><description><![CDATA[前驱知识：

对称加密（共享密钥加密）：加密和解密公用一个密钥的方式称为共享密钥加密（common key crypto system），例如：DES、DESede(三重DES)、AES
https://wenku.baidu.com/view/68940050f76527d3240c844769eae009581ba2cc.html
非对称加密：包含公钥（private key）和私钥（public key），公钥加密、私钥解密（如果私钥加密、公钥解密称为签名。但是公钥和私钥不可以互换，因为公钥可以通过私]]></description><category></category></item><item><title><![CDATA[RabbitMQ入门]]></title><link>https://blog.youkuaiyun.com/SICAUliuy/article/details/123332452</link><guid>https://blog.youkuaiyun.com/SICAUliuy/article/details/123332452</guid><author>SICAUliuy</author><pubDate>Wed, 20 Apr 2022 18:02:32 +0800</pubDate><description><![CDATA[RabbitMQ简介




安装步骤
在centos7环境上，

因为是最小化安装，需要先yum install gcc 依赖
wget 对应的安装包 erlang、socat、rabbitmq-server
通过rpm 安装 顺序是 erlang、socat、rabbitmq-server
常用命令

# 启动
systemctl start rabbitmq-server
# 添加web管理插件
rabbitmq-plugins enable rabbitmq_management
# 重启
syst]]></description><category></category></item><item><title><![CDATA[redis面经整理]]></title><link>https://blog.youkuaiyun.com/SICAUliuy/article/details/109466653</link><guid>https://blog.youkuaiyun.com/SICAUliuy/article/details/109466653</guid><author>SICAUliuy</author><pubDate>Sun, 10 Apr 2022 11:19:08 +0800</pubDate><description><![CDATA[什么是 Redis？简述它的优缺点？

简介：全称：remote dictionary server,本质是一个key-value类型的内训数据库。整个数据库统统加载在内存当中进行操作，定期通过异步操作把数据库数据刷新到硬盘上进行保存
优点：（1）因为是纯内存操作，性能出色。每秒可以处理超过 10 万次读写操作，是已知性能最快的Key-Value DB；（2）支持多种数据结构，单个value最大的限制是1GB
缺点：数据库容量受物理内存的限制，不能做海量数据高性能独写，因此 Redis 适合的场景主要局..]]></description><category></category></item><item><title><![CDATA[三个线程交替打印字符]]></title><link>https://blog.youkuaiyun.com/SICAUliuy/article/details/123832133</link><guid>https://blog.youkuaiyun.com/SICAUliuy/article/details/123832133</guid><author>SICAUliuy</author><pubDate>Tue, 29 Mar 2022 21:06:20 +0800</pubDate><description><![CDATA[三个线程分别打印"A"、“B”、“C”，现在需要完成三个线程交替打印，10个ABC
public class Main {
    private static AtomicInteger index = new AtomicInteger(0);
    private static AtomicInteger epoches = new AtomicInteger(0);
    static Thread A = new ThreadA();
    static Thread B = new Thr]]></description><category></category></item><item><title><![CDATA[时序图笔记]]></title><link>https://blog.youkuaiyun.com/SICAUliuy/article/details/123759781</link><guid>https://blog.youkuaiyun.com/SICAUliuy/article/details/123759781</guid><author>SICAUliuy</author><pubDate>Sat, 26 Mar 2022 18:01:41 +0800</pubDate><description><![CDATA[时序图(Sequence Diagram)，又名序列图、循序图，是一种UML交互图
我们在画时序图时会涉及下面7种元素：

角色(Actor)
系统角色，可以是人或者其他系统和子系统。以一个小人图标表示。
对象(Object)
对象位于时序图的顶部,以一个矩形表示。对象的命名方式一般有三种：
对象名和类名。例如：华为手机:手机、loginServiceObject:LoginService；
只显示类名，不显示对象，即为一个匿名类。例如：:手机、:LoginSservice。
只显示对象名，不显示类名。例如]]></description><category></category></item><item><title><![CDATA[UML类图]]></title><link>https://blog.youkuaiyun.com/SICAUliuy/article/details/123753454</link><guid>https://blog.youkuaiyun.com/SICAUliuy/article/details/123753454</guid><author>SICAUliuy</author><pubDate>Sat, 26 Mar 2022 16:51:07 +0800</pubDate><description><![CDATA[转载：30分钟学会UML类图
类图中具体类、抽象、接口和包的表示法
UML类图中表示具体类
具体类在类图中用矩形框表示，矩形框分为三层：第一层是类名字。第二层是类的成员变量；第三层是类的方法。成员变量以及方法前的访问修饰符用符号来表示：

“+”表示 public；
“-”表示 private；
“#”表示 protected；
不带符号表示 default。


UML类图中表示抽象类
抽象类在UML类图中同样用矩形框表示，但是***抽象类的类名以及抽象方法的名字都用斜体字表***示，如图2所示。

UM]]></description><category></category></item><item><title><![CDATA[CopyOnWriteArrayList线程安全问题]]></title><link>https://blog.youkuaiyun.com/SICAUliuy/article/details/121491074</link><guid>https://blog.youkuaiyun.com/SICAUliuy/article/details/121491074</guid><author>SICAUliuy</author><pubDate>Tue, 23 Nov 2021 13:35:52 +0800</pubDate><description><![CDATA[今天在学习CopyOnWriteArrayList原理的时候，发现一个问题。
CopyOnWriteArrayList更新操作是先复制原数组，然后在新数组上修改，之后再将原数组的引用指向新数组。
/** The lock protecting all mutators */
    final transient ReentrantLock lock = new ReentrantLock();

    /** The array, accessed only via getArray/setArray.]]></description><category></category></item><item><title><![CDATA[证明：偶数长度的回文数中只有11是素数]]></title><link>https://blog.youkuaiyun.com/SICAUliuy/article/details/120444706</link><guid>https://blog.youkuaiyun.com/SICAUliuy/article/details/120444706</guid><author>SICAUliuy</author><pubDate>Thu, 23 Sep 2021 22:25:42 +0800</pubDate><description><![CDATA[说明
回文数有两种
一种是单数位数，abcba，一种是双数位数，abccba
其中双数位数是质数的只有11
证明
举例: abc……cba
a * 100……001
b * 10……01
c * 1……1
其中 1……1 是能被11整除，其中省略号中只要2个0
参考博客：https://bbs.youkuaiyun.com/topics/392318549

...]]></description><category></category></item><item><title><![CDATA[mybatis使用技巧]]></title><link>https://blog.youkuaiyun.com/SICAUliuy/article/details/120220389</link><guid>https://blog.youkuaiyun.com/SICAUliuy/article/details/120220389</guid><author>SICAUliuy</author><pubDate>Fri, 10 Sep 2021 14:18:46 +0800</pubDate><description><![CDATA[mybatis and,or复合查询
要查询的sql:

select  * from user where name = ? and (age=? or  city=?)；

方法1：不使用Example查询直接在usermapper.xml中修改sql
方法2：使用Example查询sql可转换成
select * from user where (name = ? and age=?) or (name=? and city=?)；

然后使用Example查询
UserExample exampl.]]></description><category></category></item><item><title><![CDATA[两个线程交替打印helloworld]]></title><link>https://blog.youkuaiyun.com/SICAUliuy/article/details/119979094</link><guid>https://blog.youkuaiyun.com/SICAUliuy/article/details/119979094</guid><author>SICAUliuy</author><pubDate>Sun, 29 Aug 2021 12:22:30 +0800</pubDate><description><![CDATA[美团面试题：用2个线程交替打印helloworld：

t1: h
t2: e
t3: l
t4: l
t5: o
t6: w
……


代码

import java.util.concurrent.atomic.AtomicInteger;

public class PrintHelloWord{
    private static AtomicInteger index = new AtomicInteger(0);
    private static String s = "helloWor.]]></description><category></category></item><item><title><![CDATA[为啥HashMap的长度一定是2的n次方]]></title><link>https://blog.youkuaiyun.com/SICAUliuy/article/details/119703682</link><guid>https://blog.youkuaiyun.com/SICAUliuy/article/details/119703682</guid><author>SICAUliuy</author><pubDate>Sat, 14 Aug 2021 17:36:01 +0800</pubDate><description><![CDATA[直接说原因：

计算方便
hash分布更均匀

计算方便
当HashMap长度为2的次方时,等式 hash(key) &amp; (length - 1) == hash(key) % length 成立
解释：
hash(key) % length 得到的结果 hash(key)  - (hash(key)  / length) * length
因为HashMap长度为2的次方，所以length - 1 的值转成二进制为全1的形式（2的次方一定是 1000…… 这种形式，再减去1，剩下的一定都是1，没有]]></description><category></category></item><item><title><![CDATA[java并发编程的任务]]></title><link>https://blog.youkuaiyun.com/SICAUliuy/article/details/117417466</link><guid>https://blog.youkuaiyun.com/SICAUliuy/article/details/117417466</guid><author>SICAUliuy</author><pubDate>Mon, 31 May 2021 15:40:59 +0800</pubDate><description><![CDATA[并发编程的挑战
上下文切换

任务从保存到再加载的过程就是一次上下文切换
单核处理器通过给每个线程分配CPU时间片来实现多线程
减少上下文切换的方法有无锁并发编程、CAS算法、使用最少线程和使用协程。

死锁
避免死锁

避免一个线程同时获取多个锁
避免一个线程在锁内同时占用多个资源，尽量保证每个锁只占用一个资源
尝试使用定时锁，使用lock.tryLock（timeout）来替代使用内部锁机制
对于数据库锁，加锁和解锁必须在一个数据库连接里，否则会出现解锁失败的情况

资源限制的挑战
概念
资源限制是指在]]></description><category></category></item><item><title><![CDATA[面试智力题]]></title><link>https://blog.youkuaiyun.com/SICAUliuy/article/details/116989335</link><guid>https://blog.youkuaiyun.com/SICAUliuy/article/details/116989335</guid><author>SICAUliuy</author><pubDate>Tue, 18 May 2021 15:03:18 +0800</pubDate><description><![CDATA[病狗问题


一个村庄有70户人家,每户人家养一条狗
已知这些狗中有一部分病狗,由于某种原因,狗的主人无法判断自己的狗是否是病狗,却能够分辨其他的狗是否是病狗
现在,大家决定每户人家自行处决各自的病狗,但如何知道自己的狗是病狗呢?大家必须对其他所有人的狗进行观察,但不允许指认他人的狗是病狗,只能通过别人的狗是否生病判断自己的狗是否有病
如果判断自己的狗生病了,就要自行处决自己的狗 过了10天之后,所有的病狗都被处决了,问,一共有几只病狗？

解析：
前提：70只狗中一定有病狗
情况1：1只病狗

那么病狗.]]></description><category></category></item><item><title><![CDATA[每日查询记录]]></title><link>https://blog.youkuaiyun.com/SICAUliuy/article/details/116548251</link><guid>https://blog.youkuaiyun.com/SICAUliuy/article/details/116548251</guid><author>SICAUliuy</author><pubDate>Sat, 08 May 2021 23:47:51 +0800</pubDate><description><![CDATA[记录每天工作或学习过程中查询的碎片知识点，可能只是为了临时使用百度了一下，并没有理解或消化。在次记录如果有时间就可以回头学习一下

2021/5/8

linux中统计一个文件夹下普通文件数目

$ ls -l | grep "^-" | wc -l

参考博客：linuxprobe.com/linux-ls-grep-wc.html
有关wc命令：https://www.cnblogs.com/vincenshen/p/6560881.html

...]]></description><category></category></item><item><title><![CDATA[java基础面经]]></title><link>https://blog.youkuaiyun.com/SICAUliuy/article/details/112345767</link><guid>https://blog.youkuaiyun.com/SICAUliuy/article/details/112345767</guid><author>SICAUliuy</author><pubDate>Fri, 23 Apr 2021 22:27:45 +0800</pubDate><description><![CDATA[当一个对象被当作参数传递到一个方法后，此方法可改变这个对象的属性，并可返回变化后的结果，那么这里到底是值传递还是引用传递?
　答:是值传递。Java 编程语言只有值传递参数。当一个对象实例作为一个参数被传递到方法中时，参数的值就是该对象的引用一个副本。指向同一个对象,对象的内容可以在被调用的方法中改变，但对象的引用(不是引用的副本)是永远不会改变的。


Java中会存在内存泄露吗？
答：Java语言也存在内存泄露问题。Java语言提供了垃圾回收机制，它可以自动回收那些不再被使用的对象，以释放内存空间，..]]></description><category></category></item><item><title><![CDATA[Java面向对象特性]]></title><link>https://blog.youkuaiyun.com/SICAUliuy/article/details/116058928</link><guid>https://blog.youkuaiyun.com/SICAUliuy/article/details/116058928</guid><author>SICAUliuy</author><pubDate>Fri, 23 Apr 2021 16:17:51 +0800</pubDate><description><![CDATA[对象的概念
对象与真实世界的实体一一对应，对象有一下特点：

对象具有属性和行为
对象具有唯一性
对象都是某个类别的实例

面向对象与面向过程的区别

面向过程：站在过程的角度思考问题，强调功能行为，功能的执行先后顺序，通过每个一个函数把这些步骤一步一步实现，使用的时候依次调用函数就可以。最小的程序单元是函数，整个软件系统是由一个个函数组成。
面向对象：站在对象的角度思考问题，把多个功能合理的放到不同的对象里，强调具备功能的是对象。面向对象最小的程序单元是类。
两者的优缺点：面向过程设计不够值观，与人类的思]]></description><category></category></item></channel></rss>