<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[To be a better man的博客]]></title><description><![CDATA[不驰于空想，不鹜于虚声，一步一个脚印，踏踏实实奋斗出幸福。]]></description><link>https://blog.youkuaiyun.com/May_3</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; May_3]]></copyright><item><title><![CDATA[阻塞队列实现生产者-消费者模式]]></title><link>https://blog.youkuaiyun.com/May_3/article/details/82591779</link><guid>https://blog.youkuaiyun.com/May_3/article/details/82591779</guid><author>May_3</author><pubDate>Mon, 10 Sep 2018 16:31:22 +0800</pubDate><description><![CDATA[代码实现如下：

public class Test {
    private int queueSize = 10;
    private ArrayBlockingQueue&amp;amp;amp;amp;lt;Integer&amp;amp;amp;amp;gt; queue = new ArrayBlockingQueue&amp;amp;amp;amp;lt;Integer&amp;amp;amp;amp;gt;(queueSize);

    public static void mai]]></description><category></category></item><item><title><![CDATA[MySql索引+最左前缀原则]]></title><link>https://blog.youkuaiyun.com/May_3/article/details/82526533</link><guid>https://blog.youkuaiyun.com/May_3/article/details/82526533</guid><author>May_3</author><pubDate>Sat, 08 Sep 2018 09:45:14 +0800</pubDate><description><![CDATA[在学习mysql索引的时候，找到两篇写的比较好的博客，记录到这里。 
https://blog.youkuaiyun.com/SkySuperWL/article/details/52583579 
https://www.jb51.net/article/133625.htm]]></description><category></category></item><item><title><![CDATA[mysql关于内连接和外连接的理解]]></title><link>https://blog.youkuaiyun.com/May_3/article/details/82286572</link><guid>https://blog.youkuaiyun.com/May_3/article/details/82286572</guid><author>May_3</author><pubDate>Sat, 01 Sep 2018 13:46:27 +0800</pubDate><description><![CDATA[inner join是我们最常见的连接方式了，只连接匹配的行

外连接也是一种连接方式，不过和inner的区别主要在于对于不匹配行的处理上，不匹配的行也会选择上，不过左右和full在选择上有差异

左外连接  包含左边表的全部行（不管右边的表中是否存在与它们匹配的行），以及右边表中全部匹配的行 
右外连接  包含右边表的全部行（不管左边的表中是否存在与它们匹配的行），以及左边表中全部匹配的行 
全...]]></description><category></category></item><item><title><![CDATA[HashMap为什么线程不安全？]]></title><link>https://blog.youkuaiyun.com/May_3/article/details/82155752</link><guid>https://blog.youkuaiyun.com/May_3/article/details/82155752</guid><author>May_3</author><pubDate>Sat, 01 Sep 2018 12:08:23 +0800</pubDate><description><![CDATA[

put操作不安全
resize操作不安全





put操作不安全

首先，我们都知道，HashMap的底层，是由一个Entry数组维护，数组中的每一个元素都存放着一个链表。当多线程情况下，我们进行put操作，例如:

线程A：  map.put(&amp;amp;quot;1&amp;amp;quot;,A);
线程B：  map.put(&amp;amp;quot;1&amp;amp;quot;,B);

我们可以看到线程A、B分别进行了Put操作，经过hash计算之后，他们的key相同，...]]></description><category></category></item><item><title><![CDATA[Spring+TaskExecutor实现线程池管理]]></title><link>https://blog.youkuaiyun.com/May_3/article/details/82192232</link><guid>https://blog.youkuaiyun.com/May_3/article/details/82192232</guid><author>May_3</author><pubDate>Wed, 29 Aug 2018 20:37:19 +0800</pubDate><description><![CDATA[目录



目录
写在前面
Spring配置信息
线程池参数
代码实现
博客参考









写在前面

  线程池可以很好的帮助我们管理线程，它会预先创建若干数量的线程，并且不能由开发者直接对线程的创建进行控制，这样，消除了频繁创建和消亡线程的系统资源开销。 
  那么在Spring中，已经帮我们集成了线程池的功能，我们在项目中使用TaskExecutor类就可以实现线程池的管理。



