<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[mm3930663的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/mm3930663</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; mm3930663]]></copyright><item><title><![CDATA[openssl 生成公私钥]]></title><link>https://blog.youkuaiyun.com/mm3930663/article/details/128339344</link><guid>https://blog.youkuaiyun.com/mm3930663/article/details/128339344</guid><author>mm3930663</author><pubDate>Fri, 16 Dec 2022 10:29:57 +0800</pubDate><description><![CDATA[openssl 生成RSA非对称公私钥]]></description><category></category></item><item><title><![CDATA[easyExcel导入数据通用]]></title><link>https://blog.youkuaiyun.com/mm3930663/article/details/120545422</link><guid>https://blog.youkuaiyun.com/mm3930663/article/details/120545422</guid><author>mm3930663</author><pubDate>Wed, 29 Sep 2021 11:41:04 +0800</pubDate><description><![CDATA[easyExcel版本 2.2.10 内嵌poi版本 3.17  通用Listener
1. listener:
public class ExcelListener&lt;T&gt; extends AnalysisEventListener&lt;T&gt; {

    private Map&lt;String, Object&gt; param;

    private static final Logger logger  = LoggerFactory.getLogger(ExcelList]]></description><category></category></item><item><title><![CDATA[js校验身份证号]]></title><link>https://blog.youkuaiyun.com/mm3930663/article/details/115066493</link><guid>https://blog.youkuaiyun.com/mm3930663/article/details/115066493</guid><author>mm3930663</author><pubDate>Mon, 22 Mar 2021 10:35:43 +0800</pubDate><description><![CDATA[function checkIdcard(personnumber) {
    personnumber = personnumber.toUpperCase();
    //身份证号码为15位或者18位，15位时全为数字，18位前17位为数字，最后一位是校验位，可能为数字或字符X。
    if (!(/(^\d{15}$)|(^\d{17}([0-9]|X)$)/.test(personnumber))) {
        return false;
    }
    //校验位按照ISO 70]]></description><category></category></item><item><title><![CDATA[MultipartFile接受文件大小达到上限]]></title><link>https://blog.youkuaiyun.com/mm3930663/article/details/114137946</link><guid>https://blog.youkuaiyun.com/mm3930663/article/details/114137946</guid><author>mm3930663</author><pubDate>Fri, 26 Feb 2021 16:18:27 +0800</pubDate><description><![CDATA[@Bean
public MultipartConfigElement multipartConfigElement(){
MultipartConfigFactory factory = new MultipartConfigFactory();
//  单个数据大小 1G
factory.setMaxFileSize(“1024MB”);
/// 总上传数据大小 1G
factory.setMaxRequestSize(“1024MB”);
return factory.createMultipartC]]></description><category></category></item><item><title><![CDATA[根据类属性生成Map，并做驼峰转换]]></title><link>https://blog.youkuaiyun.com/mm3930663/article/details/111300242</link><guid>https://blog.youkuaiyun.com/mm3930663/article/details/111300242</guid><author>mm3930663</author><pubDate>Wed, 16 Dec 2020 18:58:57 +0800</pubDate><description><![CDATA[业务中遇到问题，前端request过来的map中除了需要的查询项还有各种杂项，使用mybatis-plus定位查询条件存在困难，做了一个map移植的工具类，并做驼峰转换。下面方法
getTransformFieldName(name)可以拿出来单独转换成带下划线的数据库字段命名。
	public static Map AllEqMap2Map(Class c,Map map){
        //查询时用map存数据用
        Map&lt;Object, Object&gt; returnMap]]></description><category></category></item><item><title><![CDATA[Mysql主从复制--流程篇]]></title><link>https://blog.youkuaiyun.com/mm3930663/article/details/110239572</link><guid>https://blog.youkuaiyun.com/mm3930663/article/details/110239572</guid><author>mm3930663</author><pubDate>Fri, 27 Nov 2020 18:37:16 +0800</pubDate><description><![CDATA[参考https://blog.youkuaiyun.com/hguisu/article/details/7325124
