自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 23种设计模式-门面模式(外观模式)

1.产生背景2.概念3.目的4.解决方案5. 类图6.优缺点优点:缺点:7.应用场景8.代理种类9.现实案例10. 注意事项1.产生背景为什么需要门面模式 我是一个辛苦一辈子的农民,攒了几十年钱,现在日子好了,也想建一套属于自己的小洋楼;可是,我要雇一个搬砖的和一个和泥的,还要一个会砌墙的人;可是我到哪里去找这些人,还要一...

2018-06-07 08:32:25 19062 3

原创 23种设计模式-代理模式

1.产生背景2.概念3.目的4.解决方案5. 类图6.优缺点优点:7.应用场景8.现实案例9. 注意事项1.产生背景为什么需要代理模式 假如你是一个业主,有一套500万的房子需要出售;你希望找一个合适的客户,签个合同,收了钱,然后把房子过户给客户就可以了;但是,有太多的客户天天找你需要看房,询问,而且大部分都是没有诚意的客户,...

2018-06-05 08:32:46 1233

原创 23种设计模式-装饰器模式

1.产生背景2.概念3.目的4.解决方案5. 类图6.优缺点优点:缺点:7.应用场景8.现实案例9. 注意事项1.产生背景为什么需要装饰器模式 有些情况,一个类已经存在,并且可以对外提供核心功能;但是,某个时刻,希望对这个功能进行非业务性增强(如:增加缓存);通常情况,我们可以修改原来的类,并增加对应的增强功能即可;但是,这种方...

2018-06-03 15:13:22 1952 1

原创 23种设计模式-适配器模式

1.产生背景2.概念3.目的4.解决方案5. 类图6.优缺点优点:缺点:7.应用场景8.现实案例9. 注意事项1.产生背景为什么需要适配器模式现在很多笔记本已经取消了有线网口,所以如果还想使用网线连接网络只能使用其它方式: 这个USB网线转换接口,就是一个适配器,它连接两个不直接对接的对象 2.概念是作为两个不...

2018-06-03 12:10:58 492 1

原创 23种设计模式-原型模式

1.产生背景2.概念3.目的4.解决方案5. 类图6.优缺点优点:缺点:7.应用场景8.现实案例9. 注意事项1.产生背景为什么需要原型模式与其它创建型模式不同,原型模式不是在他们的基础上的改进;2.概念用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。本质: 通过一个原始对象为模版,克隆出更多一模一样的对...

2018-06-03 10:18:18 756

原创 23种设计模式-建造者模式

1.产生背景2.概念3.目的4.解决方案5. 类图6.优缺点优点:缺点:7.现实场景1.产生背景为什么需要建造者模式建造者模式仍然是对上一节设计模式(抽象工厂模式)的改进;抽象工厂模式侧重一个工厂可以创建一组相关的对象;但是这组相关对象是平等地位,没有主次之分,也没有整体与部分的概念,如何使用由客户决定;但是,现实中有一些对象...

2018-06-02 16:51:55 1361

原创 23种设计模式-抽象工厂模式

1.产生背景2.概念3.目的4.解决方案5. 类图6.优缺点优点:7.现实场景1.产生背景为什么需要抽象工厂模式 工厂相关设计模式的发展由简到繁,基本是通过不断的改良前一个模式的缺点衍生而来;上一节我们讲述了“工厂方法模式”,它改良了“简单工厂模式”不可扩展的缺点(基本上是推翻了),实现了工厂的可扩展性;当然,也带来了使用的复杂性;不...

2018-06-02 12:57:51 439

原创 23种设计模式-工厂方法模式

产生背景产生背景为什么需要工厂本质:把简单工厂中,if else 部分抽像为工厂类;每个工厂只创建一个类弄的实例;以方便以后扩展;

2018-06-01 09:55:44 381

原创 23种设计模式-简单工厂模式

