<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[AlexZhang7799的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/AlexZhang7799</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; AlexZhang7799]]></copyright><item><title><![CDATA[Dubbo工作流程]]></title><link>https://blog.youkuaiyun.com/AlexZhang7799/article/details/101708287</link><guid>https://blog.youkuaiyun.com/AlexZhang7799/article/details/101708287</guid><author>AlexZhang7799</author><pubDate>Tue, 18 Dec 2018 17:48:00 +0800</pubDate><description><![CDATA[一、dubbo整体架构


其中Service 和 Config 层为 API，对应服务提供方来说是使用ServiceConfig来代表一个要发布的服务配置对象，对应服务消费方来说ReferenceConfig代表了一个要消费的服务的配置对象。可以直接初始化配置类，也可以通过 spring 解析配置生成配置类。
proxy 服务代理层：扩展接口为 ProxyFactory，du...]]></description><category></category></item><item><title><![CDATA[spring bean的作用域和生命周期]]></title><link>https://blog.youkuaiyun.com/AlexZhang7799/article/details/101708285</link><guid>https://blog.youkuaiyun.com/AlexZhang7799/article/details/101708285</guid><author>AlexZhang7799</author><pubDate>Thu, 13 Dec 2018 16:48:00 +0800</pubDate><description><![CDATA[一、spring bean的作用域
　　五种作用域:singleton、prototype、request、session、globalSession
　　request、session和global session三种作用域仅在基于web的应用中使用（不必关心你所采用的是什么web应用框架），只能用在基于web的Spring ApplicationContext环境。
1.sin...]]></description><category></category></item><item><title><![CDATA[spring aop原理和实现]]></title><link>https://blog.youkuaiyun.com/AlexZhang7799/article/details/101708286</link><guid>https://blog.youkuaiyun.com/AlexZhang7799/article/details/101708286</guid><author>AlexZhang7799</author><pubDate>Wed, 12 Dec 2018 17:32:00 +0800</pubDate><description><![CDATA[一、aop是什么
1.AOP面向方面编程基于IoC，是对OOP的有益补充；
2.AOP利用一种称为“横切”的技术，剖解开封装的对象内部，并将那些影响了 多个类的公共行为封装到一个可重用模块，并将其名为“Aspect”，即方面。所谓“方面”，简单地说，就是将那些与业务无关，却为业务模块所共同调用的 逻辑或责任封装起来，比如日志记录，便于减少系统的重复代码，降低模块间的耦合度，并有利于未...]]></description><category></category></item><item><title><![CDATA[静态代理、jdk动态代理、cglib动态代理]]></title><link>https://blog.youkuaiyun.com/AlexZhang7799/article/details/101708284</link><guid>https://blog.youkuaiyun.com/AlexZhang7799/article/details/101708284</guid><author>AlexZhang7799</author><pubDate>Tue, 11 Dec 2018 16:48:00 +0800</pubDate><description><![CDATA[一、静态代理

Subject：抽象主题角色，抽象主题类可以是抽象类，也可以是接口，是一个最普通的业务类型定义，无特殊要求。
RealSubject：具体主题角色，也叫被委托角色、被代理角色。是业务逻辑的具体执行者。
Proxy：代理主题角色，也叫委托类、代理类。它把所有抽象主题类定义的方法给具体主题角色实现，并且在具体主题角色处理完毕前后做预处理和善后工作。（最简单的比如打印日...]]></description><category></category></item><item><title><![CDATA[spring ioc原理]]></title><link>https://blog.youkuaiyun.com/AlexZhang7799/article/details/101708283</link><guid>https://blog.youkuaiyun.com/AlexZhang7799/article/details/101708283</guid><author>AlexZhang7799</author><pubDate>Tue, 11 Dec 2018 11:54:00 +0800</pubDate><description><![CDATA[一、IOC是什么
　　1..IoC（Inversion of Control）是指容器控制程序对象之间的关系，而不是传统实现中，由程序代码直接操控。控制权由应用代码中转到了外部容器，控制权的转移是所谓反转。 对于Spring而言，就是由Spring来控制对象的生命周期和对象之间的关系；IoC还有另外一个名字——“依赖注入（Dependency Injection）”。从名字上理解，所谓...]]></description><category></category></item><item><title><![CDATA[spring 事务]]></title><link>https://blog.youkuaiyun.com/AlexZhang7799/article/details/101708282</link><guid>https://blog.youkuaiyun.com/AlexZhang7799/article/details/101708282</guid><author>AlexZhang7799</author><pubDate>Mon, 10 Dec 2018 16:59:00 +0800</pubDate><description><![CDATA[一、spring事务的实现方式
1.配置事务管理器

