2 zhangSir134

北京京东世纪贸易有限公司 已隐藏

不断思考,不断总结

等级
TA的排名 1w+

[设计模式] ------ 原型模式(浅拷贝和深拷贝)

原型模式原型模式就是使用复制对象,创建出新的对象,并且不需要知道创建的细节(比如类的属性的赋值等等)。基本使用(浅拷贝)常见的就是使用Object的clone方法。需要让类实现Cloneable并重写clone方法,才能使用。public class A implements Cloneable{ private String code; private String na...

2020-04-01 01:38:57

[设计模式] ------ 对比总结:简单工厂模式、工厂方法模式、抽象工厂模式

三个概念:简单工厂模式:就是一个简单的工厂类,根据不同的入参类型,返回不同的父类引用的子类对象。工厂方法模式:就是将生成哪个子类对象的过程,延迟到工厂子类实现,工厂父类只定义接口。抽象工厂模式:就是在工厂方法模式的基础上,将使用哪个工厂子类的逻辑,再使用简单工厂的模式生成。互相关系工厂方法模式,就是对简单工厂模式的改进。抽象工厂模式,就是对工厂方法的改进。优缺点简单工厂模式,就是简...

2020-03-31 02:07:02

[设计模式] ------ 抽象工厂模式

抽象工厂模式抽象工厂模式,就是对工厂方法模式加以改进而已,其实就是用简单工厂模式的套路创建各个工厂,后面和工厂模式就一模一样了。其实就是相当于将创建哪个工厂的权利再次放给调用端。调用端在调用的时候,指定用哪个工厂,那最后得到的对象,就是对应那个工厂的对象。抽象工厂模式 = 简单工厂模式 + 工厂方法模式。抽象工厂模式 = 工厂的工厂。抽象工厂模式优缺点:优点是再次聚合,对使用者来说,...

2020-03-31 01:44:24

[设计模式] ------ 工厂方法模式

工厂方法模式假设有一大类对象A1,A2,A3,A4…他们都有一个共同的父类A那么如何利用工厂方法模式创建这些对象呢?1、定义一个工厂的接口以及返回实体的方法interface Factory{ // 定义一个方法,返回A A create();}2、针对每个对象,定义创建他们的工厂,每个工厂都实现第一步的工厂接口class A1Factory implement Factory...

2020-03-30 21:09:11

[设计模式] ------ 观察者模式和他的升级版发布订阅模式

观察者模式,发布订阅模式,最快理解

2020-03-26 22:36:49

[设计模式] ------ 建造者模式(对比模板模式)

建造者模式建造者模式,是为了构建一类具有相同执行顺序的但实现不一样,最后产生不一样的东西的效果。举个例子,比如写作文。每次写作文,我们大致有写标题,写开头,写内容,写结尾这些步骤。public abstract class Builder { abstract String 写标题(); abstract String 写开头(); abstract Stri...

2020-03-25 23:49:58

为什么要用Elasticsearch

概念Elasticsearch 简称ES,是一个分布式全文检索引擎。比如github的代码检索就是用了ES,百度也有用ES。由于Lucene的api相对比较复杂,所以ES其实是对Lucene的封装简化,并且提供了一套比较简单的api文档。es官网使用场景主要是海量数据检索,关键词:海量。因为只有数据量大了才能体现ES的优势。以下是我能想到的或者是之前有遇到过的场景:1、常用的经典组...

2020-03-24 00:38:24

jenkins+k8s实现持续集成

持续集成(CI)集成是指开发人员将代码提交到git或svn持续集成是指让开发人员持续提交代码,写一点就提交一点,这样就会更早的发现代码差异每次集成,都可以通过自动化的构建来验证自动化构建包括:编译,打包,部署,自动化测试准备docker环境,资源和k8s集群可以参考之前的文章docker基础k8s集群构建jenkins安装jenkins是一个持续集成的工具,实际上就是一个任务调...

2020-03-21 23:24:25

kubernetes(k8s)

应用部署演进过程我们从上图可以看到,应用越来越看重应用本身了,慢慢的不受物理机的差异,不受操作系统的差异,开发者可以花更多精力去到应用本身。k8s概念简单理解,k8s就是传统的云平台上的linux。kubernetes是一个以Google Borg(google内部容器管理平台)为原型,重新设计和实现的容器管理和调度编排工具。2014年由谷歌开源。同样功能的工具还有docker公司的...

2020-03-21 00:51:20

讲讲我对比特币和区块链的认知,挖矿不难,挖到难

惊!!!比特币挖矿难,尽然是因为这些原因

2020-03-20 01:51:15

docker基础

概念docker是一个开源项目,可以将任何应用,以轻量级容器的形式打包,发布和运行。可以粗糙的理解为一个轻量级的虚拟机,因为二者都可以将一个应用放在独立的环境中运行。也可以理解为开了挂的chroot,chroot是对应用程序做了文件系统的分离。但,docker不是虚拟机,也不是chroot。下面是一个docker的架构图核心技术点参考之前的一篇docker容器核心技术点mac安...

2020-03-19 00:36:53

synchronized锁

现在集群,分布式,微服务这么火,基本上也不会有单机服务了,所以synchronized基本上就废了,但不影响我们再回忆一下他的一些思想,很多东西,万变不离其宗。

2020-03-17 23:52:49

skywalking(4)

Byte Buddy库统计方法调用时长1、增强字节码2、拦截器拦截类似于spring的aop,只不过skywalking不能用aop,所以用Byte Buddy技术代替Open Trace整个trace调用,是由多个span组成的有向无环图(就是调用关系图)。spen就是逻辑运行单元,有开始时间和结束时间,一般就是服务的某个实例的一个逻辑片段。每个span可以有多个键值对的log和...

2020-03-17 01:54:34

skywalking(3)

javaagent原理skywalking实现代码无侵入,就是用了javaagentjavaagent是java命令的一个参数,可以用于指定一个jar包这个jar包中的MANIFEST.MF中,必须指定Premain-Class项Premain-Class指定的那个类,必须实现premain()方法当虚拟机启动的时候,在执行main函数前,JVM会先运行这个premain()方法使用j...

2020-03-17 01:26:35

skywalking(2)

安装1、安装jdk2、安装es3、安装skywalking(backend和ui)应用启动时添加探针(agent)使用java -javaagent:/aa/bb/boot.jar -Dserver.port=8081 -jar boot.jar启动项目jar包查看调用链,追踪等仪表盘,拓扑图,追踪,告警,指标对比常用配置覆盖避免到处修改配置,可以直接在启动时候用启动参数配...

2020-03-17 01:09:44

skywalking(1) 基于opentracing规范的APM系统

skywalking是: 基于opentracing规范的APM系统skywalking解决了什么问题?skywalking解决微服务架构下,多服务直接复杂的调用关系了解dapper,分布式链路追踪系统dapper又是谷歌论文,各公司又相继模仿。(我为什么会说又???)APM系统各个公司借鉴谷歌的dapper,实现了自己的分布式链路追踪系统,统称APM系统。OpenTracing...

2020-03-16 23:37:39

一个技术负责人应该知道的规范细节

前言:作为一个技术负责人,不能只定义一个项目的技术选型,而不注意开发细节。开发前,如果不预先定义好规范,那么项目中就会乱成一锅粥。每个人自成一派,单看每个人的模块,貌似都没啥大问题,但合在一起,就明显感觉是多个人开发的。这个时候,等发发现问题,再让某些人去改的话,一方面容易引起coder的反对,另一方面也会减少技术负责人的威望。因为一般出现这种情况,大部分原因是项目的技术负责人不合格,没有把事...

2020-03-09 20:55:55

浅谈权限(功能权限&数据权限)

一般企业上的权限部分,都是区分为功能权限和数据权限。功能权限:功能权限,就是用户登录后,能看到哪些菜单,能看到哪些按钮,能执行哪些操作的权限。一般,功能权限,已经都有很成熟的业内方案和框架了。比如有RBAC(Role-Based Access Control,基于角色的访问控制)。有三个概念:用户,角色,资源。用户就是用户,给用户配置角色,给角色配置资源,这些菜单的访问权限就是资源。...

2020-02-28 11:38:18

[java基础] --- java开发,service层是不是一定要写接口

估计很多java开发的同学都遇到过,service层要写一个接口,然后再写接口的实现类,但这个接口从项目开始到项目倒闭,都不会有第二个实现,那为什么不直接写个service类呢?如果你还没想过这个问题,那要好好想想了。网友支持接口模式的,大概原因如下:1、现在大部分工程都是基于spring框架开发的,我们知道,spring的开发风格就是面向接口的,所以很多人照着搬过来了。2、接口就是多态,加...

2020-02-20 10:42:34

[配置中心] --- consul

mac下载安装consul1、下载:consul下载地址2、解压到目录/usr/local/bin下3、执行consul文件4、验证:控制台输入consul验证5、启动consul:consul agent -devconsul简单介绍consul可以作为一个注册中心(主),同时又可以作为配置中心(辅)consul底层是实现了raft一致性协议,所以cap中,consul是cp,也...

2020-02-15 10:18:36

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 脉脉勋章
    脉脉勋章
    绑定脉脉第三方账户获得
  • 签到达人
    签到达人
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 技术圈认证
    技术圈认证
    用户完成年度认证,即可获得
  • 阅读者勋章Lv2
    阅读者勋章Lv2
    授予在CSDN APP累计阅读博文达到7天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 1024勋章
    1024勋章
    #1024程序员节#活动勋章,当日发布原创博客即可获得
  • 勤写标兵Lv2
    勤写标兵Lv2
    授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。