...]]></description><category></category></item><item><title><![CDATA[Java双重校验锁实现单例模式]]></title><link>https://blog.youkuaiyun.com/May_3/article/details/82180961</link><guid>https://blog.youkuaiyun.com/May_3/article/details/82180961</guid><author>May_3</author><pubDate>Wed, 29 Aug 2018 11:45:04 +0800</pubDate><description><![CDATA[目录



目录
写在前面
代码实现
问题分析







写在前面

  之前在博客中过一次Java设计模式-单例模式的2种实现方式(懒汉式+饿汉式)。 
  博文链接：Java设计模式—（1）单例模式 
  这2种实现，在单线程模式下，也不会出现线程安全问题，但是，如果在多线程环境下，就可能出现线程安全问题，所以我们要对之前的代码进行改进—-双重校验锁。



代码实现

  话不多说，咱们...]]></description><category></category></item><item><title><![CDATA[Linux常用命令总结]]></title><link>https://blog.youkuaiyun.com/May_3/article/details/82152544</link><guid>https://blog.youkuaiyun.com/May_3/article/details/82152544</guid><author>May_3</author><pubDate>Tue, 28 Aug 2018 18:30:34 +0800</pubDate><description><![CDATA[目录



目录
进入某一个文件夹
创建某一个文件夹
解压某一个.tar.gz文件
vim模式下保存并退出
更改文件夹，文件权限
打开配置文件
复制 文件到某一个文件夹
创建新的文件
不断更新中。。。。。







进入某一个文件夹

cd XXX



创建某一个文件夹

mkdir XXX



解压某一个.tar.gz文件

tar zxvf  XXX



vim模式下保存并退出

:...]]></description><category></category></item><item><title><![CDATA[Java多线程面试问题总结]]></title><link>https://blog.youkuaiyun.com/May_3/article/details/82145781</link><guid>https://blog.youkuaiyun.com/May_3/article/details/82145781</guid><author>May_3</author><pubDate>Tue, 28 Aug 2018 18:17:00 +0800</pubDate><description><![CDATA[
  这篇博文总结一些面试之中Java多线程的一些关键问题。每一个问题，会简要介绍，一些问题，下面会附上详细的介绍博文链接，方便小伙伴们更好的学习和交流。谢谢大家。




目录



目录
CAS
AQS
自旋
volatile关键字
Volatile关键字









CAS

