<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[mawei982133的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/mawei982133</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; mawei982133]]></copyright><item><title><![CDATA[简谈mysql索引之联合索引]]></title><link>https://blog.youkuaiyun.com/mawei982133/article/details/109276060</link><guid>https://blog.youkuaiyun.com/mawei982133/article/details/109276060</guid><author>mawei982133</author><pubDate>Sun, 25 Oct 2020 18:55:48 +0800</pubDate><description><![CDATA[前言
我们程序员日常工作中打交道最多的就是联合索引，基本上索引优化就是优化这一块。讲联合索引，一定要扯上最左匹配原则。不废话，直接进入正文。(注:本文是在Innodb的基础上讨论和实验的。)
正文
最左匹配原则
所谓最左原则指的就是如果你的 SQL 语句中用到了联合索引中的最左边的索引，那么这条 SQL 语句就可以利用这个联合索引去进行匹配，值得注意的是，当遇到范围查询(&gt;、&lt;、between、like)就会停止匹配。
假设，我们对(col1,col2)字段建立一个索引，也就是说，你where后]]></description><category></category></item><item><title><![CDATA[Linux下安装nacos踩坑记]]></title><link>https://blog.youkuaiyun.com/mawei982133/article/details/109148160</link><guid>https://blog.youkuaiyun.com/mawei982133/article/details/109148160</guid><author>mawei982133</author><pubDate>Sun, 18 Oct 2020 18:44:56 +0800</pubDate><description><![CDATA[前言
最近在虚拟机上安装SpringCloud Alibaba Nacos服务时遇到几个报错，在网上浏览了几篇博客找到了解决方法，特此记录一下。
启动Nacos服务时报错
一、db.num is null

这个报错原因是数据库没有配置。
解决办法 ：
步骤1：mysql新建库：nacos，字符集：utf8 ，排序规则：utf8_general_ci
步骤2:%home%/conf/nacos-mysql.sql文件里的sql脚本执行到本机数据库的nacos库中
步骤3：%home%/conf/applic]]></description><category></category></item><item><title><![CDATA[分布式理论(二)-BASE理论]]></title><link>https://blog.youkuaiyun.com/mawei982133/article/details/108987439</link><guid>https://blog.youkuaiyun.com/mawei982133/article/details/108987439</guid><author>mawei982133</author><pubDate>Fri, 09 Oct 2020 22:23:32 +0800</pubDate><description><![CDATA[前言
BASE理论是由eBay架构师提出的。BASE是对CAP中一致性和可用性权衡的结果，其来源于对大规模互联网分布式系统实践的总结，是基于CAP定律逐步演化而来。其核心思想是即使无法做到强一致性，但每个应用都可以根据自身业务特点，才用适当的方式来使系统打到最终一致性。
正文
1. CAP的3选2伪命题
实际上，不是为了P（分区容错性），必须在C（一致性）和A（可用性）之间任选其一。分区的情况很少出现，CAP在大多时间能够同时满足C和A。
对于分区存在或者探知其影响的情况下，需要提供一种预备策略做出处理：
]]></description><category></category></item><item><title><![CDATA[分布式理论(一)-CAP理论]]></title><link>https://blog.youkuaiyun.com/mawei982133/article/details/107052050</link><guid>https://blog.youkuaiyun.com/mawei982133/article/details/107052050</guid><author>mawei982133</author><pubDate>Fri, 09 Oct 2020 22:09:16 +0800</pubDate><description><![CDATA[XXXXXXXXXXXXXXXXX

]]></description><category></category></item><item><title><![CDATA[java设计模式之三大分类,六大原则]]></title><link>https://blog.youkuaiyun.com/mawei982133/article/details/108813483</link><guid>https://blog.youkuaiyun.com/mawei982133/article/details/108813483</guid><author>mawei982133</author><pubDate>Sat, 26 Sep 2020 16:21:07 +0800</pubDate><description><![CDATA[一.设计模式定义（Design Patterns)
设计模式（Design pattern）是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问，设计模式于己于他人于系统都是多赢的，设计模式使代码编制真正工程化，设计模式是软件工程的基石，如同大厦的一块块砖石一样。项目中合理的运用设计模式可以完美的解决很多问题，每种模式在现在中都有相应的原理来与之对应，每一个模式描述了一个在我们周围不断重复发生的问题，以及该问题的]]></description><category></category></item><item><title><![CDATA[Linux中scp命令获取远程文件的方法]]></title><link>https://blog.youkuaiyun.com/mawei982133/article/details/108799846</link><guid>https://blog.youkuaiyun.com/mawei982133/article/details/108799846</guid><author>mawei982133</author><pubDate>Fri, 25 Sep 2020 16:42:49 +0800</pubDate><description><![CDATA[一、scp是什么？
scp是secure copy的简写，用于在Linux下进行远程拷贝文件的命令，和它类似的命令有cp，不过cp只是在本机进行拷贝不能跨服务器，而且scp传输是加密的，可能会稍微影响一下速度。
二、scp有什么用？
1、我们需要获得远程服务器上的某个文件，远程服务器既没有配置ftp服务器，没有开启web服务器，也没有做共享，无法通过常规途径获得文件时，只需要通过scp命令便可轻松的达到目的；
2、我们需要将本机上的文件上传到远程服务器上，远程服务器没有开启ftp服务器或共享，无法通过常规途]]></description><category></category></item><item><title><![CDATA[详解linux目录结构]]></title><link>https://blog.youkuaiyun.com/mawei982133/article/details/108564153</link><guid>https://blog.youkuaiyun.com/mawei982133/article/details/108564153</guid><author>mawei982133</author><pubDate>Sun, 13 Sep 2020 16:47:03 +0800</pubDate><description><![CDATA[文件夹
描述




