<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[老杨叔叔]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/yangspgao</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; yangspgao]]></copyright><item><title><![CDATA[23种设计模式-门面模式(外观模式)]]></title><link>https://blog.youkuaiyun.com/yangspgao/article/details/80602794</link><guid>https://blog.youkuaiyun.com/yangspgao/article/details/80602794</guid><author>yangspgao</author><pubDate>Thu, 07 Jun 2018 08:32:25 +0800</pubDate><description><![CDATA[


1.产生背景
2.概念
3.目的
4.解决方案
5. 类图
6.优缺点

优点：
缺点：




7.应用场景
8.代理种类
9.现实案例
10. 注意事项









1.产生背景


为什么需要门面模式 



我是一个辛苦一辈子的农民，攒了几十年钱，现在日子好了，也想建一套属于自己的小洋楼；

可是，我要雇一个搬砖的和一个和泥的，还要一个会砌墙的人；可是我到哪里去找这些人，还要一...]]></description><category></category></item><item><title><![CDATA[23种设计模式-代理模式]]></title><link>https://blog.youkuaiyun.com/yangspgao/article/details/80574188</link><guid>https://blog.youkuaiyun.com/yangspgao/article/details/80574188</guid><author>yangspgao</author><pubDate>Tue, 05 Jun 2018 08:32:46 +0800</pubDate><description><![CDATA[


1.产生背景
2.概念
3.目的
4.解决方案
5. 类图
6.优缺点

优点：




7.应用场景
8.现实案例
9. 注意事项









1.产生背景


为什么需要代理模式 



假如你是一个业主，有一套500万的房子需要出售；你希望找一个合适的客户，签个合同，收了钱，然后把房子过户给客户就可以了；

但是，有太多的客户天天找你需要看房，询问，而且大部分都是没有诚意的客户，...]]></description><category></category></item><item><title><![CDATA[23种设计模式-装饰器模式]]></title><link>https://blog.youkuaiyun.com/yangspgao/article/details/80556842</link><guid>https://blog.youkuaiyun.com/yangspgao/article/details/80556842</guid><author>yangspgao</author><pubDate>Sun, 03 Jun 2018 15:13:22 +0800</pubDate><description><![CDATA[


1.产生背景
2.概念
3.目的
4.解决方案
5. 类图
6.优缺点

优点：
缺点:




7.应用场景
8.现实案例
9. 注意事项









1.产生背景


为什么需要装饰器模式 
有些情况，一个类已经存在，并且可以对外提供核心功能；但是，某个时刻，希望对这个功能进行非业务性增强（如：增加缓存）；通常情况，我们可以修改原来的类，并增加对应的增强功能即可；


但是，这种方...]]></description><category></category></item><item><title><![CDATA[23种设计模式-适配器模式]]></title><link>https://blog.youkuaiyun.com/yangspgao/article/details/80555537</link><guid>https://blog.youkuaiyun.com/yangspgao/article/details/80555537</guid><author>yangspgao</author><pubDate>Sun, 03 Jun 2018 12:10:58 +0800</pubDate><description><![CDATA[


1.产生背景
2.概念
3.目的
4.解决方案
5. 类图
6.优缺点

优点：
缺点:




7.应用场景
8.现实案例
9. 注意事项









1.产生背景


为什么需要适配器模式




现在很多笔记本已经取消了有线网口，所以如果还想使用网线连接网络只能使用其它方式： 


这个USB网线转换接口，就是一个适配器，它连接两个不直接对接的对象 


2.概念

是作为两个不...]]></description><category></category></item><item><title><![CDATA[23种设计模式-原型模式]]></title><link>https://blog.youkuaiyun.com/yangspgao/article/details/80554608</link><guid>https://blog.youkuaiyun.com/yangspgao/article/details/80554608</guid><author>yangspgao</author><pubDate>Sun, 03 Jun 2018 10:18:18 +0800</pubDate><description><![CDATA[


1.产生背景
2.概念
3.目的
4.解决方案
5. 类图
6.优缺点

优点：
缺点:




7.应用场景
8.现实案例
9. 注意事项









1.产生背景


为什么需要原型模式


与其它创建型模式不同，原型模式不是在他们的基础上的改进；