&lt;!-- 配置事务管理器 --&gt; 
&lt;bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"&gt; 
    &lt;property name="dataS...]]></description><category></category></item><item><title><![CDATA[mysql 索引]]></title><link>https://blog.youkuaiyun.com/AlexZhang7799/article/details/101708280</link><guid>https://blog.youkuaiyun.com/AlexZhang7799/article/details/101708280</guid><author>AlexZhang7799</author><pubDate>Fri, 07 Dec 2018 14:23:00 +0800</pubDate><description><![CDATA[一、索引的种类
1.单列索引：一个索引只包含单个列，但一个表中可以有多个单列索引。 这里不要搞混淆了。
　　普通索引：MySQL中基本索引类型，没有什么限制，允许在定义索引的列中插入重复值和空值，纯粹为了查询数据更快一点。
　　唯一索引：索引列中的值必须是唯一的，但是允许为空值，
　　主键索引：是一种特殊的唯一索引，不允许有空值。
2.组合索引:在表中的多个字段组合上创建的索引...]]></description><category></category></item><item><title><![CDATA[mysql 存储引擎]]></title><link>https://blog.youkuaiyun.com/AlexZhang7799/article/details/101708281</link><guid>https://blog.youkuaiyun.com/AlexZhang7799/article/details/101708281</guid><author>AlexZhang7799</author><pubDate>Thu, 06 Dec 2018 17:06:00 +0800</pubDate><description><![CDATA[一、mysql的表格引擎
　　MyISAM、InnoDB、MERGE、MEMORY(HEAP)、BDB(BerkeleyDB)、EXAMPLE、FEDERATED、ARCHIVE、CSV、BLACKHOLE。

MyISAM：默认的MySQL插件式存储引擎(5.5之前)，它是在Web、数据仓储和其他应用环境下最常使用的存储引擎之一。
InnoDB：用于事务处理应用程序，具有众多特...]]></description><category></category></item><item><title><![CDATA[mysql 锁]]></title><link>https://blog.youkuaiyun.com/AlexZhang7799/article/details/101708279</link><guid>https://blog.youkuaiyun.com/AlexZhang7799/article/details/101708279</guid><author>AlexZhang7799</author><pubDate>Thu, 06 Dec 2018 16:37:00 +0800</pubDate><description><![CDATA[锁的种类
共享锁（S）：允许一个事务去读一行，阻止其他事务获得相同数据集的排他锁。
排他锁（X)：允许获得排他锁的事务更新数据，阻止其他事务取得相同数据集的共享读锁和排他写锁。
意向共享锁（IS）：事务打算给数据行加行共享锁，事务在给一个数据行加共享锁前必须先取得该表的IS锁。
意向排他锁（IX）：事务打算给数据行加行排他锁，事务在给一个数据行加排他锁前必须先取得该表的IX锁...]]></description><category></category></item><item><title><![CDATA[mysql 事务、隔离级别]]></title><link>https://blog.youkuaiyun.com/AlexZhang7799/article/details/101708278</link><guid>https://blog.youkuaiyun.com/AlexZhang7799/article/details/101708278</guid><author>AlexZhang7799</author><pubDate>Wed, 05 Dec 2018 17:56:00 +0800</pubDate><description><![CDATA[一、事务的四大特性（ACID）
1.原子性（Atomicity）：事务开始后所有操作，要么全部做完，要么全部不做，不可能停滞在中间环节。事务执行过程中出错，会回滚到事务开始前的状态，所有的操作就像没有发生一样。
2.一致性（Consistency）：事务开始前和结束后，数据库的完整性约束没有被破坏 。事务结束时，所有的内部数据结构（如B树索引或双向链表）都必须是正确的。A向B转账...]]></description><category></category></item><item><title><![CDATA[java 单例模式的几种写法]]></title><link>https://blog.youkuaiyun.com/AlexZhang7799/article/details/101708277</link><guid>https://blog.youkuaiyun.com/AlexZhang7799/article/details/101708277</guid><author>AlexZhang7799</author><pubDate>Tue, 04 Dec 2018 18:45:00 +0800</pubDate><description><![CDATA[一、懒汉式