Compare and Swap ,也就是比较和替换。假设有三个操作数：内存值V、旧的预期值A、要修改的值B。...]]></description><category></category></item><item><title><![CDATA[进程间的4种通信方式]]></title><link>https://blog.youkuaiyun.com/May_3/article/details/80005638</link><guid>https://blog.youkuaiyun.com/May_3/article/details/80005638</guid><author>May_3</author><pubDate>Thu, 19 Apr 2018 18:23:00 +0800</pubDate><description><![CDATA[写在前面：    这篇博客主要将会介绍进程间的4种主要通信方式。在介绍进程间如何通信之前，我们先来看看进程和线程的概念。了解进程和线程的区别。参考博客：https://blog.youkuaiyun.com/whl_program/article/details/70217354------------------------------------------------------------------...]]></description><category></category></item><item><title><![CDATA[剑指offer--（21）链表中环的入口结点--Java描述]]></title><link>https://blog.youkuaiyun.com/May_3/article/details/80001391</link><guid>https://blog.youkuaiyun.com/May_3/article/details/80001391</guid><author>May_3</author><pubDate>Thu, 19 Apr 2018 13:12:55 +0800</pubDate><description><![CDATA[写在前面：    剑指offer中，面试中，都很经典的一个问题，今天进行总结，其实从这个题目中，可以解析，延伸出多个问题，如：链表中是否存在有环，如果有环，求链表中环的入口结点，环的长度是多少等。    题目链接：https://www.nowcoder.com/questionTerminal/253d2c59ec3e4bc68da16833f79a38e4    （1）链表中是否存在有环   ...]]></description><category></category></item><item><title><![CDATA[Java 是编译型语言还是解释型语言？]]></title><link>https://blog.youkuaiyun.com/May_3/article/details/79994781</link><guid>https://blog.youkuaiyun.com/May_3/article/details/79994781</guid><author>May_3</author><pubDate>Wed, 18 Apr 2018 18:47:04 +0800</pubDate><description><![CDATA[写在前面：    今天在牛客的面经上，看到大家讨论Java究竟是编译形语言还是解释形语言，自己看了些博客和知乎，在这篇博客中，将大家的意见进行总结，希望对你有所帮助。    知乎链接：https://www.zhihu.com/question/19608553    首先来看什么是编译形语言，什么又是解释形语言？    编译型语言：把做好的源程序全部编译成二进制代码的可运行程序。然后，就可以直接...]]></description><category></category></item><item><title><![CDATA[Java的四种访问权限]]></title><link>https://blog.youkuaiyun.com/May_3/article/details/79964024</link><guid>https://blog.youkuaiyun.com/May_3/article/details/79964024</guid><author>May_3</author><pubDate>Mon, 16 Apr 2018 18:04:47 +0800</pubDate><description><![CDATA[写在前面：    在一些笔试题中，经常会出现判断Java的四种访问权限，博主平时总能区分的比较好，一考试就忘。。。。。所以用一个表格来总结一下包的访问权限。Java的四种访问权限    权限类内同包不同包子类不同包非子类Public✔️✔️✔️✔️默认（Default）✔️✔️✔️ Protected✔️✔️  Private✔️   ...]]></description><category></category></item><item><title><![CDATA[传输控制协议TCP概述]]></title><link>https://blog.youkuaiyun.com/May_3/article/details/79933400</link><guid>https://blog.youkuaiyun.com/May_3/article/details/79933400</guid><author>May_3</author><pubDate>Mon, 16 Apr 2018 17:48:17 +0800</pubDate><description><![CDATA[写在前面：    TCP和UDP协议是根据传输层中不同的程序需求的两种传输协议。即面向连接的TCP和面向无连接的UDP。在这篇博客中，将会总结TCP协议。    文章中部分内容参考《计算机网络》第五版--谢希仁。TCP协议的主要特点：    （1）TCP是面向连接的传输层协议。也就是应用程序在使用TCP协议之前，必须要建立TCP连接。在传输完毕后，要释放TCP连接。    （2）每一条TCP连接只...]]></description><category></category></item><item><title><![CDATA[当你输入一个网址会发生什么？]]></title><link>https://blog.youkuaiyun.com/May_3/article/details/79951991</link><guid>https://blog.youkuaiyun.com/May_3/article/details/79951991</guid><author>May_3</author><pubDate>Mon, 16 Apr 2018 14:58:49 +0800</pubDate><description><![CDATA[写在前面：    这是一道经常会被面试官问到的面试题，这篇博客，我们以www.baidu.com为例，总结当我们输入www.baidu.com，按下Enter之后，到显示Html网页，这个过程会发生什么？英文原文连接：http://igoro.com/archive/what-really-happens-when-you-navigate-to-a-url/（1）查找域名对应的IP地址    浏...]]></description><category></category></item><item><title><![CDATA[Java中的Cglib代理]]></title><link>https://blog.youkuaiyun.com/May_3/article/details/79668996</link><guid>https://blog.youkuaiyun.com/May_3/article/details/79668996</guid><author>May_3</author><pubDate>Fri, 23 Mar 2018 19:04:15 +0800</pubDate><description><![CDATA[写在前面：    首先我们知道动态代理模式是实现AOP编程的核心，而动态代理这种设计模式又分为JDK代理和Cglib代理，在上一篇博客中，已经总结了JDK代理的实现过程（https://blog.youkuaiyun.com/may_3/article/details/79595432）。这篇博客，我们将总结Cglib代理，以及，这两种代理方式的区别，特点。    Cglib代理采用了asm框架的字节码技术。...]]></description><category></category></item><item><title><![CDATA[笔试题-（2）小朋友分糖果]]></title><link>https://blog.youkuaiyun.com/May_3/article/details/79656155</link><guid>https://blog.youkuaiyun.com/May_3/article/details/79656155</guid><author>May_3</author><pubDate>Thu, 22 Mar 2018 16:44:40 +0800</pubDate><description><![CDATA[写在前面：    题目比较简单，就是高中时候的排列组合挡板法，过了这么多年，忘得一干二净啊。题目：把60个糖果分给5个小朋友，每个小朋友至少分到10个糖果，请问有几种分法？    首先每个小朋友分10个，余下10个糖果。5个小朋友，每人可以有，也可以没有，所以，就在10个糖果内插入4个挡板，完成糖果分配=C（4）（14）。...]]></description><category></category></item><item><title><![CDATA[笔试题-（1）1024的阶层结果末尾有多少个0]]></title><link>https://blog.youkuaiyun.com/May_3/article/details/79655494</link><guid>https://blog.youkuaiyun.com/May_3/article/details/79655494</guid><author>May_3</author><pubDate>Thu, 22 Mar 2018 16:15:05 +0800</pubDate><description><![CDATA[    由于末尾0的个数取决于乘法中因子2和因子5的个数。显然，乘法中因子2的个数&amp;gt;因子5的个数，所以我们只需要考虑因子5的个数。    是5的倍数有1024/5=204个。    是25的倍数有1024/25=40个。       是125的倍数有1024/125=8个。    是625的倍数有1024/625=1个。      所以1024！总共有204+40+8+1=253个因子5。 ...]]></description><category></category></item><item><title><![CDATA[深入理解Java虚拟机---（6）触发Full GC的条件]]></title><link>https://blog.youkuaiyun.com/May_3/article/details/79653109</link><guid>https://blog.youkuaiyun.com/May_3/article/details/79653109</guid><author>May_3</author><pubDate>Thu, 22 Mar 2018 14:39:33 +0800</pubDate><description><![CDATA[写在前面：    前面两篇博客中介绍了GC的收集算法，和7种收集器的特点，而在这篇博客，我们会讨论什么情况下回触发一次Full GC。分代收集补充：    在了解什么情况触发一次Full GC之前，我们先看一下JVM对象在内存区域中的年代划分。首先，我们知道GC收集器会根据回收对象的年龄，进行分代收集，如：Minor GC、Major GC。    Minor GC：    新生代GC，指发生在新...]]></description><category></category></item><item><title><![CDATA[深入理解Java虚拟机---（5）HotSpot算法实现+GC的收集器]]></title><link>https://blog.youkuaiyun.com/May_3/article/details/79518506</link><guid>https://blog.youkuaiyun.com/May_3/article/details/79518506</guid><author>May_3</author><pubDate>Mon, 19 Mar 2018 10:22:21 +0800</pubDate><description><![CDATA[写在前面：    在上一篇博客中，为大家总结了GC的相关回收算法，以及怎么判断对象是否已经&quot;死亡&quot;，在这篇博客中，将会以HotSpot虚拟机为例，讲解GC的收集器。HotSpot的算法实现：    （1）GC停顿    因为GC Roots的节点主要是全局性的引用(例如常量或类静态属性)，如果逐个检查引用，会消耗大量的时间。GC分析工作会让所有的线程停顿在某个时间点上。    但时间上，HotSp...]]></description><category></category></item><item><title><![CDATA[Java中的正则表达式]]></title><link>https://blog.youkuaiyun.com/May_3/article/details/79601501</link><guid>https://blog.youkuaiyun.com/May_3/article/details/79601501</guid><author>May_3</author><pubDate>Sun, 18 Mar 2018 18:33:21 +0800</pubDate><description><![CDATA[写在前面：    你可能不知道正则表达式的含义，但你在实际开发的过程中，一定或多或少的使用过和正则表达式类似的应用场景。举一个例子，我们需要查找出某个文件夹下所有以 .mp3为后缀的文件，我们可能就是使用*.mp3。*是通配符，会匹配任意字符，这样不管前面如何，后缀为.mp3为后缀的文件就被找出来。那么正则表达式又是什么呢？正则表达式（Regular Expression）：    即对字符串操作...]]></description><category></category></item></channel></rss>