2.概念

用原型实例指定创建对象的种类，并通过拷贝这些原型创建新的对象。

本质： 通过一个原始对象为模版，克隆出更多一模一样的对...]]></description><category></category></item><item><title><![CDATA[23种设计模式-建造者模式]]></title><link>https://blog.youkuaiyun.com/yangspgao/article/details/80549398</link><guid>https://blog.youkuaiyun.com/yangspgao/article/details/80549398</guid><author>yangspgao</author><pubDate>Sat, 02 Jun 2018 16:51:55 +0800</pubDate><description><![CDATA[


1.产生背景
2.概念
3.目的
4.解决方案
5. 类图
6.优缺点

优点：
缺点:




7.现实场景









1.产生背景


为什么需要建造者模式


建造者模式仍然是对上一节设计模式（抽象工厂模式）的改进；

抽象工厂模式侧重一个工厂可以创建一组相关的对象；但是这组相关对象是平等地位，没有主次之分，也没有整体与部分的概念，如何使用由客户决定；

但是，现实中有一些对象...]]></description><category></category></item><item><title><![CDATA[23种设计模式-抽象工厂模式]]></title><link>https://blog.youkuaiyun.com/yangspgao/article/details/80546324</link><guid>https://blog.youkuaiyun.com/yangspgao/article/details/80546324</guid><author>yangspgao</author><pubDate>Sat, 02 Jun 2018 12:57:51 +0800</pubDate><description><![CDATA[


1.产生背景
2.概念
3.目的
4.解决方案
5. 类图
6.优缺点

优点：




7.现实场景









1.产生背景


为什么需要抽象工厂模式 
工厂相关设计模式的发展由简到繁，基本是通过不断的改良前一个模式的缺点衍生而来；


上一节我们讲述了“工厂方法模式”，它改良了“简单工厂模式”不可扩展的缺点（基本上是推翻了），实现了工厂的可扩展性；当然，也带来了使用的复杂性；不...]]></description><category></category></item><item><title><![CDATA[23种设计模式-工厂方法模式]]></title><link>https://blog.youkuaiyun.com/yangspgao/article/details/80504661</link><guid>https://blog.youkuaiyun.com/yangspgao/article/details/80504661</guid><author>yangspgao</author><pubDate>Fri, 01 Jun 2018 09:55:44 +0800</pubDate><description><![CDATA[



产生背景









产生背景


为什么需要工厂


本质：把简单工厂中，if else 部分抽像为工厂类；每个工厂只创建一个类弄的实例；以方便以后扩展；]]></description><category></category></item><item><title><![CDATA[23种设计模式-简单工厂模式]]></title><link>https://blog.youkuaiyun.com/yangspgao/article/details/80501124</link><guid>https://blog.youkuaiyun.com/yangspgao/article/details/80501124</guid><author>yangspgao</author><pubDate>Tue, 29 May 2018 20:06:49 +0800</pubDate><description><![CDATA[23种设计模式-简单工厂模式




23种设计模式-简单工厂模式
产生背景
概念
原理
使用场景
实际案例









产生背景


为什么需要工厂 
当我们需要使用一个对象时，通常只需要通过关键字 new ，就可以得到一个实例，为什么还需要通过简单工厂这么繁琐的方式创建对象呢？


假如一个对象的创建，不仅仅包含实例化本身，还需要做大量的初始化操作，如：根据Locale不同，加载不同的国...]]></description><category></category></item><item><title><![CDATA[23种设计模式-单例模式]]></title><link>https://blog.youkuaiyun.com/yangspgao/article/details/80470713</link><guid>https://blog.youkuaiyun.com/yangspgao/article/details/80470713</guid><author>yangspgao</author><pubDate>Sun, 27 May 2018 19:11:32 +0800</pubDate><description><![CDATA[

23种设计模式-单例模式
产生背景
概念
原理
使用场景
实现方式
实际场景







23种设计模式-单例模式



产生背景

某些情况，如：线程池，一个项目的总线程数目及生命周期，需要通过统一控制；如果线程池本身可创建多个，那么就无法统一控制，此时，只要能控制线程池对象的数量为只有一个，那么就可以实现统一控制的目标；

