自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

我是60岁程序员

我还很年轻

  • 博客(100)
  • 资源 (6)
  • 收藏
  • 关注

原创 不必比较,在自己的时区前行

不必比较,在自己的时区前行纽约时间比加州时间早三个小时,New York is 3 hours ahead of California,但加州时间并没有变慢。but it does not make California slow.有人22岁就毕业了,Someone graduated at the age of 22,但等了五年才找到稳定的工作!but waited 5 years before securing a good job!有人25岁就当上CEO,Someone b

2020-12-22 09:41:06 421 3

原创 安装部署Apache Doris集群

搭建doris

2022-10-25 23:31:32 1802 1

原创 22.行为型-职责链模式

1.基本介绍1)职责链模式(Chain of Responsibility Pattern), 又叫 责任链模式,为请求创建了一个接收者对象的链(简单示意图)。这种模式对请求的发送者和接收者进行解耦。2)职责链模式通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接收者,依此类推。3)这种类型的设计模式属于行为型模式2.原理图1)Handler : 抽象的处理者, 定义了一个处理请求的接口, 同时含义另外 Handler2)Concret

2020-11-15 16:20:30 189

原创 21.行为型-策略模式

1.基本介绍1)策略模式(Strategy Pattern)中,定义算法族(策略组),分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立于使用算法的客户2)这算法体现了几个设计原则,第一、把变化的代码从不变的代码中分离出来;第二、针对接口编程而不是具体类(定义了策略接口);第三、多用组合/聚合,少用继承(客户通过组合方式使用策略)。package com.zjc.designmode.strategy;/*** @author : zoujc* @date : 2020/11/12

2020-11-15 16:19:58 124

原创 20.行为型-状态模式

1.基本介绍1)状态模式(State Pattern):它主要用来解决对象在多种状态转换时,需要对外输出不同的行为的问题。状态和行为是一一对应的,状态之间可以相互转换2)当一个对象的内在状态改变时,允许改变其行为,这个对象看起来像是改变了其类2.原理类图1)Context 类为环境角色, 用于维护 State 实例,这个实例定义当前状态2)State 是抽象状态角色,定义一个接口封装与 Context 的一个特点接口相关行为3)ConcreteState 具体的状态角色,每个子类实现一个与

2020-11-15 16:18:55 113

原创 19.行为型-解释器模式

1.基本介绍1).在编译原理中,一个算术表达式通过词法分析器形成词法单元,而后这些词法单元再通过语法分析器构建语法分析树,最终形成一颗抽象的语法分析树。这里的词法分析器和语法分析器都可以看做是解释器2).解释器模式(Interpreter Pattern):是指给定一个语言(表达式),定义它的文法的一种表示,并定义一个解释器, 使用该解释器来解释语言中的句子(表达式)(提供了评估语言的语法或表达式的方式,这种模式实现了一个表达式接口,该接口解释一个特定的上下文。)3).应用场景应用可以将一个需要解释

2020-11-15 16:17:40 99

原创 18.行为型-备忘录模式

1.基本介绍a.备忘录模式(Memento Pattern)在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态b.可以这样理解备忘录模式:现实生活中的备忘录是用来记录某些要去做的事情,或者是记录已经达成的共同意见的事情,以防忘记了。而在软件层面,备忘录模式有着相同的含义,备忘录对象主要用来记录一个对象的某种状态,或者某些数据,当要做回退时,可以从备忘录对象里获取原来的数据进行恢复操作c.备忘录模式属于行为型模式2.原理图a. or

2020-11-15 16:17:01 82

原创 17.行为型-中介者模式

1.基本介绍a.中介者模式(Mediator Pattern),用一个中介对象来封装一系列的对象交互。中介者使各个对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互b.中介者模式属于行为型模式,使代码易于维护c.比如 MVC 模式,C(Controller 控制器)是 M(Model 模型)和 V(View 视图)的中介者,在前后端交互时起到了中间人的作用2.原理类图a.Mediator 就是抽象中介者,定义了同事对象到中介者对象的接口b.Colleague 是抽象同

2020-11-15 16:15:20 81

原创 16.行为型-观察者模式

1.基本介绍当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知依赖它的对象。观察者模式属于行为型模式。2.Jdk 的 Observable 类就使用了观察者模式...

2020-11-15 16:13:56 74

原创 15.行为型-迭代器模式

1.基本介绍a.迭代器模式(Iterator Pattern)是常用的设计模式,属于行为型模式b.如果我们的集合元素是用不同的方式实现的,有数组,还有 java 的集合类,或者还有其他方式,当客户端要遍历这些集合元素的时候就要使用多种遍历方式,而且还会暴露元素的内部结构,可以考虑使用迭代器模式解决。c.迭代器模式,提供一种遍历集合元素的统一接口,用一致的方法遍历集合元素,不需要知道集合对象的底层表示,即:不暴露其内部的结构。2.原理图a. Iterator : 迭代器接口,是系统提供,含义 ha

2020-11-15 16:12:57 72

原创 14.行为型-访问者模式

1.基本介绍a.访问者模式(Visitor Pattern),封装一些作用于某种数据结构的各元素的操作,它可以在不改变数据结构的前提下定义作用于这些元素的新的操作。b.主要将数据结构与数据操作分离,解决 数据结构和操作耦合性问题c.访问者模式的基本工作原理是:在被访问的类里面加一个对外提供接待访问者的接口d.访问者模式主要应用场景是:需要对一个对象结构中的对象进行很多不同操作(这些操作彼此没有关联),同时需要避免让这些操作"污染"这些对象的类,可以选用访问者模式解决2.原理图a. Visito

2020-11-13 22:34:18 80

原创 13.行为型-命令模式

1.基本介绍a.命令模式(Command Pattern):在软件设计中,我们经常需要向某些对象发送请求,但是并不知道请求的接收者是谁,也不知道被请求的操作是哪个,我们只需在程序运行时指定具体的请求接收者即可,此时,可以使用命令模式来进行设计b.命名模式使得请求发送者与请求接收者消除彼此之间的耦合,让对象之间的调用关系更加灵活,实现解耦。c.在命名模式中,会将一个请求封装为一个对象,以便使用不同参数来表示不同的请求(即命名),同时命令模式也支持可撤销的操作。d.通俗易懂的理解:将军发布命令,士兵去执

2020-11-13 22:32:59 80

原创 12.行为型-模板方法模式

1.基本介绍a.模板方法模式(Template Method Pattern),又叫模板模式(Template Pattern),z 在一个抽象类公开定义了执行它的方法的模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。b.简单说,模板方法模式 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构,就可以重定义该算法的某些特定步骤c.这种类型的设计模式属于行为型模式。场景: 制作不同配料的豆浆package com.zjc.desig

2020-11-13 22:31:02 85

原创 11.结构型-代理模式

1.基本介绍a.代理模式:为一个对象提供一个替身,以控制对这个对象的访问。即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能。b.被代理的对象可以是远程对象、创建开销大的对象或需要安全控制的对象c.代理模式有不同的形式, 主要有三种 静态代理、动态代理 (JDK 代理、接口代理)和 Cglib 代理 (可以在内存动态的创建对象,而不需要实现接口, 他是属于动态代理的范畴) 。d.原理图2.静态代理静态代理在使用时,需要定义接口或

2020-11-12 20:48:10 76

原创 10.结构型-享元模式

1.基本介绍a.享元模式(Flyweight Pattern) 也叫 蝇量模式: 运用共享技术有效地支持大量细粒度的对象b.常用于系统底层开发,解决系统的性能问题。像数据库连接池,里面都是创建好的连接对象,在这些连接对象中有我们需要的则直接拿来用,避免重新创建,如果没有我们需要的,则创建一个c.享元模式能够解决重复对象的内存浪费的问题,当系统中有大量相似对象,需要缓冲池时。不需总是创建新对象,可以从缓冲池里拿。这样可以降低系统内存,同时提高效率d.享元模式经典的应用场景就是池技术了,String 常

2020-11-12 20:43:57 84

原创 9.结构型-外观模式

1.基本介绍a.外观模式(Facade),也叫“过程模式:外观模式为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用b.外观模式通过定义一个一致的接口,用以屏蔽内部子系统的细节,使得调用端只需跟这个接口发生调用,而无需关心这个子系统的内部细节c.外观模式可以理解为转换一群接口,客户只要调用一个接口,而不用调用多个接口才能达到目的。比如:在 pc 上安装软件的时候经常有一键安装选项(省去选择安装目录、安装的组件等等),还有就是手机的重启功能(把关机和启动

2020-11-12 20:41:08 79

原创 8.结构型-组合模式

1.组合模式介绍a.组合模式(Composite Pattern),又叫部分整体模式,它创建了对象组的树形结构,将对象组合成树状结构以表示“整体-部分”的层次关系。b.组合模式依据树形结构来组合对象,用来表示部分以及整体层次。c.这种类型的设计模式属于结构型模式。d.组合模式使得用户对单个对象和组合对象的访问具有一致性,即:组合能让客户以一致的方式处理个别对象以及组合对象2.原理类图a. Component :这是组合中对象声明接口,在适当情况下,实现所有类共有的接口默认行为,用于访问和管理C

2020-11-11 21:29:27 153

原创 7.结构型-装饰者模式

组和问题(比如:星巴克咖啡(当单品咖啡+其他赠品组和太多会导致类爆炸))1、装饰模式(Decorator)也叫包装器模式(Wrapper)。2、装饰模式降低系统的耦合度,可以动态的增加或删除对象的职责,并使得需要装饰的具体构建类和具体装饰类可以独立变化,一便增加新的具体构建类和具体装饰类。优点1、扩展对象功能,比继承灵活,不会导致类个数急剧增加。2、可以对一个对象进行多次装饰,创造出不同行为的组合,得到功能更加强大的对象。3、具体构建类和具体装饰类可以独立变化,用户可以根据需要自己增加新的具体构

2020-11-11 21:26:37 98 1

原创 6.结构型-桥接模式

1.基本介绍a. 桥接模式(Bridge 模式)是指:将实现与抽象放在两个不同的类层次中,使两个层次可以独立改变。b. 是一种结构型设计模式c. Bridge 模式基于类的最小设计原则,通过使用封装、聚合及继承等行为让不同的类承担不同的职责。它的主要特点是把抽象(Abstraction)与行为实现(Implementation)分离开来,从而可以保持各部分的独立性以及应对他们的功能扩展2.原理图a. Client 类:桥接模式的调用者b.抽象类(Abstraction) :维护了 Implem

2020-11-11 21:23:00 109

原创 5.结构型-适配器模式

1.基本介绍(电源插头转换器)a.适配器模式(Adapter Pattern)将某个类的接口转换成客户端期望的另一个接口表示,主的目的是兼容性,让原本因接口不匹配不能一起工作的两个类可以协同工作。其别名为包装器(Wrapper)b.适配器模式属于结构型模式c.主要分为三类:类适配器模式、对象适配器模式、接口适配器模式2.工作原理a.适配器模式:将一个类的接口转换成另一种接口.让原本接口不兼容的类可以兼容b.从用户的角度看不到被适配者,是解耦的c.用户调用适配器转化出来的目标接口方法,适配器再调

2020-11-10 21:38:09 72

原创 4.创建型-建造者模式

1.建造者模式介绍(指挥者能够指挥建造不同的房子)a.建造者模式(Builder Pattern) 又叫生成器模式,是一种对象构建模式。它可以将复杂对象的建造过程抽象出来(抽象类别),使这个抽象过程的不同实现方法可以构造出不同表现(属性)的对象。b.建造者模式 是一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容就可以构建它们, 用户不需要知道内部的具体构建细节。2.建造者模式的四个角色Product(产品角色): 一个具体的产品对象。Builder(抽象建造者): 创建一个 P

2020-11-10 21:33:54 76

原创 3.创建型-原型模式

1.原型模式(Prototype 模式)是指: 1.用原型实例指定创建对象的种类,并且通过拷贝这些原型,创建新的对象 2.原型模式是一种创建型设计模式,允许一个对象再创建另外一个可定制的对象,无需知道如何创建的细节 3.工作原理是:通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象拷贝它们自己来实施创建,即 对象.clone() 4.形象的理解:孙大圣拔出猴毛, 变出其它孙大圣2.UML类图原理结构图说明Prototype : 原型类,声明一

2020-11-10 21:29:06 63

原创 2.创建型-工厂模式

1.简单工厂模式介绍a.简单工厂模式是属于创建型模式,是工厂模式的一种。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式b. 简单工厂模式:定义了一个创建对象的类,由这个类来封装实例化对象的行为c. 在软件开发中,当我们会用到大量的创建某种、某类或者某批对象时,就会使用到工厂模式.package com.zjc.designmode.factory;/*** @author : zoujc* @date : 2020/11/9* @de

2020-11-09 21:45:16 78

原创 1.创建型-单例模式

1.什么是单例模式单例模式是指在内存中只会创建且仅创建一次对象的设计模式。在程序中多次使用同一个对象且作用相同时,为了防止频繁地创建对象使得内存飙升,单例模式可以让程序仅在内存中创建一个对象,让所有需要调用的地方都共享这一单例对象。2.单例模式有八种方式1).饿汉式(静态常量): 可能造成内存浪费(JDK中Runtime类用到此写法)/*** @author : zoujc* @date : 2020/11/9* @description : 饿汉式:静态常量:类加载时候就创建,可能会造成内存

2020-11-09 21:40:00 74

原创 0.设计模式七大原则及其分类

设计模式是某类问题的通用的解决方案1.设计模式的目的1.代码重用性2.可读性3.可扩展性4.可靠性5.使程序呈现高内聚,低耦合的特性2.设计模式七大原则1.单一职责原则 1). 降低类的复杂度,一个类只负责一项职责。 2). 提高类的可读性,可维护性 3). 降低变更引起的风险 4). 通常情况下,我们应当遵守单一职责原则,只有逻辑足够简单,才可以在代码级违反单一职责原则;只有类中方法数量足够少,可以在方法级别保持单一职责原则2.接口隔离原则. 接口隔离,最小化

2020-11-09 21:32:40 89

转载 快速入门流处理框架Flink --实时报表场景的应用

随着业务的发展,数据量剧增,我们一些简单报表大盘类的任务,就不能简单的依赖于RDBMS了,而是依赖于数仓之类的大数据平台。  数仓有着巨量数据的存储能力,但是一般都存在一定数据延迟,所以要想完全依赖数数仓来解决实时报表问题,是困难的。  其实,所谓的实时报表,往简单了说就是: 对现在的一些数据进行加减乘除聚合后,得到的一串与时间相关的数字。  所以,这类问题的关键点应该在于这个实时数据怎么来,以及怎么处理这些实时数据。  一般地,做这类报表类工作,最基本的原则就是: 业务无侵入性,然后.

2020-09-16 14:38:04 299

转载 快速入门流处理框架Flink --实时报表场景的应用

  随着业务的发展,数据量剧增,我们一些简单报表大盘类的任务,就不能简单的依赖于RDBMS了,而是依赖于数仓之类的大数据平台。   数仓有着巨量数据的存储能力,但是一般都存在一定数据延迟,所以要想完全依赖数数仓来解决实时报表问题,是困难的。   其实,所谓的实时报表,往简单了说就是: 对现在的一些数据进行加减乘除聚合后,得到的一串与时间相关的数字。   所以,这类问题的关键点应该在于这个实时数据怎...

2020-09-16 14:33:00 354

原创 Hadoop中 -put命令的出现两个一样的目录

直接贴图遇到的问题解决:hdfs dfs -put /xxx/xx.csv /xxx原因:如果是空目录,或者说还没用此文件夹在hdfs上面,那么先创建文件夹后,在put数据就不要加 -f ,如果想要覆盖写入(强行覆盖之前的文件),此时你已经之前上传过了文件,并且有文件夹了,所以你可以加-f...

2020-05-12 23:22:38 826

转载 Hive分析窗口函数之GROUPING SETS,CUBE和ROLLUP

这几个分析函数通常用于OLAP中,不能累加,而且需要根据不同维度上钻和下钻的指标统计。环境信息:Hive版本为apache-hive-0.14.0-binHadoop版本为hadoop-2.6...

2020-03-23 17:56:45 631 1

转载 Hive中with cube、with rollup、grouping sets用法

表结构CREATE TABLE test (f1 string, f2 string, f3 string, ...

2020-03-23 15:54:13 431

原创 kafka最全组件详解

(1)producer:消息生产者,发布消息到 kafka 集群的终端或服务。(2)broker:kafka 集群中包含的服务器。(kafka实例)(3)topic:每条发布到 kafka 集群的消息属于的类别,即 kafka 是面向 topic 的。(4)partition:a)partition 是物理上的概念,每个 topic 包含一个或多个 partition。kafka 分配的单...

2020-03-19 10:54:29 1948

转载 Flink流计算编程--watermark(水位线)简介

【本文转自Flink流计算编程--watermark(水位线)简介】1、watermark的概念watermark是一种衡量Event Time进展的机制,它是数据本身的一个隐藏属性。通常基于...

2020-03-19 10:44:00 551

转载 impala与hive的比较以及impala的优缺点

 最近读的几篇关于impala的文章,这篇良心不错:https://www.biaodianfu.com/impala.html(本文截取部分内容)    &n...

2020-03-14 16:27:58 1004

原创 Hive中行转列、列转行(UDAF 与 UDTF)

1、行转列表结构:create table person_info( name string, constellation string, blood_type string)row format delimited fields terminated by “\t”;load data local inpath “person_info.dat” into table person_i...

2020-03-09 22:02:12 512

原创 Hive累计求和

create table t_access_times(username string,month string,salary int)row format delimited fields terminated by ‘,’;load data local inpath ‘/home/hujian/t_access_times.dat’ into table t_access_times;...

2020-03-09 21:56:53 3326

转载 clickhouse简单了解及使用

一、clickhouse:日处理记录数:十亿级1.开源的列式存储的数据管理系统2.支持线性扩展3.简单方便4.高可靠性5.容错(支持多主机异步复制,可以跨多个数据中心部署,单个节点或整个数据中心的停机时间不会影响系统的读写性能)二、关键功能-应用场景 特性:深度存储 广告网络和RTB 采用列式存储向量化查询执行 电信 数据压缩数据压缩 ...

2018-11-30 10:36:21 23976 4

转载 clickhouse SQL查询语句 【译自Github 英文文档】

内容有缩减,原文请点击这里创建数据库CREATE DATABASE [IF NOT EXISTS] db_name创建表CREATE TABLE可以有几种形式。创建一张表,最好指定引擎结构CREATE [TEMPORARY] TABLE [IF NOT EXISTS] [db.]name [ON CLUSTE...

2018-11-30 10:23:42 3248

原创 java版数据结构与算法—堆、堆排序

优先级队列:用有序数组实现,删除最大数最快O(1),插入最慢用堆实现优先级队列,插入和删除都很快O(logN)堆:是一种树,一种特殊的二叉树特点:1.他是完全的二叉树,除了树的最后一层节点不需要是满的,其他一层从左到右都是满的。2.它常常用一个数组实现。3.堆中每一个节点都满足堆的条件,父节点的关键字要大于所有子节点。堆是弱序,(接近没有排序,不支持遍历),最大好处,快速移除最大节点...

2018-11-28 22:39:04 245

原创 java版数据结构与算法—哈希表(再哈希法)

package com.zoujc.hashDouble;/** * 哈希表:再哈希法 */public class DataItem { private int iData; public DataItem(int data){ iData = data; } public int getKey(){ return iDa...

2018-11-27 21:58:29 1290

原创 java版数据结构与算法—线性探测哈希表

package com.zoujc.hash;/** *哈希表: 优点:速度快(插入和查找) * 缺点:基于数组,不能有序遍历 * 键值对:通过键访问值 * 冲突:不同的关键字经过哈希化得到的数组下标出现了重复 * 解决冲突:1.开放地址法(线性探测 二次探测 再哈希法) * 2.链地址法 */public class Dat...

2018-11-26 23:09:20 2073

ClickHouse文档.docx

clickhouse文档

2021-04-16

ClickHouse原理解析与应用实践.epub

大数据神器clickhouse,wps打开

2021-04-16

X-Shell6.0

Xshell 是一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET 协议。Xshell 通过互联网到远程主机的安全连接以及它创新性的设计和特色帮助用户在复杂的网络环境中享受他们的工作。 亲测可用X-Shell6.0的个人版,大家踊跃下载吧。

2019-03-07

git实战教程

1.版本控制系统(vcs)发展。2.git工作原理。3.git shell应用。4.git eclipse应用

2018-10-13

空空如也

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

TA关注的人

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