<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[makeliwei1的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/makeliwei1</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; makeliwei1]]></copyright><item><title><![CDATA[JVM--内存分配]]></title><link>https://blog.youkuaiyun.com/makeliwei1/article/details/82564350</link><guid>https://blog.youkuaiyun.com/makeliwei1/article/details/82564350</guid><author>makeliwei1</author><pubDate>Mon, 10 Sep 2018 01:09:41 +0800</pubDate><description><![CDATA[对象首先分配在Eden区

对象在新生代Eden区中分配，当Eden区中没有足够的进行分配时，虚拟机将发生一次Minor GC(新生代垃圾收集动作)

大对象直接进入Survivor区

大对象直接回被分配到Survivor区，大对象主要是指需要大量内存空间的Java对象，可以使用-XX:PretenureSizeThreshold设置对象分配在Survivor区中的，如果一个对象需要的内存大小超...]]></description><category></category></item><item><title><![CDATA[Spring学习笔记-BeanFactory容器]]></title><link>https://blog.youkuaiyun.com/makeliwei1/article/details/82084645</link><guid>https://blog.youkuaiyun.com/makeliwei1/article/details/82084645</guid><author>makeliwei1</author><pubDate>Sun, 09 Sep 2018 23:22:36 +0800</pubDate><description><![CDATA[BeanFactory容器是Spring的一个重要的容器，后面所有的容器都是继承了这个容器；其中BeanFactory一个重要的实现类是DefaultListableBeanFactory。 
BeanFactory容器的初始化过程如下


设置一个抽象资源，用于定位我们Bean定义的资源处，这里我们采用ClasspathResource定位资源，其实ClasspathResource这个资源的主...]]></description><category></category></item><item><title><![CDATA[InnoDB引擎-行锁和意向锁]]></title><link>https://blog.youkuaiyun.com/makeliwei1/article/details/82343856</link><guid>https://blog.youkuaiyun.com/makeliwei1/article/details/82343856</guid><author>makeliwei1</author><pubDate>Sun, 09 Sep 2018 23:22:13 +0800</pubDate><description><![CDATA[InnoDB提供了两种锁，一种是行锁另一种就是意向锁，其中行锁是针对当我们查询或者更新时使用到了索引的时候(这个使用索引不是我们在DDL中使用了索引，而是InnoDB根据默认的索引操作，或者是根据我们设置的索引规则，InnoDB在执行DDL语句的时候确实使用了索引)，那么这个时候就会使用行锁。当我们的DDL语句没有使用索引，而是进行的表的扫描的时候，这个时候InnoDB就会使用表锁(意向锁是一种页...]]></description><category></category></item><item><title><![CDATA[Spring AOP学习笔记--Advice执行顺序]]></title><link>https://blog.youkuaiyun.com/makeliwei1/article/details/82289513</link><guid>https://blog.youkuaiyun.com/makeliwei1/article/details/82289513</guid><author>makeliwei1</author><pubDate>Mon, 03 Sep 2018 08:21:33 +0800</pubDate><description><![CDATA[



一、Advice执行顺序
二、Advice在同一个Aspect中
三、Advice在不同的Aspect中








一、Advice执行顺序

如果多个Advice和同一个JointPoint连接，我们需要指明每一个Advice的执行顺序，那么我们就需要分两种情况讨论，


第一种是如果Advice在同一个Aspect当中，那么执行的顺序是按照Advice在Aspect的声明顺序执行...]]></description><category></category></item><item><title><![CDATA[InnoDB引擎-行锁算法]]></title><link>https://blog.youkuaiyun.com/makeliwei1/article/details/82320078</link><guid>https://blog.youkuaiyun.com/makeliwei1/article/details/82320078</guid><author>makeliwei1</author><pubDate>Mon, 03 Sep 2018 08:21:15 +0800</pubDate><description><![CDATA[InnoDB为锁定一行提供了三种算法 
Record Lock：锁定一行 
Gap Lock：锁定一个范围，但是不包含当前行 
Next_key Lock：锁定一个范围，同时包含当前行 
对于Next_Key Lock,如果我们锁定了一个行，如果我们使用的唯一索引(主键就是一个唯一索引)锁定的行，那么这个时候InnoDB会将锁优化成Record Lock，也就是锁定当前行，而不是锁定当前行加一个范...]]></description><category></category></item><item><title><![CDATA[InnoDB引擎-一致性读锁定(为查询添加锁)]]></title><link>https://blog.youkuaiyun.com/makeliwei1/article/details/82318420</link><guid>https://blog.youkuaiyun.com/makeliwei1/article/details/82318420</guid><author>makeliwei1</author><pubDate>Sun, 02 Sep 2018 20:14:10 +0800</pubDate><description><![CDATA[一、为查询添加显示的锁

