<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[宿久]]></title><description><![CDATA[一个互联网混子]]></description><link>https://blog.youkuaiyun.com/qq_22200097</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qq_22200097]]></copyright><item><title><![CDATA[深入理解JVM（三）类加载机制]]></title><link>https://blog.youkuaiyun.com/qq_22200097/article/details/85273103</link><guid>https://blog.youkuaiyun.com/qq_22200097/article/details/85273103</guid><author>qq_22200097</author><pubDate>Thu, 27 Dec 2018 13:48:47 +0800</pubDate><description><![CDATA[      Class类型通常以文件的形式存在（当然，任何二进制流都可以是Class类型），只有被Java虚拟机装载的Class类型才能在程序中使用。系统装载Class类型可以分为加载、连接和初始化3个步骤。其中，连接又可分为验证、准备和解析3步。




类加载条件


当创建一个类的实例时，比如使用new关键字，或者通过反射、克隆、反序列化。
	当调用类的静态方法时，即当使用了字节码invok...]]></description><category></category></item><item><title><![CDATA[深入理解JVM（二）垃圾回收概念与算法]]></title><link>https://blog.youkuaiyun.com/qq_22200097/article/details/85220013</link><guid>https://blog.youkuaiyun.com/qq_22200097/article/details/85220013</guid><author>qq_22200097</author><pubDate>Sun, 23 Dec 2018 10:33:32 +0800</pubDate><description><![CDATA[      垃圾回收（Garbage Collection 简称CG），GC中的垃圾，特指存在于内存中的、不会再被使用的对象，而“回收”，也相当于把垃圾桶“倒掉”。这样房间里或者内存空间里就会有空闲的区域被腾出来。如果不及时对内存中的垃圾进行清理，那么，这些垃圾对象所占的内存空间会一直保留到应用程序结束，被保留的空间无法被其他对象使用。如果大量不会被使用的对象一直占着空间不放，需要内存空间时，就无...]]></description><category></category></item><item><title><![CDATA[深入理解JVM（一）虚拟机基础]]></title><link>https://blog.youkuaiyun.com/qq_22200097/article/details/85157406</link><guid>https://blog.youkuaiyun.com/qq_22200097/article/details/85157406</guid><author>qq_22200097</author><pubDate>Sat, 22 Dec 2018 15:57:45 +0800</pubDate><description><![CDATA[1. 虚拟机原理

所谓虚拟机，就是一台虚拟的计算机。它是一款软件，用来执行一系列虚拟计算机指令。虚拟机可以分为系统虚拟机和程序虚拟机。Java虚拟机专门为执行单个计算机程序而设计，在Java虚拟机中执行的指令我们称为Java字节码指令。一个Java程序（Java字节码的集合），通过Java虚拟机运行于各大主流系充平台，该程序以虚拟机为中介，实现了跨平台的特性。



2. 虚拟机的基本结构


...]]></description><category></category></item><item><title><![CDATA[Java WatchService监听文件夹下文件的变化]]></title><link>https://blog.youkuaiyun.com/qq_22200097/article/details/85104260</link><guid>https://blog.youkuaiyun.com/qq_22200097/article/details/85104260</guid><author>qq_22200097</author><pubDate>Wed, 19 Dec 2018 18:15:10 +0800</pubDate><description><![CDATA[
package com.uv;
/*
 * @author uv
 * @date 2018/12/19 17:37
 */

import java.nio.file.FileSystems;
import java.nio.file.Paths;
import java.nio.file.StandardWatchEventKinds;
import java.nio.file.WatchE...]]></description><category></category></item><item><title><![CDATA[MySQL数据库]]></title><link>https://blog.youkuaiyun.com/qq_22200097/article/details/83537493</link><guid>https://blog.youkuaiyun.com/qq_22200097/article/details/83537493</guid><author>qq_22200097</author><pubDate>Tue, 30 Oct 2018 11:06:23 +0800</pubDate><description><![CDATA[
主键


主键是能确定一条记录的唯一标识。当一张表把某个列设为主键的时候,则该列就有主键索引。


外键


1. 外键用于与另一张表的关联。能确定另一张表记录的字段，用于保持数据的一致性。比如，A表中的一个字段，是B表的主键，那该字段就可以是A表的外键。添加外键的表是从表，指向的表叫主表（B表是主表，A表为从表）。

