自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 设计模式:抽象工厂模式,结合类图秒懂!

通过前篇文章《设计模式:工厂模式,解除耦合的利器》的介绍,我们对工厂模式有了深入的了解,今天继续介绍一种特殊的工厂模式,也就是抽象工厂模式。定义抽象工厂模式:提供一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类。抽象工厂模式又称为Kit模式,属于对象创建型模式,是工厂方法模式的升级版,在有多个业务品种、业务分类时,通过抽象工厂模式产生需要的对象是一种非常好的解决方式。抽象工厂模式包含了几个角色:AbstractFactory:用于声明生成抽象产品的方法ConcreteF...

2020-06-30 20:21:11 464

转载 我的那些年(13)~主推微服务架构

我的那些年(13)~主推微服务架构整个系统走向微服务架构网关服务注册与发现配置中心熔断器链路跟踪授权与鉴权服务间的通讯-同步feign服务间的通讯-异步消息日志收集个系统走向微服务架构公司系统比较多,耦合度比较大,将这些模块进行拆分,各个负责自己的模块,减少相互之间的直接依赖,版本迭代互不影响,做到最小粒度的部署,这就是微服务,也是未来软件架构与设计的一个趋势!我们系统的流程图graph TDclassDef red fill:#f90,stroke:#555,str...

2020-06-30 08:20:04 87

转载 Spring Cloud Alibaba | Sentinel: 服务限流高级篇

Spring Cloud Alibaba | Sentinel: 服务限流高级篇Springboot: 2.1.6.RELEASESpringCloud: Greenwich.SR1如无特殊说明,本系列文章全采用以上版本目录Spring Cloud Alibaba | Sentinel: 服务限流高级篇1. 熔断降级1.1 降级策略2. 热点参数限流2.1 项目依赖2.2 热点参数规则3. 系统自适应限流3.1 背景3.2 系统规则3.3 原理3.4 示例4. 黑白名单控制4....

2020-06-29 20:21:09 257

转载 支撑马蜂窝会员体系全面升级背后的架构设计

流量红利正逐渐走向终结,这已经不再是什么秘密。后互联网时代,如何维系住用户群,提升用户在平台上的体验是整个行业都需要考虑的事情。正是出于这一原因,现在全行业都在关注会员体系的搭建,这也是马蜂窝 2019 年重点投入的方向之一。面对这个全行业都在发力的会员市场,要对「马蜂窝特色」的会员体系进行有力的支撑,无疑对会员体系的架构设计提出更高的要求。马蜂窝会员体系建设从 2018 年 9 月份开始启动,经过前期对会员身份和会员权益的摸索,伴随业务的快速发展,到 2019 年上半年,为了让更多用户体验到...

2020-06-28 20:21:13 1712

转载 java 路径问题

java路径存在两种写法"/"和"\\"String path="D:\\1.txt"; String path1="D:/1.txt"; ①正斜杠”/”的话,一般在配置文件路径时,指向下一个路径只要使用一个②而反斜杠”\”的话,在配置文件路径时,由于它本身在java中有特殊意义,作为转义符而存在,所以具体意义上的反斜杠要两个例如:"D\\demo\\1.txt";这里的第一个反斜杠是作为转义符存在的,第二个才是真正意义上的反斜杠③在windows平台下可以认为是...

2020-06-28 15:21:05 119

转载 基于SpringCloud实现Shard-Jdbc的分库分表模式,数据库扩容方案

本文源码:GitHub·点这里 || GitEE·点这里一、项目结构1、工程结构2、模块命名shard-common-entity: 公共代码块shard-open-inte: 开放接口管理shard-eureka-7001: 注册中心shard-two-provider-8001: 8001 基于两台库的服务shard-three-provider-8002:8002 基于三台库的服务3、代码依赖结构4、项目启动顺序(1)shard-eu...

2020-06-28 08:20:09 173

转载 继承

在我们没接触编程时,听到继承这个词,或许脑海中会想到实际生活中的一个场景:谁继承了谁的遗产,然后我们可以认知到继承者拥有了被继承者留下的哪些东西。要注意的是:基于生活中这种情况,交代了【被继承者】已死亡的事实,而在程序中不会存在【被继承者】已”死亡“的这种说法定义,在程序中讨论继承时,只是用来描述两者之间的关系以及建立了这种继承关系后会有哪些特点。所以在程序中讨论继承者与被继承者时,根据两者拥有什么东西来讨论的话,会更容易理解。上面提到的【拥有什么东西】在程序中来解释的话,所描述的就是【类】...

2020-06-26 15:21:07 65

转载 Reactor模式