/boot
系统启动相关的文件，如内核、initrd，以及grub（BootLoader）


/etc
配置文件


/home
用户的家目录，每一个用户的家目录通常默认为/home/USERNAME


/root
管理员的家目录


/lib
库文件 1.静态库：单在程序中的库，其他程序不能使用该库文件  2.动态库：在内存中，任何用到该库的程序都可以使用  3. /lib/modules：内核模块文件


/media
挂载点目录，移动设备 （在windows中，插入一...]]></description><category></category></item><item><title><![CDATA[Java类加载知识01-Java的类加载过程]]></title><link>https://blog.youkuaiyun.com/mawei982133/article/details/107500599</link><guid>https://blog.youkuaiyun.com/mawei982133/article/details/107500599</guid><author>mawei982133</author><pubDate>Wed, 22 Jul 2020 21:50:10 +0800</pubDate><description><![CDATA[Java类加载知识01-Java的类加载过程前言类加载加载
前言
一个Java文件从编码完成到最终执行，一般主要包括两个过程

编译
运行

编译，即把我们写好的java文件，通过javac命令编译成字节码，也就是我们常说的.class文件。
运行，则是把编译生成的.class文件交给Java虚拟机(JVM)执行。
而我们所说的类加载过程即是指JVM虚拟机把.class文件中类信息加载进内存，并进行解析生成对应的class对象的过程。
举个通俗点的例子来说，JVM在执行某段代码时，遇到了class A， 然]]></description><category></category></item><item><title><![CDATA[Spring Cloud Eureka 自我保护机制]]></title><link>https://blog.youkuaiyun.com/mawei982133/article/details/107300995</link><guid>https://blog.youkuaiyun.com/mawei982133/article/details/107300995</guid><author>mawei982133</author><pubDate>Sun, 12 Jul 2020 17:18:22 +0800</pubDate><description><![CDATA[Eureka Server 在运行期间会去统计心跳失败比例在 15 分钟之内是否低于 85%，如果低于 85%，Eureka Server 会将这些实例保护起来，让这些实例不会过期，但是在保护期内如果服务刚好这个服务提供者非正常下线了，此时服务消费者就会拿到一个无效的服务实例，此时会调用失败，对于这个问题需要服务消费者端要有一些容错机制，如重试，断路器等。
我们在单机测试的时候很容易满足心跳失败比例在 15 分钟之内低于 85%，这个时候就会触发 Eureka 的保护机制，一旦开启了保护机制，则服务注册中心]]></description><category></category></item><item><title><![CDATA[linux常用命令大全]]></title><link>https://blog.youkuaiyun.com/mawei982133/article/details/107151702</link><guid>https://blog.youkuaiyun.com/mawei982133/article/details/107151702</guid><author>mawei982133</author><pubDate>Sun, 12 Jul 2020 12:07:08 +0800</pubDate><description><![CDATA[Linux常用命令大全（非常全！！！）
最近都在和Linux打交道，感觉还不错。我觉得Linux相比windows比较麻烦的就是很多东西都要用命令来控制，当然，这也是很多人喜欢linux的原因，比较短小但却功能强大。我将我了解到的命令列举一下，仅供大家参考：
系统信息
arch 显示机器的处理器架构
uname -m 显示机器的处理器架构
uname -r 显示正在使用的内核版本
dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI)
hdparm -i /dev/hda 罗列一个磁盘]]></description><category></category></item><item><title><![CDATA[如何理解阻塞IO和非阻塞IO、同步IO、异步IO]]></title><link>https://blog.youkuaiyun.com/mawei982133/article/details/106870633</link><guid>https://blog.youkuaiyun.com/mawei982133/article/details/106870633</guid><author>mawei982133</author><pubDate>Sun, 21 Jun 2020 10:05:55 +0800</pubDate><description><![CDATA[如何理解分5种IO模型、阻塞IO和非阻塞IO、同步IO、信号驱动IO和异步IO前言一、IO的概念二、5种IO模型阻塞IO模型(blocking IO)非阻塞IO模型(nonblocking IO)IO复用模型(IO multiplexing)信号驱动IO模型异步IO模型(Asynchronous I/O)
前言
初学IO模型时，经常搞不明白阻塞(blocking)和非阻塞(non-blocking)，同步(synchronous IO)和异步(asynchronous IO)这些IO模型区别在哪。。这是由于]]></description><category></category></item><item><title><![CDATA[TCP/IP的体系结构]]></title><link>https://blog.youkuaiyun.com/mawei982133/article/details/106676327</link><guid>https://blog.youkuaiyun.com/mawei982133/article/details/106676327</guid><author>mawei982133</author><pubDate>Sat, 13 Jun 2020 22:46:42 +0800</pubDate><description><![CDATA[搞懂TCP、IP和HTTP、HTTPS的区别GC概述一、GC是什么？二、哪些内存需要回收？引用计数算法根搜索算法三、如何回收垃圾对象？标记-清除算法(Mark-Sweep)：复制算法(Copying)标记整理算法(Mark-Compact)分代收集算法：（新生代的GC+老年代的GC）Stop-The-World
GC概述
一、GC是什么？
（1）GC：Garbage Collection 垃圾收集。这里所谓的垃圾指的是在系统运行过程当中所产生的一些无用的对象，这些对象占据着一定的内存空间，如果长期不被释放，]]></description><category></category></item><item><title><![CDATA[JVM学习笔记03-垃圾收集器及GC参数]]></title><link>https://blog.youkuaiyun.com/mawei982133/article/details/106598740</link><guid>https://blog.youkuaiyun.com/mawei982133/article/details/106598740</guid><author>mawei982133</author><pubDate>Sun, 07 Jun 2020 21:32:37 +0800</pubDate><description><![CDATA[JVM内存模型分析03篇-垃圾收集器及GC参数前言垃圾收集器概述一、垃圾收集器分类:串行收集器：Serial收集器(单线程、 复制算法)并行收集器：ParNew 垃圾收集器（ （Serial+多线程）
前言
有哪些垃圾收集器?
垃圾收集器的GC参数是什么？
JVM默认使用哪些垃圾收集器?
什么是JVM的Client模式？什么是Server模式？
请带着以上疑问耐心阅读全文。
垃圾收集器概述
一、垃圾收集器分类:
Java 堆内存被划分为新生代和年老代两部分，新生代主要使用复制和标记-清除垃圾回收 算法 ；年]]></description><category></category></item><item><title><![CDATA[JVM学习笔记02-GC算法和种类]]></title><link>https://blog.youkuaiyun.com/mawei982133/article/details/106544153</link><guid>https://blog.youkuaiyun.com/mawei982133/article/details/106544153</guid><author>mawei982133</author><pubDate>Sat, 06 Jun 2020 23:23:06 +0800</pubDate><description><![CDATA[JVM学习笔记02-GC算法和种类

]]></description><category></category></item><item><title><![CDATA[JVM学习笔记01-JVM内存模型]]></title><link>https://blog.youkuaiyun.com/mawei982133/article/details/106507423</link><guid>https://blog.youkuaiyun.com/mawei982133/article/details/106507423</guid><author>mawei982133</author><pubDate>Thu, 04 Jun 2020 12:50:28 +0800</pubDate><description><![CDATA[JVM学习笔记01-JVM内存模型前言JVM内存模型分析综述一、方法区/永久代(线程共享)二、Java虚拟机栈(线程私有)如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能，丰富你的文章UML 图表FLowchart流程图导出与导入导出导入
前言
什么是JVM?简单来说，JVM就是一套运行Java代码的假想计算机,包括一套字节码指令集、一组寄]]></description><category></category></item><item><title><![CDATA[HashMap 的长度为什么是2的幂次方]]></title><link>https://blog.youkuaiyun.com/mawei982133/article/details/87436909</link><guid>https://blog.youkuaiyun.com/mawei982133/article/details/87436909</guid><author>mawei982133</author><pubDate>Sat, 16 Feb 2019 11:25:22 +0800</pubDate><description><![CDATA[为了能让 HashMap 存取高效，尽量较少碰撞，也就是要尽量把数据分配均匀。我们上面也讲到了过了，Hash 值的范围值-2147483648到2147483647，前后加起来大概40亿的映射空间，只要哈希函数映射得比较均匀松散，一般应用是很难出现碰撞的。但问题是一个40亿长度的数组，内存是放不下的。所以这个散列值是不能直接拿来用的。用之前还要先做对数组的长度取模运算，得到的余数才能用来要存放的位...]]></description><category></category></item><item><title><![CDATA[Spring编程式和声明式事务实例讲解]]></title><link>https://blog.youkuaiyun.com/mawei982133/article/details/87394178</link><guid>https://blog.youkuaiyun.com/mawei982133/article/details/87394178</guid><author>mawei982133</author><pubDate>Fri, 15 Feb 2019 22:45:25 +0800</pubDate><description><![CDATA[Spring事务管理
Spring支持两种方式的事务管理：