23种设计模式-简单工厂模式23种设计模式-简单工厂模式产生背景概念原理使用场景实际案例产生背景为什么需要工厂 当我们需要使用一个对象时,通常只需要通过关键字 new ,就可以得到一个实例,为什么还需要通过简单工厂这么繁琐的方式创建对象呢?假如一个对象的创建,不仅仅包含实例化本身,还需要做大量的初始化操作,如:根据Locale不同,加载不同的国...

2018-05-29 20:06:49 1647 1

原创 23种设计模式-单例模式

23种设计模式-单例模式产生背景概念原理使用场景实现方式实际场景23种设计模式-单例模式产生背景某些情况,如:线程池,一个项目的总线程数目及生命周期,需要通过统一控制;如果线程池本身可创建多个,那么就无法统一控制,此时,只要能控制线程池对象的数量为只有一个,那么就可以实现统一控制的目标;注意:现实中真正使用纯的单例模式并不多; 如:spring b...

2018-05-27 19:11:32 429

原创 23种设计模式 - 前言

23种设计模式 - 前言当我们学习时,到底在学习什么什么是设计模式产生背景目的设计模式的六大原则23种设计模式23种设计模式 - 前言当我们学习时,到底在学习什么无论学习什么内容,我们基本都从是从几个维度循序渐进去了解和熟悉它,至到融入记忆;当遇到类似的问题时,这些曾经学习过的知识能立马涌现到脑海,以用于解决对应的问题;这些维度主要分为以下几点:是...

2018-05-27 16:40:11 345

原创 jvm-垃圾回收

参考资料:详解CMS垃圾回收机制(强烈推荐)一:为什么需要垃圾回收?jvm把内存管理权从开发人员收回,开发人员只需要创建数据对象即可,内存的分配和回收都由jvm自动完成。程序只管创建对象,不管对象的回收,内存最终会被耗尽。二:怎么判断对象为垃圾?如果要实现垃圾回收,首先必须能判断哪些对象是垃圾。对象不再被使用就认为是垃圾。jvm自动回收垃圾,但它如何才能知道一个对象

2018-01-19 14:04:01 534

原创 jvm-内存模型

一:内存为什么需要内存?程序可以简化为:数据 + 逻辑; 硬盘:存储数据。cpu:执行逻辑;但是硬盘的速度远远跟不上cpu的速度,因此在它们之间增加了一层速度介于cpu与硬盘的存储介质,即内存;另外内存的速度与cpu也不在同一个量级,为此cpu与内存之间还有一个中间存储层:高速缓存;为什么需要jvm内存内存的分配和回收是由os内核管理,这种操作代价高昂,频

2018-01-17 13:26:12 2426

原创 java基础-数据容器之Map-LinkedHashMap

数据容器    在程序代码中,用来暂时存储数据的“盒子”(容器),用于后续的逻辑处理。与HashMap比较     LinkedHashMap继承自HashMap,因此主数据结构、主功能与hashMap完全一样。     HashMap可以遍历key和value,此遍历是无序了(即插入的先后顺序与循历顺序不一致)。

2017-12-31 18:57:10 355

原创 java基础-数据容器之Map-HashMap

数据容器    在程序代码中,用来暂时存储数据的“盒子”(容器),用于后续的逻辑处理。为什么需要map?map是数据容器中的一种数据结构,首先它是用来存储数据的;其次,与其它数据容器不同,它是一种可以通过业务数据来快速、精确检索另一个业务数据的数据结构。map:是一种key-value的数据结构;key和value都是业务数据,value是最终的业务数据,key是专

2017-12-22 08:45:55 385

原创 java基础-数据容器之集合List

参考:http://www.importnew.com/25008.html上一节讨论数组时,我们知道数据容器是用来存放数据的,那么既然数组就可以集中存储一批业务相关的数据,为什么jdk还要提供其它“集合”类?我一直认为世界上任何一种技术或事物的产生一定是因为它解决了以前技术或事物没有或不能解决的问题,至少是对“前任”的改进。那么集合到底解决了什么问题?或改进了什么问题?

2017-11-04 09:35:43 398