什么是Reactor模式Reactor模式是一种设计模式,它是基于事件驱动的,可以并发的处理多个服务请求,当请求抵达后,依据多路复用策略,同步的派发这些请求至相关的请求处理程序。Reactor模式角色构成在早先的论文An Object Behavioral Pattern forDemultiplexing and Dispatching Handles for Synchronous Events中Reactor模式主要有五大角色组成,分别如下:Handle:操作系统提供的一种资源,用...

2020-06-26 08:20:07 92

转载 有哪些你不知道的阅读源码的技巧

1. 先看官方文档和架构图优秀的开源组件官方都会维护文档和架构图,这份架构图上或许有一些最重要的组件之间的关联关系、或许哪些功能的调用流程、或许有一些别的东西,但是相信我,这些东西一定都是从总体来描述这个项目的,这个一定是你要阅读源码时第一个要看的2. 再看项目的组织结构下载下来代码之后,不要急着开始。先看一下各个包名和包里的类名,对照着文档和类名先简单猜一下各个类的大致作用3. 找到启动demo,把项目跑起来阅读源码不仅仅是阅读,要让项目跑起来,去调试它,去观察和改变它的运行路线4....

2020-06-25 20:21:11 123

转载 Java,Python,前端,Linux,公众号等5T编程资源整理免费下载

场景我的CSDN:https://blog.csdn.net/BADAO_LIUMANG_QIZHI实现马士兵Java学习视频方立勋JavaWeb尚硅谷Python核心基础数据分析机器学习 MYSQL500本电子书 机器学习深度学习篇 软件测试全套教程 Bootsrap大数据从0开始到精通前端视频 1000+高颜值简历大礼包最新的java从基础到精通全套完整视频 python从入门到精通全套教程 爬虫框架Scrapy基础全套教程 微信公众号运营全套工具 ...

2020-06-25 08:20:07 153

转载 单例模式

1.单例模式:  这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象创建。这个类提供一种访问方式访问其唯一的对象的方式,  可以直接访问,不需要实例化该类对象。2.特点:  1.单例类只能有一个实例。  2.单例类必须自己创建自己的唯一实例。  3.单例类必须给所有其他对象提供这一实例。3.实现方法:  许多人可能值记得懒汉式和饿汉式,但是最好尽可能全记住,不然面试官问你还有没有其他的那就哑然了。  (1)懒汉式:线程不安全,加锁会影响效率 1 ...

2020-06-24 20:21:10 67

转载 web框架的本质

一 web框架的本质及自定义web框架  我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端,基于请求做出响应,客户都先请求,服务端做出对应的响应,按照http协议的请求协议发送请求,服务端按照http协议的响应协议来响应请求,这样的网络通信,我们就可以自己实现Web框架了。  通过对socket的学习,我们知道网络通信,我们完全可以自己写了,因为socket就是做网络通信用的,下面我们就基于socket来自己实现一个web框架,写一个...

2020-06-24 15:21:05 168

转载 系统架构设计师视频教程免费下载

场景系统架构设计师考试,属于全国计算机技术与软件专业技术资格考试(简称计算机软件资格考试)中的一个高级考试。系统架构设计师考试,考试不设学历与资历条件,不论年龄和专业,考生可根据自己的技术水平,选择合适的级别合适的资格,但一次考试只能报考一种资格。之前分享过一次mp3教程资源。https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/101040075实现1 JG:第01章 考试简介2 JG:第02章 信息系统基础3 JG:...

2020-06-24 08:20:09 852 2

转载 谈谈技术债务

文章首发于公众号 松花皮蛋的黑板报作者就职于京东,在稳定性保障、敏捷开发、高级JAVA、微服务架构有深入的理解最近在我身上发生了这么一件事。我主要负责内容创作的,提供了一个写入的逻辑接口,但是在校验链中对图片来源空间包括域名进行了校验,你可以理解空间是一种业务名位置,空间涉及到精细化成本管理。接口使用者在测试时发现写入失败,因为图片不合法。那碰到这种情况,如果是你,你是另外提供一个图片转链服务呢?还是写入时判断是否是他在调用然后对其图片特殊对待呢?还是强调规范然后让使用者自行解决呢?接...

2020-06-23 15:21:06 173

转载 springcloud vue.js 微服务分布式 前后分离 集成代码生成器 shiro权限 activiti工作流