SELECT …..FOR UPDATE;在一个事务中为查询操作加一个排它锁，其他事务可以执行查询操作但是查询操作不允许加任何锁，否则会发生阻塞；对于其他事务如果要更新当前事务查询的行，那么会发生阻塞的情况。 
SELECT……LOCK IN SHARE MODE;在一个事物中对查询的行加共享锁，此时其他事务对同一行执行查询操作可以加共享锁，但是不允许加排他锁，同时，其他...]]></description><category></category></item><item><title><![CDATA[java-抽象类与接口]]></title><link>https://blog.youkuaiyun.com/makeliwei1/article/details/81910963</link><guid>https://blog.youkuaiyun.com/makeliwei1/article/details/81910963</guid><author>makeliwei1</author><pubDate>Thu, 30 Aug 2018 10:25:21 +0800</pubDate><description><![CDATA[



一、从类关键字方面
二、从成员变量方面
三、从构造器层面
四、从方法层面来讲
五、从继承和实现的角度来看
六、 从创建对象的角度来看
七、总结









一、从类关键字方面

抽象类使用的是abstract关键字修饰类，而接口使用的是interface。

//class前面使用abstract修饰
public abstract class AbstractClassTest {...]]></description><category></category></item><item><title><![CDATA[java多线程-BlockingQueue实现的生产者消费之模型]]></title><link>https://blog.youkuaiyun.com/makeliwei1/article/details/82141953</link><guid>https://blog.youkuaiyun.com/makeliwei1/article/details/82141953</guid><author>makeliwei1</author><pubDate>Tue, 28 Aug 2018 09:08:59 +0800</pubDate><description><![CDATA[参数