原创 java基础-数据容器之数组

程序界流传一种说法:程序 = 数据结构 + 算法。 虽然这种说法过于简洁,但也从某种角度说明了程序的本质。算法代表了程序的逻辑,数据结构代表了数据的组织形式。今天我们只探讨数据结构,准确的说只探讨java中的数据结构。什么是数据结构?百度百科:数据结构是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成。简单的讲就是能一批有相关性的数据元素存储在一块的容

2017-10-31 09:20:31 290

原创 把书读薄:大型网站技术架构-核心原理与案例分析(第四篇 架构师)

14 架构师领导艺术职能:架构设计,软件开发,管理职能(规划产品,估算人力资源,估算时间资源,安排人员职责分工,确定计划里程碑,指导工程师工作,过程风险评估与控制)。是工程师的榜样,要做好表率。14.1关注人而不是产品从逼迫式到自我驱动式。 寻找一个值得共同奋斗的目标,营造一个让大家都能最大限度发挥自我价值的工作氛围。关键词:给人一值得信赖的环境。14.2 发掘人的优秀关键词:培养人,给人上升进步

2017-10-29 09:54:44 2983

原创 把书读薄:大型网站技术架构-核心原理与案例分析(第三篇 案例)

4. 瞬时响应:网站的高性能架构5. 万无一失:网站的高可用架构6. 永无止境:网站的伸缩性架构7. 随需应变:网站的可扩展架构8. 固若金汤:网站的安全架构

2017-10-23 10:50:04 395

原创 把书读薄:大型网站技术架构-核心原理与案例分析(第二篇 架构)

4. 瞬时响应:网站的高性能架构5. 万无一失:网站的高可用架构6. 永无止境:网站的伸缩性架构7. 随需应变:网站的可扩展架构8. 固若金汤:网站的安全架构

2017-10-23 10:48:26 359

原创 把书读薄:大型网站技术架构-核心原理与案例分析(第一篇 概述)

1.大型网站架构演化诉求:高可用,高性能,易扩展,可伸缩,安全1.1大型网站软件系统的特点高并发,大流量;高可用;海量数据;用户分布广泛,网络情况复杂;安全环境恶劣;需求快速变更,发布频繁;渐进式发展;1.2大型网站架构演化发展历程大型网站的问题:庞大用户,高并发访问,海量数据。 目标:解决以上问题1.2.1初级阶段的网站架构一台机器满足需求:数据库,应用服务器,文件服务器1.2.2应用服务器与数

2017-10-23 09:46:54 508

转载 30了,程序员中的老司机们,30后的路该开向哪里

原文:叶顺平 待字闺中我是程序员,也是老司机。我已过而立之年,也还没过而立之年——年纪是到了,却还没有立,不论是立德、立言还是立功。你问我慌不慌,我问你路在何方。我当程序员数数日子,八年有余,自封老司机也不算太过分,至少写过的代码比吃过的盐多。那些碰到过的臭虫,被指派的需求,请求的网页,搜索的问题,都是沿路的风景。你问我风景美不美,我问你前路在何

2017-09-21 09:15:43 839 1

原创 spring cloud zuul - api网关

关键字路由、网关、负载背景服务注册发现巧秒的实现了各个微服务之间的松耦合调用,从而不考虑服务提供方实例节点的动态变化(增加或减少)。特别是配合配置中心、负载均衡、断路器等功能,完美的实现了微服务架构。所有这些微服务都是在一个安全的局域网内裸奔,不过也并无大碍,但是整个服务体系最终会面向客户,不可能完全闭关锁国自己嗨,一旦提供的服务需要暴露给外部使用就会带来一连串的问题:如:安全、路由、使用的复杂度、

2017-09-08 08:45:47 1085

原创 spring cloud hystrix dashboard