注意：现实中真正使用纯的单例模式并不多； 
如：spring b...]]></description><category></category></item><item><title><![CDATA[23种设计模式 - 前言]]></title><link>https://blog.youkuaiyun.com/yangspgao/article/details/80470425</link><guid>https://blog.youkuaiyun.com/yangspgao/article/details/80470425</guid><author>yangspgao</author><pubDate>Sun, 27 May 2018 16:40:11 +0800</pubDate><description><![CDATA[

23种设计模式 - 前言
当我们学习时，到底在学习什么
什么是设计模式
产生背景
目的
设计模式的六大原则
23种设计模式









23种设计模式 - 前言

当我们学习时，到底在学习什么

无论学习什么内容，我们基本都从是从几个维度循序渐进去了解和熟悉它，至到融入记忆；当遇到类似的问题时，这些曾经学习过的知识能立马涌现到脑海，以用于解决对应的问题；这些维度主要分为以下几点：


是...]]></description><category></category></item><item><title><![CDATA[jvm-垃圾回收]]></title><link>https://blog.youkuaiyun.com/yangspgao/article/details/79084208</link><guid>https://blog.youkuaiyun.com/yangspgao/article/details/79084208</guid><author>yangspgao</author><pubDate>Fri, 19 Jan 2018 14:04:01 +0800</pubDate><description><![CDATA[参考资料：详解CMS垃圾回收机制(强烈推荐)
一：为什么需要垃圾回收？
jvm把内存管理权从开发人员收回，开发人员只需要创建数据对象即可，内存的分配和回收都由jvm自动完成。
程序只管创建对象，不管对象的回收，内存最终会被耗尽。


二：怎么判断对象为垃圾？
如果要实现垃圾回收，首先必须能判断哪些对象是垃圾。
对象不再被使用就认为是垃圾。jvm自动回收垃圾，但它如何才能知道一个对象]]></description><category></category></item><item><title><![CDATA[jvm-内存模型]]></title><link>https://blog.youkuaiyun.com/yangspgao/article/details/78883553</link><guid>https://blog.youkuaiyun.com/yangspgao/article/details/78883553</guid><author>yangspgao</author><pubDate>Wed, 17 Jan 2018 13:26:12 +0800</pubDate><description><![CDATA[一：内存
为什么需要内存？
程序可以简化为：数据 ＋ 逻辑； 
硬盘：存储数据。
cpu：执行逻辑；
但是硬盘的速度远远跟不上cpu的速度，因此在它们之间增加了一层速度介于cpu与硬盘的存储介质，即内存；
另外内存的速度与cpu也不在同一个量级，为此cpu与内存之间还有一个中间存储层：高速缓存；


为什么需要jvm内存
内存的分配和回收是由os内核管理，这种操作代价高昂，频]]></description><category></category></item><item><title><![CDATA[java基础-数据容器之Map-LinkedHashMap]]></title><link>https://blog.youkuaiyun.com/yangspgao/article/details/78908865</link><guid>https://blog.youkuaiyun.com/yangspgao/article/details/78908865</guid><author>yangspgao</author><pubDate>Sun, 31 Dec 2017 18:57:10 +0800</pubDate><description><![CDATA[数据容器

    在程序代码中，用来暂时存储数据的“盒子”（容器），用于后续的逻辑处理。




与HashMap比较

     LinkedHashMap继承自HashMap，因此主数据结构、主功能与hashMap完全一样。

     HashMap可以遍历key和value，此遍历是无序了（即插入的先后顺序与循历顺序不一致）。]]></description><category></category></item><item><title><![CDATA[java基础-数据容器之Map-HashMap]]></title><link>https://blog.youkuaiyun.com/yangspgao/article/details/78869368</link><guid>https://blog.youkuaiyun.com/yangspgao/article/details/78869368</guid><author>yangspgao</author><pubDate>Fri, 22 Dec 2017 08:45:55 +0800</pubDate><description><![CDATA[数据容器
    在程序代码中，用来暂时存储数据的“盒子”（容器），用于后续的逻辑处理。


为什么需要map?
map是数据容器中的一种数据结构，首先它是用来存储数据的；其次，与其它数据容器不同，它是一种可以通过业务数据来快速、精确检索另一个业务数据的数据结构。


