<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[firstendhappy的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/firstendhappy</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; firstendhappy]]></copyright><item><title><![CDATA[sharding-jdbc中的max.connections.size.per.query]]></title><link>https://blog.youkuaiyun.com/firstendhappy/article/details/126802491</link><guid>https://blog.youkuaiyun.com/firstendhappy/article/details/126802491</guid><author>firstendhappy</author><pubDate>Mon, 12 Sep 2022 12:44:56 +0800</pubDate><description><![CDATA[分表项目启动慢的问题，sharding-jdbc中的max.connections.size.per.query]]></description><category></category></item><item><title><![CDATA[java线程池底层原理（ThreadPoolExecutor）]]></title><link>https://blog.youkuaiyun.com/firstendhappy/article/details/118496220</link><guid>https://blog.youkuaiyun.com/firstendhappy/article/details/118496220</guid><author>firstendhappy</author><pubDate>Sat, 21 Aug 2021 10:47:51 +0800</pubDate><description><![CDATA[通过分析ThreadPoolExecutor了解更多线程池底层实现原理。]]></description><category></category></item><item><title><![CDATA[Mybatis详解（配置详解、源码解读、一级缓存二级缓存原理）]]></title><link>https://blog.youkuaiyun.com/firstendhappy/article/details/114400254</link><guid>https://blog.youkuaiyun.com/firstendhappy/article/details/114400254</guid><author>firstendhappy</author><pubDate>Sat, 14 Aug 2021 10:18:20 +0800</pubDate><description><![CDATA[mybatis各个配置有什么意义？在代码中如何影响运行？一级缓存二级缓存具体怎么实现的？本文带大家从源码理解。
]]></description><category></category></item><item><title><![CDATA[java中jar包运行之-jar和-cp命令]]></title><link>https://blog.youkuaiyun.com/firstendhappy/article/details/119209167</link><guid>https://blog.youkuaiyun.com/firstendhappy/article/details/119209167</guid><author>firstendhappy</author><pubDate>Thu, 29 Jul 2021 22:43:17 +0800</pubDate><description><![CDATA[或多或少，我们都会见到用这两种命令启动java程序，最基本的用法如：

java[options] -jar xxx.jar[args]

java [options] -cp xxx.jar classname [args]

那这两种用法有什么区别呢？

我们先写一个简单的测试类（为了方便说明问题，不借助开发工具）：

1）在本机随便找个目录，创建com.test目录，并编写HelloTest.java文件：




package com.test;

public class HelloTest..]]></description><category></category></item><item><title><![CDATA[Java多线程之wait、notify、yield、sleep、join解读]]></title><link>https://blog.youkuaiyun.com/firstendhappy/article/details/118333295</link><guid>https://blog.youkuaiyun.com/firstendhappy/article/details/118333295</guid><author>firstendhappy</author><pubDate>Sun, 18 Jul 2021 18:03:12 +0800</pubDate><description><![CDATA[java线程常见方法概述]]></description><category></category></item><item><title><![CDATA[java项目线上tomcat日志行前esc乱码问题]]></title><link>https://blog.youkuaiyun.com/firstendhappy/article/details/117788695</link><guid>https://blog.youkuaiyun.com/firstendhappy/article/details/117788695</guid><author>firstendhappy</author><pubDate>Fri, 11 Jun 2021 09:27:54 +0800</pubDate><description><![CDATA[问题描述：

tomcat日志文件路径：/apps/logs/tomcat/catalina.out

用more或者tail命令打开文件时一切正常：



用less或vi命令打开文件时，发现行前有esc乱码，如：





考虑到最近项目变更，猜测是引入了新的jar包，里面依赖了高版本log相关jar，于是做了下依赖检测，发现果然多了一个高本版依赖，在pom里exclude掉，解决问题。



