<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[YAO_IT的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/YAO_IT</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; YAO_IT]]></copyright><item><title><![CDATA[java POI方式解析Excel 代码]]></title><link>https://blog.youkuaiyun.com/YAO_IT/article/details/106467406</link><guid>https://blog.youkuaiyun.com/YAO_IT/article/details/106467406</guid><author>YAO_IT</author><pubDate>Mon, 01 Jun 2020 10:27:01 +0800</pubDate><description><![CDATA[private Workbook getWorkBook(String filePath) {
        //xls-2003, xlsx-2007
        FileInputStream is = null;
        try {
            is = new FileInputStream(filePath);
            if (filePath.toLowerCase().endsWith("xlsx")) {
                return]]></description><category></category></item><item><title><![CDATA[【一文看懂】ThreadLocal使用和内存泄露的机制原理]]></title><link>https://blog.youkuaiyun.com/YAO_IT/article/details/104812378</link><guid>https://blog.youkuaiyun.com/YAO_IT/article/details/104812378</guid><author>YAO_IT</author><pubDate>Thu, 12 Mar 2020 09:53:43 +0800</pubDate><description><![CDATA[详情请看公众号：《秃头A计划》
1.ThreadLocal的内存泄露真的存在？(第一话)
2ThreadLocal的内存泄露真的存在？(第二话)

]]></description><category></category></item><item><title><![CDATA[Mybats原理深度解析]]></title><link>https://blog.youkuaiyun.com/YAO_IT/article/details/90262529</link><guid>https://blog.youkuaiyun.com/YAO_IT/article/details/90262529</guid><author>YAO_IT</author><pubDate>Thu, 16 May 2019 14:10:17 +0800</pubDate><description><![CDATA[https://mp.weixin.qq.com/s?__biz=MzU5NzgwNDIyNQ==&amp;mid=2247483814&amp;idx=1&amp;sn=1b61a1c618d17019480e4d4e1133f062&amp;chksm=fe4c9408c93b1d1e98714da37de6868c9d53ef179e8bf3d243e242efd145d8b1b226014...]]></description><category></category></item><item><title><![CDATA[zookeeper从实战到原理系列2-zkClient使用]]></title><link>https://blog.youkuaiyun.com/YAO_IT/article/details/90171969</link><guid>https://blog.youkuaiyun.com/YAO_IT/article/details/90171969</guid><author>YAO_IT</author><pubDate>Mon, 13 May 2019 13:57:45 +0800</pubDate><description><![CDATA[zookeeper从实战到原理系列1-什么是zookeeper
zookeeper从实战到原理系列2-zkClient使用

]]></description><category></category></item><item><title><![CDATA[zookeeper从实战到原理系列1-什么是zookeeper]]></title><link>https://blog.youkuaiyun.com/YAO_IT/article/details/90171948</link><guid>https://blog.youkuaiyun.com/YAO_IT/article/details/90171948</guid><author>YAO_IT</author><pubDate>Mon, 13 May 2019 13:56:41 +0800</pubDate><description><![CDATA[请看个人公众号链接：
https://mp.weixin.qq.com/s?__biz=MzU5NzgwNDIyNQ==&amp;mid=2247483796&amp;idx=1&amp;sn=a59bb17dfce72f4d581a8abdac61b242&amp;chksm=fe4c943ac93b1d2cf6b7a10fed525bdeee8681b686d4329d8e7e16194ade...]]></description><category></category></item><item><title><![CDATA[Nginx+lua+openresty最佳原创 | 第八篇：openresty企业级应用2]]></title><link>https://blog.youkuaiyun.com/YAO_IT/article/details/87723647</link><guid>https://blog.youkuaiyun.com/YAO_IT/article/details/87723647</guid><author>YAO_IT</author><pubDate>Tue, 19 Feb 2019 18:11:54 +0800</pubDate><description><![CDATA[https://mp.weixin.qq.com/s?__biz=MzU5NzgwNDIyNQ==&amp;amp;tempkey=OTk2X0Z3VjdhNmdkQzhOZ2ttZ2FfbWtQTnNNRE8tZDdvRk5zZHZpaktmSXAyR1pNRmx5QXVUTUJXMHlkWWtpbGtKMS1KNWo3NjBmVHMxbDE4VDhDOE81MUF3YklaWDlueTZmUUNrOH...]]></description><category></category></item><item><title><![CDATA[Nginx+lua+openresty系列 | 第七篇：openresty企业级应用1]]></title><link>https://blog.youkuaiyun.com/YAO_IT/article/details/87723577</link><guid>https://blog.youkuaiyun.com/YAO_IT/article/details/87723577</guid><author>YAO_IT</author><pubDate>Tue, 19 Feb 2019 18:10:50 +0800</pubDate><description><![CDATA[https://mp.weixin.qq.com/s?__biz=MzU5NzgwNDIyNQ==&amp;amp;mid=2247483779&amp;amp;idx=1&amp;amp;sn=7a06b401f3c730027662815623a957a7&amp;amp;chksm=fe4c942dc93b1d3b2c8372e3273df9609a19eb3a0b9639c53702bf49d40bd5d6f17709d...]]></description><category></category></item><item><title><![CDATA[Nginx+lua+openresty最佳原创 | 第六篇：lua入门]]></title><link>https://blog.youkuaiyun.com/YAO_IT/article/details/86649413</link><guid>https://blog.youkuaiyun.com/YAO_IT/article/details/86649413</guid><author>YAO_IT</author><pubDate>Fri, 25 Jan 2019 17:22:20 +0800</pubDate><description><![CDATA[本文由个人公众号发布，也就不再博客里重新排版了，详情内容请看链接！
https://mp.weixin.qq.com/s?__biz=MzU5NzgwNDIyNQ==&amp;amp;amp;mid=2247483763&amp;amp;amp;idx=1&amp;amp;amp;sn=5aad2f0d3f73d7e3e474ccf568e0f5a9&amp;amp;amp;chksm=fe4c94ddc93b1dcbf829ccc03af6606d2fb8f...]]></description><category></category></item><item><title><![CDATA[Nginx+lua+openresty最佳原创 | 第五篇：nginx缓存]]></title><link>https://blog.youkuaiyun.com/YAO_IT/article/details/86597499</link><guid>https://blog.youkuaiyun.com/YAO_IT/article/details/86597499</guid><author>YAO_IT</author><pubDate>Tue, 22 Jan 2019 16:52:50 +0800</pubDate><description><![CDATA[本文由个人公众号发布，也就不再博客里重新排版了，详情内容请看链接！
https://mp.weixin.qq.com/s?__biz=MzU5NzgwNDIyNQ==&amp;amp;amp;amp;mid=2247483758&amp;amp;amp;amp;idx=1&amp;amp;amp;amp;sn=fcd46827f22a6276e505a6e6dc5ace32&amp;amp;amp;amp;chksm=fe4c94c0c93b1dd64ea0471121febe9cabab4...]]></description><category></category></item><item><title><![CDATA[Nginx+lua+openresty最佳原创 | 第四篇：nginx负载均衡]]></title><link>https://blog.youkuaiyun.com/YAO_IT/article/details/86503004</link><guid>https://blog.youkuaiyun.com/YAO_IT/article/details/86503004</guid><author>YAO_IT</author><pubDate>Wed, 16 Jan 2019 10:14:07 +0800</pubDate><description><![CDATA[本文由个人公众号发布，也就不再博客里重新排版了，详情内容请看链接！
https://mp.weixin.qq.com/s?__biz=MzU5NzgwNDIyNQ==&amp;amp;amp;amp;amp;mid=2247483752&amp;amp;amp;amp;amp;idx=1&amp;amp;amp;amp;amp;sn=8caf8b2585bbda460aea1ba6c752a4d6&amp;amp;amp;amp;amp;chksm=fe4c94c6c93b1dd083242d7b1fa72]]></description><category></category></item><item><title><![CDATA[Nginx+lua+openresty最佳原创 | 第三篇：nginx反向代理]]></title><link>https://blog.youkuaiyun.com/YAO_IT/article/details/86301276</link><guid>https://blog.youkuaiyun.com/YAO_IT/article/details/86301276</guid><author>YAO_IT</author><pubDate>Fri, 11 Jan 2019 14:57:47 +0800</pubDate><description><![CDATA[https://mp.weixin.qq.com/s?__biz=MzU5NzgwNDIyNQ==&amp;amp;amp;amp;amp;amp;amp;amp;mid=2247483747&amp;amp;amp;amp;amp;amp;amp;amp;idx=1&amp;amp;amp;amp;amp;amp;amp;amp;sn=8583dba02d32d50d8f8b7c2ad126d6e3&amp;amp;amp;amp;amp;amp;amp;amp;chksm=fe4c94cdc93b1dd]]></description><category></category></item><item><title><![CDATA[Nginx+lua+openresty最佳原创 | 第二篇：nginx虚拟主机]]></title><link>https://blog.youkuaiyun.com/YAO_IT/article/details/86301184</link><guid>https://blog.youkuaiyun.com/YAO_IT/article/details/86301184</guid><author>YAO_IT</author><pubDate>Fri, 11 Jan 2019 14:55:44 +0800</pubDate><description><![CDATA[https://mp.weixin.qq.com/s?__biz=MzU5NzgwNDIyNQ==&amp;amp;amp;amp;amp;amp;amp;mid=2247483728&amp;amp;amp;amp;amp;amp;amp;idx=1&amp;amp;amp;amp;amp;amp;amp;sn=15cf90fa8fc430f8c5074144d46db9c3&amp;amp;amp;amp;amp;amp;amp;chksm=fe4c94fec93b1de8de8c3ffcb012441]]></description><category></category></item><item><title><![CDATA[Nginx+lua+openresty最佳原创 | 第一篇：openresty介绍]]></title><link>https://blog.youkuaiyun.com/YAO_IT/article/details/85318930</link><guid>https://blog.youkuaiyun.com/YAO_IT/article/details/85318930</guid><author>YAO_IT</author><pubDate>Fri, 28 Dec 2018 11:08:41 +0800</pubDate><description><![CDATA[OpenResty安装
初衷：我们在学习一种陌生的技术时，会遇到各种坑和不解，最坑的倒不是这个，而应该是学习过之后长时间不用，会忘。。。尤其是细节的东西，现在需要学习的东西太多了，学了就忘，那还有啥用。俗话说的好啊，好记性不如烂笔头，把当时研究该技术的整个过程记录下来，未尝不是一件好事，不仅便于以后熟悉查看，而且可以分享给热爱技术的朋友们，供大家参考。
笔者就用自己的亲身实践，记录下来研究一种技术...]]></description><category></category></item><item><title><![CDATA[Java多线程 基础篇]]></title><link>https://blog.youkuaiyun.com/YAO_IT/article/details/79664265</link><guid>https://blog.youkuaiyun.com/YAO_IT/article/details/79664265</guid><author>YAO_IT</author><pubDate>Fri, 28 Dec 2018 11:08:03 +0800</pubDate><description><![CDATA[第一章 线程简介