2. 外键取值规则：空值或参照的主键值。

插入非空值时，如果主键表中没有这...]]></description><category></category></item><item><title><![CDATA[Java定时任务]]></title><link>https://blog.youkuaiyun.com/qq_22200097/article/details/83308324</link><guid>https://blog.youkuaiyun.com/qq_22200097/article/details/83308324</guid><author>qq_22200097</author><pubDate>Tue, 23 Oct 2018 20:19:38 +0800</pubDate><description><![CDATA[Timer和TimerTask

Timer是jdk中提供的一个定时器工具，使用的时候会在主线程之外起一个单独的线程执行指定的计划任务，可以指定执行一次或者反复执行多次。
	TimerTask是一个实现了Runnable接口的抽象类，代表一个可以被Timer执行的任务。
一个Timer调度的例子


/*
 * @author uv
 * @date 2018/10/23 15:17
 *
 */...]]></description><category></category></item><item><title><![CDATA[简单实现RPC框架（二）客户端的实现]]></title><link>https://blog.youkuaiyun.com/qq_22200097/article/details/83050474</link><guid>https://blog.youkuaiyun.com/qq_22200097/article/details/83050474</guid><author>qq_22200097</author><pubDate>Mon, 15 Oct 2018 09:36:19 +0800</pubDate><description><![CDATA[继上一篇文章实现Server端后，本篇实现Client端。上篇文章链接https://blog.youkuaiyun.com/qq_22200097/article/details/83048668

 1. 添加依赖


    &amp;lt;dependency&amp;gt;
      &amp;lt;groupId&amp;gt;org.reflections&amp;lt;/groupId&amp;gt;
      &amp;lt;artifact...]]></description><category></category></item><item><title><![CDATA[简单实现RPC框架（一）服务端的实现]]></title><link>https://blog.youkuaiyun.com/qq_22200097/article/details/83048668</link><guid>https://blog.youkuaiyun.com/qq_22200097/article/details/83048668</guid><author>qq_22200097</author><pubDate>Sun, 14 Oct 2018 20:27:15 +0800</pubDate><description><![CDATA[RPC框架

      RPC是Remote Procedure Call的缩写，像Client-Servier一样的远程过程调用，也就是调用远程服务就跟调用本地服务一样方便，一般用于将程序部署在不同的机器上，供客户端进行调用。就像一个request-response调用系统一样简单。

      RPC采用客户机/服务器模式。请求程序就是一个客户机，而服务提供程序就是一个服务器。首先，客户机...]]></description><category></category></item><item><title><![CDATA[Netty的使用：Server和Client通信]]></title><link>https://blog.youkuaiyun.com/qq_22200097/article/details/83042424</link><guid>https://blog.youkuaiyun.com/qq_22200097/article/details/83042424</guid><author>qq_22200097</author><pubDate>Sat, 13 Oct 2018 22:33:43 +0800</pubDate><description><![CDATA[Netty

是一款基于NIO（Nonblocking I/O，非阻塞IO）开发的网络通信框架，提供异步的、事件驱动的网络应用程序框架和工具，用以快速开发高性能、高可靠性的网络服务器和客户端程序。对比于BIO（Blocking I/O，阻塞IO），他的并发性能得到了很大提高。
	提供了对TCP、UDP和文件传输的支持，作为一个异步NIO框架，Netty的所有IO操作都是异步非阻塞的，通过Futur...]]></description><category></category></item><item><title><![CDATA[Java动态代理]]></title><link>https://blog.youkuaiyun.com/qq_22200097/article/details/83026242</link><guid>https://blog.youkuaiyun.com/qq_22200097/article/details/83026242</guid><author>qq_22200097</author><pubDate>Fri, 12 Oct 2018 14:56:07 +0800</pubDate><description><![CDATA[动态代理分JDK动态代理和cglib动态代理，常见的使用是在Spring的AOP中。