&nbsp;&nbsp; 这边是根据参考文章，忽略细节内容的一个mysql主从复制流程大致总结。
一、为什么要用主从复制？
&nbsp;&nbsp; ①减轻单库压力；生产上单库的吞吐量过大会产生各种各样因为性能不足而出现的问题，建立从库可以极大提升可用性和容错性，比如读写分离等操作。
&nbsp;&nbsp; ②进行备份；因服务器崩溃或操作失误产生主库数据错误的情况下，可以先以从库备份恢复，再根据日]]></description><category></category></item><item><title><![CDATA[ttf字体文件获取（windows内置常规208项字体）]]></title><link>https://blog.youkuaiyun.com/mm3930663/article/details/109803371</link><guid>https://blog.youkuaiyun.com/mm3930663/article/details/109803371</guid><author>mm3930663</author><pubDate>Thu, 19 Nov 2020 10:37:29 +0800</pubDate><description><![CDATA[平常开发难免遇到需要ttf字体格式的，比如web开发，自动化办公生成word等等。尝试从网上下载字体发现下载了一堆莫名其妙的文件，这边有一个方法，就是获取windows系统内置字体。
进入C:\Windows\Fonts目录，找到需要的字体直接复制。



idea中打开预览会出现一个拉丁文，还没搞清楚是什么原因,翻译是一部小诗，也没看太懂，手动狗头。


...]]></description><category></category></item><item><title><![CDATA[JAVA单例模式代码与总结]]></title><link>https://blog.youkuaiyun.com/mm3930663/article/details/109719752</link><guid>https://blog.youkuaiyun.com/mm3930663/article/details/109719752</guid><author>mm3930663</author><pubDate>Mon, 16 Nov 2020 14:21:40 +0800</pubDate><description><![CDATA[单例模式实际上核心思想就是生成系统唯一的该类实例。对这个类不可以进行new操作，系统无论如何操作，都是该单例模式对象的本身。常用场景，全局用户，枚举类等。下面是基本单例模式的两个方向，枚举类可做参考。
/**
 * @author 
 * @Description: 饿汉式单例模式：空间换时间
 * @date 2020/11/13 18:11
 */
public class ehan {
    private static ehan ehan = new ehan();

    private eh]]></description><category></category></item><item><title><![CDATA[Uncaught ReferenceError: xxxxx is not defined 在程序无错的情况下js报错]]></title><link>https://blog.youkuaiyun.com/mm3930663/article/details/109628333</link><guid>https://blog.youkuaiyun.com/mm3930663/article/details/109628333</guid><author>mm3930663</author><pubDate>Wed, 11 Nov 2020 18:38:43 +0800</pubDate><description><![CDATA[在程序无错的情况下浏览器页面报错Uncaught ReferenceError: xxxxx is not defined。
1.检查报错内容js是否引入
2.清除浏览器缓存，重新编译程序（用JAVA idea的话删除编译文件夹target）
大部分情况下原因是第二种，实测有效，原因实际上是项目中存在新建的js文件，浏览器之前跑过该程序，缓存了旧项目的静态文件，导致新加入的js文件没有加载进浏览器。
经查验，应该是本地tomcat服务器的缓存机制造成的，达成了某些条件在资源文件发生变化的时候仍然从缓存中抽取]]></description><category></category></item><item><title><![CDATA[parallelStream()线程安全吗？]]></title><link>https://blog.youkuaiyun.com/mm3930663/article/details/109534304</link><guid>https://blog.youkuaiyun.com/mm3930663/article/details/109534304</guid><author>mm3930663</author><pubDate>Fri, 06 Nov 2020 16:47:11 +0800</pubDate><description><![CDATA[我这边做了一个实例来验证JAVA8多线程操作parallelStream()线程安全问题
	List&lt;Integer&gt; integers = Lists.newArrayList();
    for (int i = 0; i &lt; 100; i++){
        //插入100个数据
        integers.add(i);
    }
    System.out.println(integers.parallelStream().count());
	//多管道遍历
 ]]></description><category></category></item><item><title><![CDATA[JAVA快速排序代码]]></title><link>https://blog.youkuaiyun.com/mm3930663/article/details/109514876</link><guid>https://blog.youkuaiyun.com/mm3930663/article/details/109514876</guid><author>mm3930663</author><pubDate>Thu, 05 Nov 2020 16:41:00 +0800</pubDate><description><![CDATA[忽略方法名就是一个简单的快排方法了，想深入研究的同学可以去找找快速排序算法优化方面，我之前做了几个优化，可能是因为随机数取值的原因反而测试速度变慢。所以快排是不稳定的排序算法。