public class ArrayBlockingQueue&amp;amp;amp;lt;E&amp;amp;amp;gt; extends AbstractQueue&amp;amp;amp;lt;E&amp;amp;amp;gt;
        implements BlockingQueue&amp;amp;amp;lt;E&amp;amp;amp;gt;, java.io.Serializable {

    /**
     * Serialization ID. This cla]]></description><category></category></item><item><title><![CDATA[Socket网络编程-UDP通信]]></title><link>https://blog.youkuaiyun.com/makeliwei1/article/details/82047766</link><guid>https://blog.youkuaiyun.com/makeliwei1/article/details/82047766</guid><author>makeliwei1</author><pubDate>Sat, 25 Aug 2018 08:08:08 +0800</pubDate><description><![CDATA[UDP通信发送发和接收方都不需要进行监听，如果发送方法或者接受方，想要发送数据了，那么直接指对方的端口号和IP地址就可以了 
Server端代码



package NetworkProgramming.UDP;

import java.io.IOException;
import java.net.*;

/**
 * Created by luckyboy on 2018/8/25.
 *...]]></description><category></category></item><item><title><![CDATA[树的遍历-前序、中序、后序]]></title><link>https://blog.youkuaiyun.com/makeliwei1/article/details/82018138</link><guid>https://blog.youkuaiyun.com/makeliwei1/article/details/82018138</guid><author>makeliwei1</author><pubDate>Fri, 24 Aug 2018 14:55:53 +0800</pubDate><description><![CDATA[



一、前序遍历


1.1、前序遍历递归版本
1.2、前序遍历非递归版本






二、中许遍历


2.1、中序遍历递归版本
2.2、中序遍非递归版本






三、后序遍历


3.1、后序遍历递归版本
3.2、后序遍历非递归版本














一、前序遍历

1.1、前序遍历递归版本

private void preOrder(ListNode node) {
  ...]]></description><category></category></item><item><title><![CDATA[SpringMVC学习笔记-实现文件上传]]></title><link>https://blog.youkuaiyun.com/makeliwei1/article/details/81974429</link><guid>https://blog.youkuaiyun.com/makeliwei1/article/details/81974429</guid><author>makeliwei1</author><pubDate>Thu, 23 Aug 2018 09:19:57 +0800</pubDate><description><![CDATA[第一步：导入文件上传需要的包



commons-fileupload

详细的pom文件如下



&amp;amp;amp;lt;?xml version=&amp;amp;quot;1.0&amp;amp;quot; encoding=&amp;amp;quot;UTF-8&amp;amp;quot;?&amp;amp;amp;gt;

&amp;amp;amp;lt;project xmlns=&amp;amp;quot;http://maven.apache.org/POM/4.0.0&amp;]]></description><category></category></item><item><title><![CDATA[Spring学习笔记--父子容器详解]]></title><link>https://blog.youkuaiyun.com/makeliwei1/article/details/81951230</link><guid>https://blog.youkuaiyun.com/makeliwei1/article/details/81951230</guid><author>makeliwei1</author><pubDate>Wed, 22 Aug 2018 21:30:45 +0800</pubDate><description><![CDATA[此文转至 
http://www.tianshouzhi.com/api/tutorials/spring





容器加载过程
Root WebApplicationContext创建过程源码分析
Servlet WebApplicationContext创建过程源码分析









容器加载过程


Servlet WebApplicationContext：这是对J2EE三层架构中的...]]></description><category></category></item><item><title><![CDATA[Spring Transaction学习笔记-基于元注解的方式声明事务]]></title><link>https://blog.youkuaiyun.com/makeliwei1/article/details/81749888</link><guid>https://blog.youkuaiyun.com/makeliwei1/article/details/81749888</guid><author>makeliwei1</author><pubDate>Wed, 22 Aug 2018 17:29:02 +0800</pubDate><description><![CDATA[基于元注解的声明事务方式的流程



1、设置数据源在com.mchange.v2.c3p0.ComboPooledDataSource类中，这里我使用的是C3P0数据源
2、将数据源注入到org.springframework.orm.hibernate4.LocalSessionFactoryBean
3、我们org.springframework.orm.hibernate4.LocalSe...]]></description><category></category></item><item><title><![CDATA[TCP/IP学习笔记-超时重传]]></title><link>https://blog.youkuaiyun.com/makeliwei1/article/details/81871497</link><guid>https://blog.youkuaiyun.com/makeliwei1/article/details/81871497</guid><author>makeliwei1</author><pubDate>Tue, 21 Aug 2018 15:08:33 +0800</pubDate><description><![CDATA[



一、慢启动算法和拥塞避免算法
二、快速重传算法









一、慢启动算法和拥塞避免算法

当网络中出现拥塞，Client端在给定的时间收不到Server端发送的ACK信息，那么Client就会认为是包丢失了。此时Client就需要重新传输包，从包丢失到包重传这个时间间隔就是RTO。 
为了解决上面的问题，提出了慢启动算法和拥塞避免算法，具体过程如下：


当Client在第一次握手...]]></description><category></category></item><item><title><![CDATA[java-final关键字的使用]]></title><link>https://blog.youkuaiyun.com/makeliwei1/article/details/81907097</link><guid>https://blog.youkuaiyun.com/makeliwei1/article/details/81907097</guid><author>makeliwei1</author><pubDate>Tue, 21 Aug 2018 14:58:50 +0800</pubDate><description><![CDATA[一、final关键字修饰类

final关键字可以修饰一般类，但是不能修饰抽象类和接口;其中被final修饰的类不可被继承。

//错误案例，下面这个在类验证阶段就会出错
public final class Father {

}
class Son extends Father{

}
//final不能修饰抽象类、编译时报错
public final abstract class Final...]]></description><category></category></item><item><title><![CDATA[TCP/IP详解学习笔记-时延确认和Nagle算法]]></title><link>https://blog.youkuaiyun.com/makeliwei1/article/details/81865633</link><guid>https://blog.youkuaiyun.com/makeliwei1/article/details/81865633</guid><author>makeliwei1</author><pubDate>Mon, 20 Aug 2018 09:43:15 +0800</pubDate><description><![CDATA[



一、时延确认


1.1时延确认：
1.2时延确认案例






二、 Nagle算法









一、时延确认

1.1时延确认：

时延确认是指当Server方收到Client方的数据后，需要对接收到的数据进行一个确认，但是Server端并不会马上给Client端发送一个数据，而是等待一个最大时延(一般是200ms)，如果这个时间段内Server端没有要发送的数据，那么在最大时...]]></description><category></category></item><item><title><![CDATA[TCP/IP详解学习笔记--TCP状态跃迁图]]></title><link>https://blog.youkuaiyun.com/makeliwei1/article/details/81865094</link><guid>https://blog.youkuaiyun.com/makeliwei1/article/details/81865094</guid><author>makeliwei1</author><pubDate>Mon, 20 Aug 2018 08:44:10 +0800</pubDate><description><![CDATA[一、TCP状态跃迁

对于TCP的三次握手和四次挥手每一个过程都有一个状态的变化，只有正确的状态变迁才能使Client和Server端进行通信。


(Client)SYN_SENT：当Client 需要向Server端进行通信时，Client会通过三次握手与Server端建立连接，那么此时Client会向Server端发送一个请求连接信息(Seq_num,Syn=1,ACK=0)给Server，...]]></description><category></category></item><item><title><![CDATA[TCP四次挥手-wireshark分析]]></title><link>https://blog.youkuaiyun.com/makeliwei1/article/details/81843100</link><guid>https://blog.youkuaiyun.com/makeliwei1/article/details/81843100</guid><author>makeliwei1</author><pubDate>Sun, 19 Aug 2018 22:40:44 +0800</pubDate><description><![CDATA[和前面的三次连接一样，这一次我们来看一下TCP四次挥手的过程，当然了，也可能会失望，因为我捕捉到的只有三次挥手，而不是四次挥手。我们这里规定IP地址为219.223.247.181是Client端，而183.232.250.255是Server端，下面就用Client端和Server端来解释四次挥手的过程



一、wireshark分析

三次挥手 
 
第一次挥手 
从下面图片我们可以看到，C...]]></description><category></category></item><item><title><![CDATA[TCP三次握手-wireShark分析]]></title><link>https://blog.youkuaiyun.com/makeliwei1/article/details/81841675</link><guid>https://blog.youkuaiyun.com/makeliwei1/article/details/81841675</guid><author>makeliwei1</author><pubDate>Sun, 19 Aug 2018 21:41:30 +0800</pubDate><description><![CDATA[一、查询Server端IP地址

使用nslookup查询www.tmall.com的IP地址

PS C:\WINDOWS\system32&amp;gt; nslookup www.tmall.com
DNS request timed out.
    timeout was 2 seconds.
服务器:  UnKnown
Address:  101.226.4.6

非权威应答:
名称:    ...]]></description><category></category></item><item><title><![CDATA[Spring Bean学习笔记--使用注解的方式实现依赖注入]]></title><link>https://blog.youkuaiyun.com/makeliwei1/article/details/81813280</link><guid>https://blog.youkuaiyun.com/makeliwei1/article/details/81813280</guid><author>makeliwei1</author><pubDate>Sat, 18 Aug 2018 21:38:50 +0800</pubDate><description><![CDATA[一、 注解和包扫描

使用注解注入的方式主要是以下的两个注解 
@Component从源码可以看出@Component主要用于类上面的注解。

@java.lang.annotation.Target({java.lang.annotation.ElementType.TYPE})
@java.lang.annotation.Retention(java.lang.annotation.Reten...]]></description><category></category></item></channel></rss>