编程式事务管理： 通过Transaction Template手动管理事务，实际应用中很少使用，
使用XML配置声明式事务： 推荐使用（代码侵入性最小），实际是通过AOP实现

实现声明式事务的四种方式：

基于 TransactionInterceptor 的声明式事务: Spring
声明式事务的基础，通常也不建议使用这种方式，但是...]]></description><category></category></item><item><title><![CDATA[MyBatis如何防止SQL注入]]></title><link>https://blog.youkuaiyun.com/mawei982133/article/details/87388533</link><guid>https://blog.youkuaiyun.com/mawei982133/article/details/87388533</guid><author>mawei982133</author><pubDate>Fri, 15 Feb 2019 21:17:09 +0800</pubDate><description><![CDATA[MyBatis如何防止SQL注入
 SQL注入是一种代码注入技术，用于攻击数据驱动的应用，恶意的SQL语句被插入到执行的实体字段中（例如，为了转储数据库内容给攻击者）。[摘自] SQL injection - Wikipedia

SQL注入，大家都不陌生，是一种常见的攻击方式。攻击者在界面的表单信息或URL上输入一些奇怪的SQL片段（例如“or ‘1’=’1’”这样的语句），有可能入侵参数检验不...]]></description><category></category></item><item><title><![CDATA[Java中的锁分类]]></title><link>https://blog.youkuaiyun.com/mawei982133/article/details/87339226</link><guid>https://blog.youkuaiyun.com/mawei982133/article/details/87339226</guid><author>mawei982133</author><pubDate>Fri, 15 Feb 2019 08:57:59 +0800</pubDate><description><![CDATA[Java中的锁分类
在读很多并发文章中，会提及各种各样锁如公平锁，乐观锁等等，这篇文章介绍各种锁的分类。介绍的内容如下：
公平锁/非公平锁
可重入锁
独享锁/共享锁
互斥锁/读写锁
乐观锁/悲观锁
分段锁
偏向锁/轻量级锁/重量级锁
自旋锁
上面是很多锁的名词，这些分类并不是全是指锁的状态，有的指锁的特性，有的指锁的设计，下面总结的内容是对每个锁的名词进行一定的解释。
公平锁/非公平锁
公平锁是指...]]></description><category></category></item></channel></rss>