public static List&lt;Integer&gt; kuaisupaixu(List&lt;Integer&gt; integers){
        if (integers.size() &gt; 1) {
            Integer chose1 = integers.get(0);
     ]]></description><category></category></item><item><title><![CDATA[ArrayList类解析以及部分常用方法分析]]></title><link>https://blog.youkuaiyun.com/mm3930663/article/details/109247339</link><guid>https://blog.youkuaiyun.com/mm3930663/article/details/109247339</guid><author>mm3930663</author><pubDate>Thu, 29 Oct 2020 15:06:51 +0800</pubDate><description><![CDATA[ArrayList类和LinkedList类依赖java.util.List接口；
java.util.List接口继承自java.util.Collection接口;
java.util.Collection继承自Iterable接口;
即ArrayList（数组表）和LinkedList（双向链表）可以使用List接口中的所有方法，List中的部分方法继承自Collection接口；
这边会具体介绍两个常用的集合实现类中的几个方法介绍以及应用场景。
int size();
返回集合大小，如果集合中实际存]]></description><category></category></item><item><title><![CDATA[String去除多余空格]]></title><link>https://blog.youkuaiyun.com/mm3930663/article/details/109223620</link><guid>https://blog.youkuaiyun.com/mm3930663/article/details/109223620</guid><author>mm3930663</author><pubDate>Thu, 22 Oct 2020 15:43:33 +0800</pubDate><description><![CDATA[//去除空格方法
String str = "   la la la    ";
//去首尾
String str1 = str.trim();
System.out.println(str1);

//首尾中全去
String str2 = str.replaceAll(" ", "");
System.out.println(str2);

//首尾中全去
String str3 = str.replaceAll(" +", "");
System.out.println(str3);

//带匹配符
]]></description><category></category></item><item><title><![CDATA[Java实现插入排序和希尔排序]]></title><link>https://blog.youkuaiyun.com/mm3930663/article/details/109102450</link><guid>https://blog.youkuaiyun.com/mm3930663/article/details/109102450</guid><author>mm3930663</author><pubDate>Thu, 15 Oct 2020 18:08:48 +0800</pubDate><description><![CDATA[1.10000个固定随机数排序，记录排序时间。
2.核心排序算法。
 @Test
    public void chaRuPaiXu(){
        //做数
        int Length1 = 100000;
        int[] ints = new int[Length1];
        Random random = new Random(20);
        int i1 = 0;
        for (int i = 0; i &lt; Length1 ; i+]]></description><category></category></item><item><title><![CDATA[Mybatis返回List的实现类分析]]></title><link>https://blog.youkuaiyun.com/mm3930663/article/details/109069090</link><guid>https://blog.youkuaiyun.com/mm3930663/article/details/109069090</guid><author>mm3930663</author><pubDate>Wed, 14 Oct 2020 11:37:49 +0800</pubDate><description><![CDATA[使用Mybatis做分页查询时遇到一个问题，需要分析List具体实现类。