多线程问题：

安全性问题
	由于多线程的交替执行，造成结果不对，称之为竞态条件，多个线程并发执行，可能会修改或访问其他线程正在使用的变量，即共享变量。
	
	活跃性问题
	无限循环，造成后面代码无法执行
	
	性能问题
	线程切换会有上下文切换操作，开销极大：保存和恢复上下文，丢失局部性。
	
多线程优势：

发挥多处理器的能力
	容易建模
	异步任务的处理更简单


第二...]]></description><category></category></item><item><title><![CDATA[mysql 进阶学习（一）]]></title><link>https://blog.youkuaiyun.com/YAO_IT/article/details/81586591</link><guid>https://blog.youkuaiyun.com/YAO_IT/article/details/81586591</guid><author>YAO_IT</author><pubDate>Sat, 11 Aug 2018 15:29:05 +0800</pubDate><description><![CDATA[MySQL最重要的特性是：存储引擎架构，该架构将查询处理和其他系统任务和数据的存储、提取 相分离 。所以根据业务特点选择合适的数据存储方式（即选择存储引擎的类型）



1 MySQL架构分为三层



1.1 连接层


该层用于处理客户端的连接请求和客户端的权限认证。
每个客户端都会在MySQL中拥有一个线程，客户端的数据操作将在此线程中执行处理。
MySQL负责缓存线程，不需要客户都安操心
...]]></description><category></category></item><item><title><![CDATA[spring 整合Hessian Hessian服务暴露和服务调用 详细教程]]></title><link>https://blog.youkuaiyun.com/YAO_IT/article/details/81503437</link><guid>https://blog.youkuaiyun.com/YAO_IT/article/details/81503437</guid><author>YAO_IT</author><pubDate>Wed, 08 Aug 2018 10:43:04 +0800</pubDate><description><![CDATA[源码地址