1.代码生成器:[正反双向](单表、主表、明细表、树形表,快速开发利器)freemaker模版技术 ,0个代码不用写,生成完整的一个模块,带页面、建表sql脚本、处理类、service等完整模块2.多数据源:(支持同时连接无数个数据库,可以不同的模块连接不同数的据库)支持N个数据源3.阿里数据库连接池druid,安全权限框架shiro(菜单权限和按钮权限), 缓存框架ehcache4.代码编辑器,在线模版编辑,仿开发工具编辑器5.调用摄像头拍照自定义裁剪编辑头像,头像图片色度调节6.web...

2020-06-23 08:20:06 305

转载 Tair分布式缓存

Tair是为了解决什么问题而生? Redis很好用,相比memcached多了很多数据结构,支持持久化。但是在很长一段时间里,原生是不支持分布式的。后来就出现了很多redis集群类产品,Tair是其中胜出的优秀作品之一。所以Tair的特性都是一些集群的特性,比如:容错、解决单点故障、跨机房管理、多集群管理、支持副本等。总而言之,是redis的高可用版本。Tair的架构 Tair的整体风格是简约实用,包括三个必选模块:client、configserver和datas...

2020-06-22 15:21:06 115

转载 设计模式之美—单例模式

单例模式什么是单例?该类只能有一个实例。该类负责创建自己的对象。在整个项目中都能访问到这个实例。应用场景读配置文件时,维护全局的Config类。线程池、连接池,统一进行分配和管理。网站的计数器,也可以采用单例模式实现,保持同步代码实现饿汉式  中国古代神话中有女娲补天一说,现在天破了,我们去求女娲补天。  女娲用英语来说是 A Goddess In Chinese Mythology,意思就是神话中的女神,女娲是独一无二的,现在我们就建一个女神类Goddess。1 p...

2020-06-21 20:21:10 100

转载 设计模式------中介者模式

中介者模式: 定义一个对象来封装一系列对象的交互.中介者的四个角色: 1.Mediator(抽象中介者) 2.ConcreteMediator(具体中介者) 3.Colleague(抽象同事类) 4.ConcreteColleague(具体同事类)举例说明: 例如公司开发一套CRM系统,该系统负责编辑客户的信息,其中有一个UI界面负责显示和修改客户信息.该界面包括列表框,组合框,文本框,在这三个框内编辑用户信息,其他框内的信息都要相应的改变.具体实现:...

2020-06-21 08:20:07 79

转载 Ember.js和Vue.js对比,哪个框架更优秀?

本文由葡萄城技术团队于博客园翻译并首发转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。JavaScript最初是为Web应用程序创建的。但是随着前端技术的发展,大多数开发人员更喜欢使用基于JavaScript的框架。它简化了你的代码以及使你能完成更多全栈工作,您几乎可以在任何框架中使用JavaScript。使用什么类型的框架决定了创建应用程序的便捷程度。因此,您必须慎重选择。在已经足够复杂的前端环境里,其中两个框架脱颖而出。我们会在本文中对Emb...

2020-06-19 15:21:05 132

转载 Fork/Join框架简介

1 引子Fork/Join框架是从Java1.7开始提供的一个并行处理任务的框架(本篇博客基于JDK1.8分析),它的基本思路是将一个大任务分解成若干个小任务,并行处理多个小任务,最后再汇总合并这些小任务的结果便可得到原来的大任务结果。从字面意思来理解Fork/Join框架,"Fork"表示“分叉”,它把大任务分解成多个小任务并行处理,而“Join”表示“联合”,它将这些小任务的结果合并在一起,最终得到大任务的结果。比如计算累加1+2+3+...+100000,可分解成100个子任务,每个子任...

2020-06-18 08:20:05 212

转载 java 异常覆盖时的特点

子类在覆盖父类时,如果父类的方法抛出异常,那么子类的覆盖方法,只能抛出父类的异常或者该异常的子类,或者不抛。如果父类方法抛出多个异常,那么子类在覆盖该方法时,只能抛出父类异常的子集。如果父类或者接口的方法中没有异常抛出,那么子类在覆盖方法时,也不可以抛出异常,如果子类方法发生异常,一定要进行try处理,一定不能抛。...

2020-06-17 20:21:10 151

转载 python初学者-使用for循环做一个九九乘法表

for i in range(1, 10): for j in range(1, i + 1): print(j, '*', i, '=', i * j, end=" ") #end= 以。。。结尾 print()

2020-06-17 15:21:07 810

转载 [题记]使数组唯一的最小增量-leetcode

题目:使数组唯一的最小增量给定整数数组 A,每次 move 操作将会选择任意A[i],并将其递增1。返回使 A中的每个值都是唯一的最少操作次数。示例 1:输入:[1,2,2]输出:1解释:经过一次 move 操作,数组将变为 [1, 2, 3]。示例 2:输入:[3,2,1,2,1,7]输出:6解释:经过 6 次 move 操作,数组将变为 [3, 4, 1, 2, 5, 7]。可以看出 5 次或 5 次以下的 move 操作是不能让数组的每个值唯一的。提示:0 <= ...