JDK动态代理: 通过接口中的方法名，在动态生成的代理类中调用业务实现类的同名方法；代理实现了接口的类 ，没有实现接口的类不能使用JDK动态代理。 
	Cglib动态代理: 通过继承业务类，生成的动态代理类是业务类的子类，通过重写业务方法进行代理；不能代理final修饰的类。使用cglib代理必须引入cglib...]]></description><category></category></item><item><title><![CDATA[Spring Cloud（四）服务网关Zuul]]></title><link>https://blog.youkuaiyun.com/qq_22200097/article/details/82978741</link><guid>https://blog.youkuaiyun.com/qq_22200097/article/details/82978741</guid><author>qq_22200097</author><pubDate>Tue, 09 Oct 2018 13:28:11 +0800</pubDate><description><![CDATA[Spring Cloud Zuul

Spring Cloud Zuul路由是微服务架构的不可或缺的一部分，提供动态路由，监控，弹性，安全等的边缘服务。Zuul是Netflix出品的一个基于JVM路由和服务端的负载均衡器。

使用微服务来构建整个API服务时，系统会有不同职责的应用在运行着，没有统一的访问路径就会造成访问混乱难以维护，这就迫切需要zuul来提供统一的访问接口。

zuul的存在的意...]]></description><category></category></item><item><title><![CDATA[Spring Cloud（三）Hystrix的服务熔断、服务降级]]></title><link>https://blog.youkuaiyun.com/qq_22200097/article/details/82976869</link><guid>https://blog.youkuaiyun.com/qq_22200097/article/details/82976869</guid><author>qq_22200097</author><pubDate>Tue, 09 Oct 2018 09:27:14 +0800</pubDate><description><![CDATA[雪崩效应

在微服务架构中通常会有多个服务层调用，基础服务的故障可能会导致级联故障，进而造成整个系统不可用的情况，这种现象被称为服务雪崩效应。服务雪崩效应是一种因“服务提供者”的不可用导致“服务消费者”的不可用,并将不可用逐渐放大的过程。

如果下图所示：A作为服务提供者，B为A的服务消费者，C和D是B的服务消费者。A不可用引起了B的不可用，并将不可用像滚雪球一样放大到C和D时，雪崩效应就形成了。...]]></description><category></category></item><item><title><![CDATA[Spring Cloud（二）服务注册与调用]]></title><link>https://blog.youkuaiyun.com/qq_22200097/article/details/82972546</link><guid>https://blog.youkuaiyun.com/qq_22200097/article/details/82972546</guid><author>qq_22200097</author><pubDate>Mon, 08 Oct 2018 19:57:20 +0800</pubDate><description><![CDATA[案例中有三个角色：服务注册中心、服务提供者、服务消费者，其中服务注册中心就是我们上一篇的eureka单机版启动既可，流程是首先启动注册中心，服务提供者生产服务并注册到服务中心中，消费者从服务中心中获取服务并执行。

注册中心

上一篇文章中已经有注册中心的工程搭建。

服务提供者

添加依赖


    &amp;lt;dependency&amp;gt;
      &amp;lt;groupId&amp;gt;org.spr...]]></description><category></category></item><item><title><![CDATA[Spring Cloud（一）注册中心Eureka]]></title><link>https://blog.youkuaiyun.com/qq_22200097/article/details/82965330</link><guid>https://blog.youkuaiyun.com/qq_22200097/article/details/82965330</guid><author>qq_22200097</author><pubDate>Mon, 08 Oct 2018 13:34:31 +0800</pubDate><description><![CDATA[Eureka

Spring Cloud 封装了 Netflix 公司开发的 Eureka 模块来实现服务注册和发现。Eureka 采用了 C-S 的设计架构。Eureka Server 作为服务注册功能的服务器，它是服务注册中心。而系统中的其他微服务，使用 Eureka 的客户端连接到 Eureka Server，并维持心跳连接。这样系统的维护人员就可以通过 Eureka Server 来监控系...]]></description><category></category></item><item><title><![CDATA[Mybatis拦截器修改sql语句]]></title><link>https://blog.youkuaiyun.com/qq_22200097/article/details/82942908</link><guid>https://blog.youkuaiyun.com/qq_22200097/article/details/82942908</guid><author>qq_22200097</author><pubDate>Fri, 05 Oct 2018 13:24:58 +0800</pubDate><description><![CDATA[拦截器介绍

MyBatis提供了一种插件(plugin)的功能，虽然叫做插件，但其实这是拦截器功能。

MyBatis 允许你在已映射语句执行过程中的某一点进行拦截调用。默认情况下，MyBatis 允许使用插件来拦截的方法调用包括：