下面是三张返回List的Mybatis源码和反射测试分析，最终得到是ArrayList的实现类。





]]></description><category></category></item><item><title><![CDATA[Redis数据库实现方面的使用策略与优缺点分析]]></title><link>https://blog.youkuaiyun.com/mm3930663/article/details/108823424</link><guid>https://blog.youkuaiyun.com/mm3930663/article/details/108823424</guid><author>mm3930663</author><pubDate>Sun, 27 Sep 2020 11:41:20 +0800</pubDate><description><![CDATA[一、Redis数据结构
dict：键值对的存储空间
expires：存储某个键的过期时间，值为long long类型的绝对过期时间。
二、过期键删除策略
1.定时删除
策略：Redis设置过期时间时，同时设置一个定时器，到时间删除键。
优点：可以即时删除键值，对内存比较友好。
缺点：存在大量的定时器，对CPU行能不友好
2.惰性删除
策略：对过期的键不去处理，在下一次使用键的时候判断是否过期，若过期则删除。
优点：对CPU性能友好，不需要不断去检索过期时间。
缺点：对内存不友好，存在大量过期键，并有可能键长]]></description><category></category></item><item><title><![CDATA[JavaScript防止按钮多次点击，设置定时器]]></title><link>https://blog.youkuaiyun.com/mm3930663/article/details/108104174</link><guid>https://blog.youkuaiyun.com/mm3930663/article/details/108104174</guid><author>mm3930663</author><pubDate>Wed, 19 Aug 2020 16:41:12 +0800</pubDate><description><![CDATA[var isClick = true;
$(function () {
    $("#saveBtn").click(function () {
        // ajax提交审核/防止多次点击
        if(isClick) {
            isClick = false;
            //事件提交
            function1();
            //定时器
            setTimeout(function() {
      ]]></description><category></category></item><item><title><![CDATA[SpringCloud 相关项目一览表]]></title><link>https://blog.youkuaiyun.com/mm3930663/article/details/107713002</link><guid>https://blog.youkuaiyun.com/mm3930663/article/details/107713002</guid><author>mm3930663</author><pubDate>Fri, 31 Jul 2020 15:39:44 +0800</pubDate><description><![CDATA[项目一览表简介1. Spring Cloud Config : 服务配置中心2. Spring Cloud Netflix : 封装了Netflix公司的微服务组件，包括Eureka、Hystrix、Zuul、Archaius等2.1 Eureka: 服务注册与发现组件2.2 Hystrix： 熔断器组件2.3 Zuul：智能路由网关组件2.4 Feign：声明式远程调度组件2.5 Ribbon：负载均衡组件2.6 Archaius：配置管理API的组件，一个基于Java的配置管理库，主要用于多配置的动态获]]></description><category></category></item><item><title><![CDATA[idea 彻底移除maven中央仓库 http://repo.maven.apache.org/maven2/]]></title><link>https://blog.youkuaiyun.com/mm3930663/article/details/105565750</link><guid>https://blog.youkuaiyun.com/mm3930663/article/details/105565750</guid><author>mm3930663</author><pubDate>Thu, 16 Apr 2020 20:03:12 +0800</pubDate><description><![CDATA[有时候我们已经在maven中搭建了阿里云私服，但是导入jar包项仍然会去中央仓库Downloading
此时我们只要进行配置
&lt;repositories&gt;
    &lt;repository&gt;
        &lt;id&gt;central&lt;/id&gt;
        &lt;url&gt;http://localhost:8081/nexus/content/r...]]></description><category></category></item><item><title><![CDATA[redis黑窗口基本命令操作]]></title><link>https://blog.youkuaiyun.com/mm3930663/article/details/105532437</link><guid>https://blog.youkuaiyun.com/mm3930663/article/details/105532437</guid><author>mm3930663</author><pubDate>Wed, 15 Apr 2020 13:41:11 +0800</pubDate><description><![CDATA[redis
是一种nosql数据库（不仅仅是sql），由于它是将数据使用键值对的方式存储到内存中，
大大加强了获取数据的速度，常用于缓存和处理高并发问题

数据结构
key：字符串
value：五种数据结构
	string（字符型）
	hash（哈希类型）
	list（列表类型）（可以重复）
	set（集合类型）（不允许重复）
	sourtedset（有序集合类型） 大致情况如下（不允许重复）

...]]></description><category></category></item></channel></rss>