2020-06-17 08:20:08 61 1

转载 nu-book/zxing-cpp在windows7下的编译

环境安装: 1. 安装cmake:https://github.com/Kitware/CMake/releases/download/v3.17.0/cmake-3.17.0-win64-x64.msi,我下的是今天的最新版本。 2. 下载zxing-cpp项目项目代码:https://github.com/nu-book/zxing-cpp/releases。我下载的版本是V1.0.8. 3. Visual Studio 2017安装https://visualstudio.microsof...

2020-06-16 20:21:11 401

转载 【Java】反射调用与面向对象结合使用产生的惊艳

缘起我在看Spring的源码时,发现了一个隐藏的问题,就是父类方法(Method)在子类实例上的反射(Reflect)调用。初次看到,感觉有些奇特,因为父类方法可能是抽象的或私有的,但我没有去怀疑什么,这可是Spring的源码,肯定不会有错。不过我去做了测试,发现确实是正确的,那一瞬间竟然给我了一丝的惊艳。这其实是面向对象(继承与重写,即多态)和反射结合的产物。下面先来看测试,最后再进行总结。友情提示:测试内容较多,不过还是值得一看。具体方法的继承与重写先准备一个父类,有三个方法,分别是publ...

2020-06-15 15:21:08 96

转载 [题记]三维形体的表面积-leetcode