关键字背景上一节我们讲到了断路器(Hystrix ),Hystrix 可以在系统不稳定时及时断开外部请求,防止雪崩,以达到保护系统的整体稳定性。但是由于这些操作都由Hystrix 自动完成,开发人员无法获知到底哪些服务有问题,以及相应请求的成功率、响应时间等信息以备后续分析和改进。如果有一款工具可以让我们能直观的看到各服务的实时健康信息,就可以轻松的分析每个服务的调用情况,并能及时分析和解决对应的系

2017-09-06 21:10:44 983

原创 spring cloud hystrix - 断路器

关键字断路(熔断)背景项目的微服务化,会导致原本一个简单的调用变成多级链式甚至网状调用。接口间相互依赖的层次越深,只要调用链底层中任何一个环节出故障,都会导致上层级联故障,而且越底层越容易放大故障,这种现象称为雪崩。这种现象可能会拖垮整个项目,高并发依赖失败时如果没有隔离措施,就导致整个项目不可用。现实电路中,如果电流过大就有可能引发火灾,导致整个家庭甚至整个区域无法正常供电。因此家用电路中都会使用

2017-09-03 19:17:08 1585

原创 spring cloud ribbon - 负载均衡

1.关键字   负载均衡2.基本介绍   上一次讲到远程调用的客户端feign,feign的主要功能就是远程对象的本地代理或者用于远程调用的httpClient,减化远程调用的复杂性,让本地调用远程方法如同调用本地方法一样简单方便。但是在集群环境,远程服务可能有多个可用节点,那么调用时就需要负载均衡。ribbon是一个提供客户端负载均衡算法的策略库。     负载均

2017-08-30 20:53:35 34499

原创 spring cloud feign - RPC

1.关键字  负载均衡,httClient2.基本介绍Feign 是一个声明式web服务客户端. 它使得编写web服务非常简单.对程序员来说,只需要编写一个接口,并使用Feign提供的注解即可。Feign支持如:Feign 和 JAX-RS 注解. Feign 也支持可插拔式 编码、解码. Spring Cloud 对feign进行了二次封装,使其支质变Spring MVC 注解和

2017-08-15 21:11:08 6501 1

原创 spring cloud eureka - 注册中心

关键字背景hellow

2017-08-10 22:17:04 1549

原创 spring cloud - 概述

1.关键字微服务2.微服务 要了解spring cloud就绕不开微服务这个概念。因为spring cloud是spring为微服务架构思想做的一个一站式实现。从某种程度是可以简单的理解为,微服务是一个概念、一个项目开发的架构思想。spring cloud是微服务架构的一种java实现。什么是微服务?微服务没有一个标准统一的概念,个人理解为:微服务是一种可以让软件职责单

2017-08-07 08:48:10 3770

原创 spring boot 特性 - 基础

关键字1. 上期回顾上一节基本了解了一个spring boot项目的搭建过程,对spring boot也有了一个感性认识;过程中的哪些环节通过什么样的方式解决了我们第一节提到的问题。本节主要内容为简单了解spring boot的基础特性2. 目标      了解与SpringApplication类相关的基础特性FailureAnalyzer

2017-07-31 17:40:29 3940 1

原创 spring boot - hello world

关键字感性认识、搭建步骤1. 上期回顾上一章我们对spring boot有了一个初步的认识,了解了它产生的原因以及解决的问题。但是对于初学者过于理论化,今天按照国际惯例,我们从无到有的搭建一个hello world项目。在此之前回顾一下上期内容:spring boot的目标:简化spring项目从搭建到部署监控整个流程中的重要环节。上期关键字:简化。今天我们就用一个

2017-07-27 09:08:06 423 1

原创 spring boot 背景

关键字简化、为微服务(spring-cloud)提供技术基础1. 背景任何一门新技术的诞生,通常都是为了解决某段时期内的某个问题。选择学习或使用一门新技术时,最好首先了解它解决了什么问题,为何产生,后续是否选择这门新技术也能做到心中有数。下面我们就简单的聊聊spring boot有何特别之处。spring 丰富的框架和组件大大简化了java项目开发过程,经过多年的实践,

2017-07-26 13:29:46 4275

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除