public class Singleton{
    private static Singleton instance = null;
    private Singleton(){}
    public static Singleton newInstance(){
        if(null == instance){
            ...]]></description><category></category></item><item><title><![CDATA[CountDownLatch、CyclicBarrier]]></title><link>https://blog.youkuaiyun.com/AlexZhang7799/article/details/101708276</link><guid>https://blog.youkuaiyun.com/AlexZhang7799/article/details/101708276</guid><author>AlexZhang7799</author><pubDate>Tue, 04 Dec 2018 17:50:00 +0800</pubDate><description><![CDATA[CountDownLatch
　　CountDownLatch类位于java.util.concurrent包下，利用它可以实现类似计数器的功能。比如有一个任务A，它要等待其他4个任务执行完毕之后才能执行，此时就可以利用CountDownLatch来实现这种功能了。
　　主要方法

public void await() throws InterruptedException {...]]></description><category></category></item><item><title><![CDATA[java ConcurrentHashMap和CopyOnWriteArrayList解决并发问题]]></title><link>https://blog.youkuaiyun.com/AlexZhang7799/article/details/101708274</link><guid>https://blog.youkuaiyun.com/AlexZhang7799/article/details/101708274</guid><author>AlexZhang7799</author><pubDate>Tue, 04 Dec 2018 16:26:00 +0800</pubDate><description><![CDATA[ConcurrentHashMap
一、hashtable、hashmap、ConcurrentHashMap
1、线程不安全的HashMap
　　因为多线程环境下，使用Hashmap进行put操作会引起死循环，导致CPU利用率接近100%，所以在并发情况下不能使用HashMap。
2、效率低下的HashTable
　　HashTable容器使用synchronized来保证线...]]></description><category></category></item><item><title><![CDATA[java ThreadLocal理解和使用]]></title><link>https://blog.youkuaiyun.com/AlexZhang7799/article/details/101708272</link><guid>https://blog.youkuaiyun.com/AlexZhang7799/article/details/101708272</guid><author>AlexZhang7799</author><pubDate>Mon, 03 Dec 2018 18:49:00 +0800</pubDate><description><![CDATA[一、ThreadLoal的理解
　　ThreadLoal 变量，它的基本原理是，同一个 ThreadLocal 所包含的对象（对ThreadLocal&lt; String &gt;而言即为 String 类型变量），在不同的 Thread 中有不同的副本（实际是不同的实例，后文会详细阐述）。
　　因为每个 Thread 内有自己的实例副本，且该副本只能由当前 Thread 使用。这...]]></description><category></category></item><item><title><![CDATA[java 并发线程池的理解和使用]]></title><link>https://blog.youkuaiyun.com/AlexZhang7799/article/details/101708267</link><guid>https://blog.youkuaiyun.com/AlexZhang7799/article/details/101708267</guid><author>AlexZhang7799</author><pubDate>Mon, 03 Dec 2018 17:50:00 +0800</pubDate><description><![CDATA[一、为什么要用线程池
　　合理利用线程池能够带来三个好处。
　　第一：降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。
　　第二：提高响应速度。当任务到达时，任务可以不需要的等到线程创建就能立即执行。
　　第三：提高线程的可管理性。线程是稀缺资源，如果无限制的创建，不仅会消耗系统资源，还会降低系统的稳定性，使用线程池可以进行统一的分配，调优和监控。
　　假设...]]></description><category></category></item><item><title><![CDATA[synchronized和lock的作用与对比]]></title><link>https://blog.youkuaiyun.com/AlexZhang7799/article/details/101708269</link><guid>https://blog.youkuaiyun.com/AlexZhang7799/article/details/101708269</guid><author>AlexZhang7799</author><pubDate>Fri, 30 Nov 2018 17:22:00 +0800</pubDate><description><![CDATA[一、synchronized的作用
synchronized是java中的一个关键字，用于线程同步。1. 修饰一个代码块，被修饰的代码块称为同步语句块，其作用的范围是大括号{}括起来的代码，作用的对象是调用这个代码块的对象；2. 修饰一个方法，被修饰的方法称为同步方法，其作用的范围是整个方法，作用的对象是调用这个方法的对象；3. 修饰一个静态的方法，其作用的范围是整个静态方法，作用的对...]]></description><category></category></item><item><title><![CDATA[cas机制的原理和使用]]></title><link>https://blog.youkuaiyun.com/AlexZhang7799/article/details/101708266</link><guid>https://blog.youkuaiyun.com/AlexZhang7799/article/details/101708266</guid><author>AlexZhang7799</author><pubDate>Fri, 30 Nov 2018 14:51:00 +0800</pubDate><description><![CDATA[一、什么是cas
　　CAS,compare and swap的缩写，中文翻译成比较并交换。
　　CAS 操作包含三个操作数 —— 内存位置（V）、预期原值（A）和新值(B)。 如果内存位置的值与预期原值相匹配，那么处理器会自动将该位置值更新为新值 。否则，处理器不做任何操作。
　　从思想上来说，Synchronized属于悲观锁，悲观地认为程序中的并发情况严重，所以严防死守。CA...]]></description><category></category></item><item><title><![CDATA[volatile关键字解释和使用]]></title><link>https://blog.youkuaiyun.com/AlexZhang7799/article/details/101708265</link><guid>https://blog.youkuaiyun.com/AlexZhang7799/article/details/101708265</guid><author>AlexZhang7799</author><pubDate>Thu, 29 Nov 2018 17:55:00 +0800</pubDate><description><![CDATA[一、java内存模型的相关概念:原子性、可见性与有序性
原子性：
　　原子是世界上的最小单位，具有不可分割性。比如 a=0；（a非long和double类型） 这个操作是不可分割的，那么我们说这个操作时原子操作。再比如：a++； 这个操作实际是a = a + 1；是可分割的，所以他不是一个原子操作。非原子操作都会存在线程安全问题，需要我们使用同步技术（sychronized）来让它变...]]></description><category></category></item><item><title><![CDATA[hashmap详解]]></title><link>https://blog.youkuaiyun.com/AlexZhang7799/article/details/101708264</link><guid>https://blog.youkuaiyun.com/AlexZhang7799/article/details/101708264</guid><author>AlexZhang7799</author><pubDate>Thu, 29 Nov 2018 14:12:00 +0800</pubDate><description><![CDATA[一.hashmap的数据结构
　　
　　HashMap采取数组加链表的存储方式(哈希表)来实现。亦即数组（散列桶）中的每一个元素都是链表
二.hashmap的构造函数
　　HashMap()：构造一个具有默认初始容量 (16) 和默认加载因子 (0.75) 的空 HashMap。
　　HashMap(int initialCapacity)：构造一个带指定初始容量和默认加载因子...]]></description><category></category></item><item><title><![CDATA[list、set、map的区别和联系]]></title><link>https://blog.youkuaiyun.com/AlexZhang7799/article/details/101708263</link><guid>https://blog.youkuaiyun.com/AlexZhang7799/article/details/101708263</guid><author>AlexZhang7799</author><pubDate>Wed, 28 Nov 2018 15:46:00 +0800</pubDate><description><![CDATA[结构特点　　List和Set是存储单列数据的集合，Map是存储键值对这样的双列数据的集合；　　List中存储的数据是有顺序的，并且值允许重复；Map中存储的数据是无序的，它的键是不允许重复的，但是值是允许重复的；Set中存储的数据是无顺序的，并且不允许重复，但元素在集合中的位置是由元素的hashcode决定，即位置是固定的（Set集合是根据hashcode来进行数据存储的，所以位置是固定...]]></description><category></category></item></channel></rss>