题目:三维形体的表面积在N*N的网格上,我们放置一些1 * 1 * 1的立方体。每个值v = grid[i][j]表示v个正方体叠放在对应单元格(i, j)上。请你返回最终形体的表面积。示例 1:输入:[[2]]输出:10示例 2:输入:[[1,2],[3,4]]输出:34示例 3:输入:[[1,0],[0,2]]输出:16示例 4:输入:[[1,1,1],[1,0,1],[1,1,1]]输出:32示例5:输入:[[2,2,2],[2,1,2]...

2020-06-15 08:20:04 85

转载 Python中文件以及文件夹的操作

文件的操作import os # 操作文件和文件夹的模块import shutil # 文件操作的高级模块1.创建一个空的文件夹file=open("youliang.txt","w",encoding="utf-8")file.close()2.对文件进行重命名操作 ******os.rename("youliang.txt","yl.txt")3.删除文件操作os.remove("yl.txt")4.创建文件夹名字为AAAos.mkdir("AAA")5.在指定的文件目录里面创建文件fi...

2020-06-14 15:21:05 143

转载 理解Go语言组件flag

作用主要用来实现命令行的参数解析,以达到实现以下效果的目的$ cmd -flagname 123使用方式flag是Go语言的内置包,能接收的参数类型主要有字符串、布尔和数值类型。方式一func main() { var ip = flag.String("ip", "127.0.0.1", "此处传入IP地址") flag.Parse() fmt.Println(*ip)}我们在main函数中调用flag.String函数来定义命令,该函数共有三个参数第一个参数是...

2020-06-14 08:20:07 338

转载 面试刷题11:java系统中io的分类有哪些?

随着分布式技术的普及和海量数据的增长,io的能力越来越重要,java提供的io模块提供了足够的扩展性来适应。我是李福春,我在准备面试,今天的问题是:java中的io有哪几种?java中的io分3类:1,BIO ,即同步阻塞IO,对应java.io包提供的工具;基于流模型,虽然直观,代码实现也简单,但是扩展性差,消耗资源大,容易成为系统的瓶颈;2,NIO,同步非阻塞io,对应java.nio包提供的工具,基于io多路复用;核心类: Channel ,Selector , Buffer , Char...

2020-06-13 15:21:06 237

转载 工作中常用到的Java集合类有哪些?

前言只有光头才能变强。文本已收录至我的GitHub精选文章,欢迎Star:https://github.com/ZhongFuCheng3y/3yJava集合是我认为在Java基础中最最重要的知识点了,Java集合是必须掌握的。我在实习/秋招面试的时候,只要是面到Java,那一定是少不了Java集合。作为一个新人,最关心的其实有一点:这个技术在工作中是怎么用的。换个说法:“工作中常用到的Java集合有哪些,应用场景是什么”如何入门Java集合以及每个常用的子类我在PDF整理好了...

2020-06-13 08:20:08 247

转载 SpringBoot自动装配原理

目录工作原理剖析自动配置生效工作原理剖析Spring Boot关于自动配置的源码在spring-boot-autoconfigure-x.x.x.x.jar中:Spring Boot的启动类上有一个@SpringBootApplication注解,这个注解是Spring Boot项目必不可少的注解。那么自动配置原理一定和这个注解有着千丝万缕的联系!@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Docume...

2020-06-11 20:21:13 101

转载 Python-String字符串操作

1 name='xioer-pipo' 2 3 print(name.capitalize()) #第一个字符大写 4 print(name.expandtabs()) 5 print(name.count('o')) #统计重复数据 6 print(name.endswith('}')) #最后是否为这个字符 7 print(name[name.find('mong'):8]) #切片 8 print(name.format(name='alex',year='23')...

2020-06-11 15:21:03 86

转载 FormData/Go分片/分块文件上传

FormData接口提供了一种表示表单数据的键值对的构造方式,经过它的数据可以使用XMLHttpRequest.send()方法送出,本接口和此方法都相当简单直接。如果送出时的编码类型被设为"multipart/form-data",它会使用和表单一样的格式。如果你想构建一个简单的GET请求,并且通过<form>的形式带有查询参数,可以将它直接传递给URLSearchParams。更多解释MDN:https://developer.mozilla.org/zh-CN/do...

2020-06-11 08:20:07 858

转载 Centos7下部署Python项目

Centos7下部署Python项目一、配置系统环境yum -y install gcc gcc-c++ 编译的时候yum -y install wgetyum -y install zlib zlib-devel openssl openssl-devel ncurses-devel sqlite sqlite-devel bzip2-deve readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-deve...

2020-06-10 08:20:05 944

转载 Django 对多对多字段进行批量add

class OrderGoodsInfo(models.Model): .......class OrderShipping(models.Model): order = models.ManyToManyField(OrderGoodsInfo, blank=True, verbose_name="物流ID")....views.pycontainer_orders_id = [] for order in container_obj.orders.all()...

2020-06-09 08:20:05 929

转载 面试刷题16:synchronized和ReentrantLock的区别?

java并发编程是程序员基本技能。我是李福春,我在准备面试,今天的题目是:synchronized和ReentrantLock的区别?这两货都是java提供的同步机制,提供了互斥语义和可见性,当一个线程获得资源之后,其它竞争资源的线程必须等待或者堵塞。区别如下:线程安全线程安全说的是多线程场景下,共享可修改状的数据的正确性。从语义来看,保证线程安全的方法有2:1, 封装起来,数据不共享,私有化。2, 数据不可修改,自然不存在线程不安全。final,immutable;线程安全的3个特性:隔离...

2020-06-08 15:21:07 191

转载 Python_常见内置函数

1. 方法注:class(类)是具有相同的属性和方法的对象的集合。2. 例子(1)数据/集合类型str(object=''); str(object=b'', encoding='utf-8', errors='strict')int(x, base=10)float(x=0)complex(real=0, imag=0) 1 >>> str(123) 2 '123' 3 >>> str(['a', 'b', 'c']) 4 "['...

2020-06-07 20:21:11 194

转载 VC6.0设置注释快捷键

第一步:工具栏上右键选择Customize(定制),选择“Add-ins and Macro Files(附加项和宏文件)”页,把SAMPLE前面打上钩。第二步:选择“Commands(命令)”页,Category(类别)选Macros,然后在Commands中把CommentOut(注释)拖曳到工具栏快捷方式。第三步:选择“Keyboard(键盘)”tab页,还是Category(工具栏)选Macros,选中CommentOut(注释),然后换到“Press new ...

2020-06-07 08:20:05 278

转载 C语言中%与/

%:模运算符,或者称求余运算符,%两侧均应为整型数据,如9%4=1/:除法运算符 9/4=2例1:#include <stdio.h> main(){ int a,b,c;a=10;b=20;c=10%20;printf("%d %d %d",a,b,c);}

2020-06-06 20:21:12 1408

转载 【视频+图文】Java经典基础练习题(三):输入3个整数,并将其由小到大输出

目录一、视频讲解二、思路分析总结:三、代码+详解+结果四、彩蛋能解决题目的代码并不是一次就可以写好的我们需要根据我们的思路写出后通过debug模式找到不足再进行更改多次测试后才可得到能解决题目的代码!通过学习,练习【Java基础经典练习题】,让我们一起来培养这种解决问题思路。一、视频讲解点击这里即可去B站观看二、思路分析Q1:如何从键盘输入3个整数?A1: 键盘输入需使用Scanner语句,使用Scanner语句需以下4步骤导包(可以在第二步创建后按住“Ctrl+shift...

2020-06-06 15:21:04 445

空空如也

空空如也

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

TA关注的人

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