源码地址

1.Hessian使用的介绍

Hessian是一个轻量级的RPC框架，基于HTTP协议





1.1 服务端配置

三部曲


通过springMVC的DispatherServlet控制Hessian服务接口的URL访问路径 即web.xml配置
新建Hessian服务  例如：DemoService 和实现类 DemoServiceImpl
配置Hessian服务...]]></description><category></category></item><item><title><![CDATA[linux下安装rabbitmq]]></title><link>https://blog.youkuaiyun.com/YAO_IT/article/details/81199632</link><guid>https://blog.youkuaiyun.com/YAO_IT/article/details/81199632</guid><author>YAO_IT</author><pubDate>Wed, 25 Jul 2018 14:03:58 +0800</pubDate><description><![CDATA[折腾了两天终于算是访问到rabbitmq的界面了，这里有必要记录一下安装过程，供网友参考，自己以后用到也需要再过目一遍。

第一步：rabbitmq是erlang开发的，需要安装erlang依赖

1.下载erlang安装包，http://www.erlang.org/downloads，选择自己需要的版本，我这里下载的版本是最新的，点击source file 下载大概有200多M

1...]]></description><category></category></item><item><title><![CDATA[HashMap的原理和源码深度剖析 jdk1.7版本]]></title><link>https://blog.youkuaiyun.com/YAO_IT/article/details/80584053</link><guid>https://blog.youkuaiyun.com/YAO_IT/article/details/80584053</guid><author>YAO_IT</author><pubDate>Wed, 06 Jun 2018 17:53:21 +0800</pubDate><description><![CDATA[想彻底了解HashMap，就从源码看起吧！1.源码解析1.1 hashMap的类注释从Idea或者Eclipse编译器new 一个HashMap，按住ctrl键将鼠标放在HashMap上，点击进去，就能看到源码了，如果是Eclipse，需要导入源码文件。我们先从类注释看起，这几段话十分重要。翻译如下：    1.HashMap是基于哈希表和Map接口的实现，该实现提供了所有关于Map的操作，并且允...]]></description><category></category></item><item><title><![CDATA[关于mysql大批量插入数据   tomcat大批量接收数据]]></title><link>https://blog.youkuaiyun.com/YAO_IT/article/details/80418980</link><guid>https://blog.youkuaiyun.com/YAO_IT/article/details/80418980</guid><author>YAO_IT</author><pubDate>Wed, 23 May 2018 14:21:48 +0800</pubDate><description><![CDATA[工作中有个需求，客户要求Excel导入数据最多5000行，每行数据大概有十七八列，再加上数据有关的Id要存储起来，这个类也就有近30个字段，导入的数据是放在从表里，还要先保存主表中的几十个字段，然后保存从表5000条数据也就是说，要保存这些数据，如果要一条一条插入，那就要遍历访问5000次数据库，这样的效率肯定不行的，每次数据库的连接和关闭 是耗时的，所以尽量减少与数据库之间的交互，那么就批量插入...]]></description><category></category></item><item><title><![CDATA[mybatis foreach遍历时item定义的值(item=“a”) 作用范围不仅是在内部  外部其他标签使用#{a}获取时会受到严重影响]]></title><link>https://blog.youkuaiyun.com/YAO_IT/article/details/80235397</link><guid>https://blog.youkuaiyun.com/YAO_IT/article/details/80235397</guid><author>YAO_IT</author><pubDate>Tue, 08 May 2018 10:30:04 +0800</pubDate><description><![CDATA[笔者在工作遇到一个问题 先上图理解一下：一句话解释：foreach 中的item定义的值 companyId,作用范围不仅仅是在foreach标签内部，外部也会收到影响。像笔者这种情况，在if标签中的companyId，获取不到传入的参数， 实际上获取的是遍历的集合demandCompanyIds的最后一个值。至于为什么，请参考这篇文章点击打开链接如图所示，在一个搜索查询的业务中，用户属于多个公司...]]></description><category></category></item></channel></rss>