至于行前这个esc乱码到底是什么？没研究，欢迎懂的大神评论指导。
...]]></description><category></category></item><item><title><![CDATA[用MessageFormat格式化替换数字导致多了千位分隔符问题]]></title><link>https://blog.youkuaiyun.com/firstendhappy/article/details/117460662</link><guid>https://blog.youkuaiyun.com/firstendhappy/article/details/117460662</guid><author>firstendhappy</author><pubDate>Wed, 02 Jun 2021 10:12:58 +0800</pubDate><description><![CDATA[以前我格式化字符串时喜欢用String.format，如：


String str = String.format("hello:%s", 1001);
System.out.println(str);

输出结果即是我要的期望值：hello:1001

然而，我有一天想换个用法时，也就是MessageFormat.format()：


String str = MessageFormat.format("hello:{0}", 1001);
System.out.println(str);

结果得到]]></description><category></category></item><item><title><![CDATA[java.lang.IllegalArgumentException: Comparison method violates its general contract!]]></title><link>https://blog.youkuaiyun.com/firstendhappy/article/details/114631185</link><guid>https://blog.youkuaiyun.com/firstendhappy/article/details/114631185</guid><author>firstendhappy</author><pubDate>Fri, 02 Apr 2021 10:34:23 +0800</pubDate><description><![CDATA[java.lang.IllegalArgumentException: Comparison method violates its general contract!


]]></description><category></category></item><item><title><![CDATA[一次线上mongodb的upset操作]]></title><link>https://blog.youkuaiyun.com/firstendhappy/article/details/115214103</link><guid>https://blog.youkuaiyun.com/firstendhappy/article/details/115214103</guid><author>firstendhappy</author><pubDate>Thu, 01 Apr 2021 20:25:34 +0800</pubDate><description><![CDATA[mongodb分片集合上不正确的update操作导致的does not contain shard key for pattern问题]]></description><category></category></item><item><title><![CDATA[利用Fiddler对Android手机app进行https抓包]]></title><link>https://blog.youkuaiyun.com/firstendhappy/article/details/115012848</link><guid>https://blog.youkuaiyun.com/firstendhappy/article/details/115012848</guid><author>firstendhappy</author><pubDate>Fri, 19 Mar 2021 18:37:38 +0800</pubDate><description><![CDATA[基本流程：Fiddler配置、https抓包配置、代理配置、证书配置、信任证书]]></description><category></category></item><item><title><![CDATA[JAVA之ConcurrentHashMap和HashMap关于线程安全问题分析]]></title><link>https://blog.youkuaiyun.com/firstendhappy/article/details/114251912</link><guid>https://blog.youkuaiyun.com/firstendhappy/article/details/114251912</guid><author>firstendhappy</author><pubDate>Wed, 03 Mar 2021 20:09:28 +0800</pubDate><description><![CDATA[ConcurrentHashMap之所以是线程安全的，其内部使用了CAS乐观锁+synchronized锁机制，保证多线程下的操作安全。]]></description><category></category></item><item><title><![CDATA[Java-return-finally]]></title><link>https://blog.youkuaiyun.com/firstendhappy/article/details/113995088</link><guid>https://blog.youkuaiyun.com/firstendhappy/article/details/113995088</guid><author>firstendhappy</author><pubDate>Wed, 24 Feb 2021 17:15:38 +0800</pubDate><description><![CDATA[在try...finally...语句块范围内：

1、return并不意味着方法的结束，return执行后，仍然会执行finally语句块；