Executor (update, query, flushStatements, commit, rollback, getTransaction, close...]]></description><category></category></item><item><title><![CDATA[手写SpringMVC源码]]></title><link>https://blog.youkuaiyun.com/qq_22200097/article/details/82938089</link><guid>https://blog.youkuaiyun.com/qq_22200097/article/details/82938089</guid><author>qq_22200097</author><pubDate>Thu, 04 Oct 2018 16:16:22 +0800</pubDate><description><![CDATA[项目结构图



项目依赖


&amp;lt;dependencies&amp;gt;
    &amp;lt;dependency&amp;gt;
      &amp;lt;groupId&amp;gt;junit&amp;lt;/groupId&amp;gt;
      &amp;lt;artifactId&amp;gt;junit&amp;lt;/artifactId&amp;gt;
      &amp;lt;version&amp;gt;4.11&amp;lt;/version&amp;gt]]></description><category></category></item><item><title><![CDATA[SpringBoot（七）springboot配置过滤器、拦截器]]></title><link>https://blog.youkuaiyun.com/qq_22200097/article/details/82888406</link><guid>https://blog.youkuaiyun.com/qq_22200097/article/details/82888406</guid><author>qq_22200097</author><pubDate>Fri, 28 Sep 2018 19:36:18 +0800</pubDate><description><![CDATA[过滤器

      依赖于servlet容器。在实现上基于函数回调，可以对几乎所有请求进行过滤，但是缺点是一个过滤器实例只能在容器初始化时调用一次。使用过滤器的目的是用来做一些过滤操作，获取我们想要获取的数据，比如：在过滤器中修改字符编码；在过滤器中修改HttpServletRequest的一些参数，包括：过滤低俗文字、危险字符等。


	通过过滤器的名字，进行顺序的约定，比如LogFilter...]]></description><category></category></item><item><title><![CDATA[Java底层之ArrayList底层实现原理]]></title><link>https://blog.youkuaiyun.com/qq_22200097/article/details/82843567</link><guid>https://blog.youkuaiyun.com/qq_22200097/article/details/82843567</guid><author>qq_22200097</author><pubDate>Wed, 26 Sep 2018 19:01:09 +0800</pubDate><description><![CDATA[ArrayList简介

    ArrayList就是动态数组，，相当于Array的复杂版本，它提供了动态的增加和减少元素，实现了Collection和List接口，可以灵活的设置数组的大小。要注意的是ArrayList并不是线程安全的，因此一般建议在单线程中使用ArrayList。ArrayList的元素可以为null;

源码解析

    ArrayList底层使用数组存储元素，默认数组大...]]></description><category></category></item><item><title><![CDATA[SpringBoot（六）springboot整合themleaf]]></title><link>https://blog.youkuaiyun.com/qq_22200097/article/details/82842852</link><guid>https://blog.youkuaiyun.com/qq_22200097/article/details/82842852</guid><author>qq_22200097</author><pubDate>Tue, 25 Sep 2018 18:46:02 +0800</pubDate><description><![CDATA[Themleaf

    thymeleaf 是新一代的模板引擎，在spring4.0中推荐使用thymeleaf来做前端模版引擎。


	Thymeleaf 在有网络和无网络的环境下皆可运行，即它可以让美工在浏览器查看页面的静态效果，也可以让程序员在服务器查看带数据的动态页面效果。这是由于它支持 html 原型，然后在 html 标签里增加额外的属性来达到模板+数据的展示方式。浏览器解释 ht...]]></description><category></category></item><item><title><![CDATA[Java底层之HashMap底层实现原理]]></title><link>https://blog.youkuaiyun.com/qq_22200097/article/details/82791479</link><guid>https://blog.youkuaiyun.com/qq_22200097/article/details/82791479</guid><author>qq_22200097</author><pubDate>Sun, 23 Sep 2018 17:05:26 +0800</pubDate><description><![CDATA[HashMap简介

      HashMap 是一个散列表，它存储的内容是键值对(key-value)映射。 HashMap 继承于AbstractMap，实现了Map、Cloneable、java.io.Serializable接口。 HashMap 的实现不是同步的，这意味着它不是线程安全的。它的key、value都可以为null。此外，HashMap中的映射不是有序的。 HashMap ...]]></description><category></category></item></channel></rss>