map：是一种key-value的数据结构;key和value都是业务数据，value是最终的业务数据，key是专]]></description><category></category></item><item><title><![CDATA[java基础-数据容器之集合List]]></title><link>https://blog.youkuaiyun.com/yangspgao/article/details/78441424</link><guid>https://blog.youkuaiyun.com/yangspgao/article/details/78441424</guid><author>yangspgao</author><pubDate>Sat, 04 Nov 2017 09:35:43 +0800</pubDate><description><![CDATA[参考：http://www.importnew.com/25008.html


上一节讨论数组时，我们知道数据容器是用来存放数据的，那么既然数组就可以集中存储一批业务相关的数据，为什么jdk还要提供其它“集合”类？


我一直认为世界上任何一种技术或事物的产生一定是因为它解决了以前技术或事物没有或不能解决的问题，至少是对“前任”的改进。那么集合到底解决了什么问题？或改进了什么问题？]]></description><category></category></item><item><title><![CDATA[java基础-数据容器之数组]]></title><link>https://blog.youkuaiyun.com/yangspgao/article/details/78399554</link><guid>https://blog.youkuaiyun.com/yangspgao/article/details/78399554</guid><author>yangspgao</author><pubDate>Tue, 31 Oct 2017 09:20:31 +0800</pubDate><description><![CDATA[程序界流传一种说法：程序 = 数据结构 + 算法。 虽然这种说法过于简洁，但也从某种角度说明了程序的本质。算法代表了程序的逻辑，数据结构代表了数据的组织形式。
今天我们只探讨数据结构，准确的说只探讨java中的数据结构。
什么是数据结构？
百度百科：数据结构是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成。
简单的讲就是能一批有相关性的数据元素存储在一块的容]]></description><category></category></item><item><title><![CDATA[把书读薄:大型网站技术架构-核心原理与案例分析(第四篇 架构师)]]></title><link>https://blog.youkuaiyun.com/yangspgao/article/details/78382998</link><guid>https://blog.youkuaiyun.com/yangspgao/article/details/78382998</guid><author>yangspgao</author><pubDate>Sun, 29 Oct 2017 09:54:44 +0800</pubDate><description><![CDATA[14 架构师领导艺术职能:架构设计，软件开发，管理职能（规划产品，估算人力资源，估算时间资源，安排人员职责分工，确定计划里程碑，指导工程师工作，过程风险评估与控制）。是工程师的榜样，要做好表率。14.1关注人而不是产品从逼迫式到自我驱动式。 
寻找一个值得共同奋斗的目标，营造一个让大家都能最大限度发挥自我价值的工作氛围。关键词:给人一值得信赖的环境。14.2 发掘人的优秀关键词:培养人，给人上升进步]]></description><category></category></item><item><title><![CDATA[把书读薄:大型网站技术架构-核心原理与案例分析(第三篇 案例)]]></title><link>https://blog.youkuaiyun.com/yangspgao/article/details/78316489</link><guid>https://blog.youkuaiyun.com/yangspgao/article/details/78316489</guid><author>yangspgao</author><pubDate>Mon, 23 Oct 2017 10:50:04 +0800</pubDate><description><![CDATA[4. 瞬时响应：网站的高性能架构



5. 万无一失：网站的高可用架构



6. 永无止境：网站的伸缩性架构



7. 随需应变：网站的可扩展架构



8. 固若金汤：网站的安全架构]]></description><category></category></item><item><title><![CDATA[把书读薄:大型网站技术架构-核心原理与案例分析(第二篇 架构)]]></title><link>https://blog.youkuaiyun.com/yangspgao/article/details/78316470</link><guid>https://blog.youkuaiyun.com/yangspgao/article/details/78316470</guid><author>yangspgao</author><pubDate>Mon, 23 Oct 2017 10:48:26 +0800</pubDate><description><![CDATA[4. 瞬时响应：网站的高性能架构

5. 万无一失：网站的高可用架构

6. 永无止境：网站的伸缩性架构

7. 随需应变：网站的可扩展架构

8. 固若金汤：网站的安全架构]]></description><category></category></item></channel></rss>