2、return时，只是把值暂存到栈中，当finally中也有return时，会用新的值覆盖栈中的值，方法彻底结束后，返回栈中的值，；]]></description><category></category></item><item><title><![CDATA[Linux日志文件查询统计实用命令]]></title><link>https://blog.youkuaiyun.com/firstendhappy/article/details/113984520</link><guid>https://blog.youkuaiyun.com/firstendhappy/article/details/113984520</guid><author>firstendhappy</author><pubDate>Tue, 23 Feb 2021 14:44:12 +0800</pubDate><description><![CDATA[利用du、grep、awk、sort等命令，查看日志文件大小情况、查询关键日志、统计日志中关键信息
]]></description><category></category></item><item><title><![CDATA[MongoCursorNotFoundException,关于mongodb使用过程报游标找不到的问题]]></title><link>https://blog.youkuaiyun.com/firstendhappy/article/details/106840081</link><guid>https://blog.youkuaiyun.com/firstendhappy/article/details/106840081</guid><author>firstendhappy</author><pubDate>Wed, 24 Jun 2020 10:15:04 +0800</pubDate><description><![CDATA[游标是什么？什么情况下游标会找不到？]]></description><category></category></item><item><title><![CDATA[JDK1.8常用容器类数据结构分析（List/Set/Map/Queue）]]></title><link>https://blog.youkuaiyun.com/firstendhappy/article/details/105761742</link><guid>https://blog.youkuaiyun.com/firstendhappy/article/details/105761742</guid><author>firstendhappy</author><pubDate>Sat, 02 May 2020 10:57:09 +0800</pubDate><description><![CDATA[JAVA容器类很多，但内部数据结构主要是数组或链表或红黑树，容器的操作算法都是基于这些数据结构完成的。]]></description><category></category></item><item><title><![CDATA[java之ThreadLocal原理及使用案例]]></title><link>https://blog.youkuaiyun.com/firstendhappy/article/details/103343963</link><guid>https://blog.youkuaiyun.com/firstendhappy/article/details/103343963</guid><author>firstendhappy</author><pubDate>Tue, 21 Apr 2020 10:30:50 +0800</pubDate><description><![CDATA[ThreadLocal是java.lang包下的类，用于保存线程级别的参数，在多并发编程中，为每一个线程创建一个单独的副本，实现彼此隔离。]]></description><category></category></item><item><title><![CDATA[REDIS高可用之持久化、主从复制、哨兵和集群]]></title><link>https://blog.youkuaiyun.com/firstendhappy/article/details/102480532</link><guid>https://blog.youkuaiyun.com/firstendhappy/article/details/102480532</guid><author>firstendhappy</author><pubDate>Sat, 18 Apr 2020 20:44:48 +0800</pubDate><description><![CDATA[Redis实现高可用的手段主要包括持久化、主从复制、哨兵和集群，本文就每一个特点展开进行详解。
]]></description><category></category></item><item><title><![CDATA[消息中间件之RabbitMq]]></title><link>https://blog.youkuaiyun.com/firstendhappy/article/details/103136256</link><guid>https://blog.youkuaiyun.com/firstendhappy/article/details/103136256</guid><author>firstendhappy</author><pubDate>Sat, 11 Apr 2020 11:10:40 +0800</pubDate><description><![CDATA[主要概念介绍、交换机详解]]></description><category></category></item><item><title><![CDATA[MySql聚簇索引和非聚簇索引详解]]></title><link>https://blog.youkuaiyun.com/firstendhappy/article/details/104626361</link><guid>https://blog.youkuaiyun.com/firstendhappy/article/details/104626361</guid><author>firstendhappy</author><pubDate>Sun, 15 Mar 2020 10:48:47 +0800</pubDate><description><![CDATA[聚簇索引、非聚簇索引]]></description><category></category></item><item><title><![CDATA[java之行，走过的路，踩过的坑]]></title><link>https://blog.youkuaiyun.com/firstendhappy/article/details/104693581</link><guid>https://blog.youkuaiyun.com/firstendhappy/article/details/104693581</guid><author>firstendhappy</author><pubDate>Sat, 07 Mar 2020 10:49:56 +0800</pubDate><description><![CDATA[1.测试案例单独写，不要在正常逻辑中改代码，很容易忘记改回；
2.判断有没有数据时，不要用count(*)，改为limit 1;
3.一切涉及资源交互、socket连接的代码，都要考虑是否需要手动close或release；
4.使用的表，一定要考虑好业务场景，提前加好索引，否则数据量达到临界值会出问题，另外要考虑单独清理表数据；
5.日常所有脚本和事项都要记录下来
6.系统打不开，除了应用本身需...]]></description><category></category></item></channel></rss>