自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

发现问题,解决问题,不要绕开问题的本身。

  • 博客(44)
  • 资源 (1)
  • 收藏
  • 关注

原创 docker启动失败

安装docker后启动失败错误信息解决方法vi /etc/sysconfig/docker

2018-11-10 22:36:38 1022

原创 Kafka+Zookeeper+ELK(集群搭建)

Kafka+Zookeeper+ELK(集群搭建)参考博客:https://www.cnblogs.com/panwenbin-logs/p/7807105.html 第五部分:整个集群测试后期会补上!准备环境:**master:192.168.141.107slave1:192.168.141.105slave2:192.168.141.103所需软件:kafka_...

2018-08-21 10:24:03 711

原创 IDEA中使用Git的教程

&&前期准备工作&配置git &配置Github1.远程创建好GitHub仓库2.打开Terminal窗口 3.创建README.md和.gitignore文件$touch README.md$touch .gitignore···xml.gitignore内容如下:*.classpackage f...

2018-07-08 21:26:30 16728 2

原创 Hadoop2.5.1完全分布式搭建

搭建环境:Vmware12+Centos6.4 备注:基于虚拟机搭建hadoop完全分布式集群(没有截图!!!)&&前期准备工作:将vmware设置为桥接模式(即直接同外网连接,不用通过主机上网)vmware中克隆虚拟机后,会出现以下三个问题: 网络的配置和源机一样 用户名称与源机一样 用户的hosts与源机一样1)修改网络配置 ...

2018-04-26 16:55:39 466

原创 hadoop部署常见问题

1.实现本机(192.168.25.134)无密码登录 mkdir .ssh//产生公私秘钥 ssh-keygen -t rsa -P “”//将公钥追加到”authorized_keys”文件 cat id_rsa.pub >> authorized_keys//赋予权限 chmod 600 .ssh/authorized_keys2.执行bin/start-all.sh时

2017-08-02 12:36:00 282

原创 远程链接云服务器的mysql数据库

备注:由于之前的mysql数据库默认没有mysql数据库,所以在云服务器上重新安装了mysql数据库(具体安装步骤,详见我的另一篇博客)

2017-07-14 14:28:42 608

原创 CAS算法(一)

CAS算法主要关心3个值:内存值V,预期值A,要更新的新值B。注:t1,t2线程是同时更新同一变量56的值因为t1和t2线程都同时去访问同一变量56,所以他们会把住内存的值完全拷贝一份到自己的工作内存空间,所以t1和t2线程值都为56假设t1和t2在线程竞争中线程t1能去更新变量值改为57,而其他线程都失败。(失败的线程并不会被挂起,而是被告知这次竞争中失败,并可以再次发起尝试)。T1线程去更新变量

2017-07-09 13:43:37 1391 1

原创 二叉树的遍历

1.二叉树的遍历定义 二叉树的遍历(traversing binary tree)是指从根结点出发,按照某种次序依次访问二叉树中所有结点,使得每个结点被访问一次且仅被访问一次。2.二叉树的遍历方法1.前序遍历规则是若二叉树为空,则空操作返回,否则先访问根结点,然后前序遍历左子树,再前序遍历右子树。2.中序遍历规则是若树为空,则空操作返回,否则从根结点开始(注意并不是先访问根结点),中序遍历根结

2017-04-05 13:05:21 1156

原创 策略模式

1.策略模式概述在策略模式中,我们可以定义一些独立的类来封装不同的算法,每一个类封装一种具体的算法,在这里,每一个封装算法的类我们都可以称之为一种策略(Strategy),为了保证这些策略在使用时具有一致性,一般会提供一个抽象的策略类来做规则的定义,而每种算法则对应于一个具体策略类。2.策略模式定义 策略模式(Strategy Pattern):定义一系列算法类,将每一个算法封装起来,并让它们可

2017-03-30 13:25:21 675

原创 观察者模式

1.观察者模式概述观察者模式是使用频率最高的设计模式之一,它用于建立一种对象与对象之间的依赖关系,一个对象发生改变时将自动通知其他对象,其他对象将相应作出反应。在观察者模式中,发生改变的对象称为观察目标,而被通知的对象称为观察者,一个观察者目标可以对应多个观察者,而且这些观察者之间可以没有任何相互联系,可以根据需要增加和删除观察者,使得系统更易于扩展。2.观察者模式定义 观察者模式(Observ

2017-03-29 13:47:10 526

原创 查找-散列查找

1.散列的相关概念散列技术是在记录的存储位置和它的关键字之间建立一个确定的对应关系f,使得每个关键字key对应一个存储位置f(key)。查找时,根据这个确定的对应关系找到给定值key的映射f(key),若查找集合中存在这个记录,则必定在f(key)的位置上。这里我们把这种对应关系f称为散列函数,又称为哈希(Hash)函数。按这个思想,采用散列技术将记录存储在一块连续的存储空间中,这块连续存储空间称为

2017-03-28 18:50:52 2738

原创 职责链模式

1.职责链模式概述很多情况下,在一个软件系统中可以处理某个请求的对象不止一个,例如SCM系统中的采购单审批,主任、副董事长、董事长和董事会都可以处理采购单,他们可以构成一条处理采购单的链式结构,采购单沿着这条链进行传递,这条链就称为职责链。职责链可以是一条直线、一个环或者一个树形结构,最常见的职责链是直线型,即沿着一条单向的链来传递请求。链上的每一个对象都是请求处理者,职责链模式可以将请求的处理者组

2017-03-24 11:19:53 625

原创 享元模式

1.享元模式前言当一个软件系统在运行时产生的对象数量太多,将导致运行代价过高,带来系统性能下降等问题。例如在一个文本字符串中存在很多重复的字符,如果没一个字符都用一个单独的对象来表示,将会占用较多的内存空间,那么我们如何去避免系统中出现大量相同或相似的对象,同时又不影响客户端程序通过面向对象的方式对这些对象进行操作?享元模式正为解决这一类问题而诞生。享元模式通过共享技术实现相同或相似对象的重用,在逻

2017-03-23 09:34:12 382

原创 查找-插值查找

1.插值查找前言现在我们的新问题是,为什么一定要折半,而不是折四分之一或者折更多呢?例如,在英文词典里查”apple”,你下意识里翻开词典是翻前面的书页还是后面的书页呢?如果再让你查”zoo”,你又怎么查?很显然,这里你绝对不会是从中间开始查起,而是有一定目的的往前或往后翻。2.插值查找算法基于折半查找代码,我们略微变换等式后得到: mid=low+high2=low+12(high−low)mi

2017-03-22 14:00:00 1219 3

原创 查找-折半查找(二分查找)

1.折半查找定义 折半查找(Binary Search)技术,又称为二分查找。它的前提是线性表中的记录必须是关键码有序(通常从小到大有序),线性表必须采用顺序存储。折半查找的基本思想是:在有序表中,取中间记录作为比较对象,若给定值与中间记录的关键字相等,则查找成功;若给定值小于中间记录的关键字,则在中间记录的左半区继续查找;若给定值大于中间记录的关键字,则在中间记录的右半区继续查找。不断重复上述

2017-03-21 19:02:02 1026

原创 查找-顺序查找

1.顺序查找定义 顺序查找(Sequential Search)又叫线性查找,是最基本的查找技术,它的查找过程是:从表中第一个(或最后一个)记录开始,逐个进行记录的关键字和给定值比较,若某个记录的关键字和给定值相等,则查找成功,找到所查记录;如果直到最后一个(或第一个)记录,其关键字和给定值比较都不等时,则表中没有所查的记录,查找不成功。2.顺序表查找算法/*顺序查找,a为数组,n为要查找的数

2017-03-21 18:54:10 496

原创 代理模式

1.代理模式前言近年来,代购已经逐步成为电子商务的一个重要分支。所谓代购,简单来说就是找人帮忙购买所需要的商品,当然你可能需要向实施代购的人支付一定的费用。代购通常分为两种类型:一种是因为在当地买不到某件商品,又或者是因为当地这件商品的价格比其他地区的贵,因此托人在其他地区甚至国外购买该商品,然后通过快递发货或者直接携带回来;还有一种代购,由于消费者对想要购买的商品相关信息的缺乏,自己无法确定其实际

2017-03-20 18:48:12 637

原创 排序-堆排序

1.堆排序前言前面博客中讲到简单选择排序,它在待排序的n个记录中选择一个最小的记录需要比较n-1次。本来这也可以理解,查找第一个数据需要比较这么多次是正常的,否则如何知道它是最小的记录。可惜的是,这样的操作并没有把每一趟的比较结果保存下来,在后一趟的比较中,有许多比较在前一趟已经做过了,但由于前一趟排序时未保存这些比较结果,所以后一趟排序时又重复执行了这些比较操作,因而记录的比较次数较多。如果可以做

2017-03-19 14:21:44 576

原创 外观模式

1.外观模式定义外观模式中,一个子系统的外部与其内部的通信通过一个统一的外观类进行,外观类将客户类子系统的内部复杂性分离开,使得客户类只需要与外观角色打交道,而不需要与子系统内部的很多对象打交道。 外观模式定义如下:为子系统中的一组接口提供一个统一的入口。外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。外观模式又称为门面模式,它是一种对象结构型模式。外观模式是迪米特法则的一种具

2017-03-18 22:29:01 217

原创 装饰模式

1.装饰模式概述装饰模式可以在不改变一个对象本身功能的基础上给对象增加额外的新行为,在现实生活中,这种情况也到处存在,例如一张照片,我们可以不改变照片本身,给它增加一个相框,使得它具有防潮的功能,而且用户可以根据需要给它增加不同类型的相框,甚至可以在一个小相框的外面再套一个大相框。装饰模式是一种用于替代继承的技术,它通过一种无须定义子类的方式来给对象动态增加职责,使用对象之间的关联关系取代类之间的继

2017-03-16 17:33:47 168

原创 排序-插入排序

1.直接插入排序算法的定义直接插入排序(Straight Insertion Sort)的基本操作是将一个记录插入到已经排好序的有序表中,从而得到一个新的、记录数增1的有序表。2.直接插入排序的代码顾名思义,从名称上也可以知道它是一种插入排序的方法。/*对顺序表L作直接插入排序*/1 void InsertSort(SqList *L)2 {3 int i,j;4

2017-03-16 14:13:05 220

原创 腾讯云服务器搭建SVN

注:1.下文红色遮挡的部分为作者的腾讯云服务器主机名,不便公开,所以用红色马赛克遮住2.本文的搭建环境是:腾讯云服务器(CentOS6.5)+远程登录工具(Xshell5)1.查看云服务器是否安装了svn服务器2.由于云服务器之前已经安装了SVN服务器,所以首先卸载SVN3.确认卸载成功4.安装SVN服务器 5.创建svn目录及其仓库6.确认svn仓库是否创建成功7.配置conf目录下的pas

2017-03-15 08:50:45 7888 2

原创 排序-选择排序

1.简单选择排序前言冒泡排序的思想就是不断地在交换,通过交换完成最终的排序,这和做股票短线频繁操作的人是类似的。我们可不可以像只有在时机非常明确到来时才出手的股票高手一样,也就是在排序时找到合适的关键字再做交换,并且只移动一次就完成相应关键字的排序定位工作呢?这就是选择排序法的初步思想。选择排序的基本思想就是每一趟在n-i+1(i=1,2,…,n-1)个记录中选取关键字最小的记录作为有序序列的第i个

2017-03-14 13:36:57 236

原创 排序-冒泡排序

冒泡排序前言顺序表结构#define MAXSIZE 10 /*用于要排序数组个数最大值,可根据需要修改*/typedef struct{ int r[MAXSIZE+1]; /*用于存储要排序数组,r[0]用作哨兵或临时变量*/ int length; /*用于记录顺序表的长度*/}SqList;数组两元素交换函数/*交换L中数组r的下标为i和

2017-03-13 20:04:55 414

原创 组合模式

1.组合模式概述对于树形结构,当容器对象(如文件夹)的某一个方法被调用时,将遍历整个树形结构,寻找也包含这个方法的成员对象(可以是容器对象,也可以是叶子对象)并调用执行,牵一而动百,其中使用了递归调用的机制来对整个结构进行处理。由于容器对象和叶子对象在功能上的区别,在使用这些对象的代码中必须有区别地对待容器对象和叶子对象,而实际上大多数情况下我们希望一致地处理它们,因为对于这些对象的区别对待将会使得

2017-03-12 15:45:05 271

原创 桥接模式

1.桥接模式概述桥接模式是一种很实用的结构型设计模式,如果软件系统中某个类存在两个独立变化的维度,通过该模式可以将这两个维度分离出来,使两者可以独立扩展,让系统更加符合“单一职责原则”。与多层继承方案不同,它将两个独立变化的维度设计为两个独立的继承等级结构,并且在抽象层建立一个抽象关联,该关联关系类似一条连接连个独立继承结构的桥,故名桥接模式。桥接模式用一种巧妙的方式处理多层继承存在的问题,用抽象关

2017-03-10 08:03:28 317

原创 建造者模式

1.建造者模式前言建造者模式是较为复杂的创建型模式,它将客户端与包含多个组成部分(或部件)的复杂对象的创建过程分离,客户端无须知道复杂对象的内部组成部分与装配方式,只需要知道所需建造者的类型即可。它关注如何一步一步创建一个复杂对象,不同的具体建造者定义了不同的创建过程,且具体建造者相互独立,增加新的建造者非常方便,无须修改已有代码,系统具有较好的扩展性。2.建造者模式定义建造者模式(Builder

2017-03-07 13:14:07 460

原创 抽象工厂模式

1.抽象工厂模式前言工厂方法模式通过引入工厂等级结构,解决了简单工厂模式中工厂类职责太重的问题,但由于工厂方法模式中的每个工厂只生产一类产品,可能会导致系统中存在大量的工厂类,势必会增加系统的开销。此时,我们可以考虑将一些相关的产品组成一个“产品族”,由同一个工厂来统一生产,这就是抽象工厂模式的基本思想。 产品等级结构与产品族在工厂方法模式中具体工厂负责生产具体的产品,每一个具体工厂对应一种具体产品

2017-03-04 20:08:25 413

原创 工厂方法模式

1.工厂方法模式前言在简单工厂模式中只提供了一个工厂类,该工厂类处于对产品类进行实例化的中心位置,它需要知道每一个产品对象的创建细节,并决定何时实例化哪一个产品类。简单工厂模式最大的缺点是当有新产品要加入到系统中时,必须修改工厂类,需要在其中加入必要的业务逻辑,这违背了“开闭原则”。此外,在简单工厂模式中,所有的产品都同一个工厂创建,工厂职责较重,业务逻辑较为复杂,具体产品与工厂类之间的耦合度高,严

2017-03-02 14:35:07 187

原创 原型模式

1.原型模式概述在使用原型模式时,我们需要首先创建一个原型对象,再通过复制这个原型对象来创建更多同类型的对象。原型模式的工作原理:将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象拷贝自己来实现创建过程。由于软件系统中我们经常会遇到需要创建多个相同或者相似对象的情况,因此原型模式在真实开发中的使用频率还是非常高的。原型模式是一种“另类”的创建型模式,创建克隆对象的工厂就是原

2017-02-28 17:27:33 236

原创 equals和==的区别

1.总的来说:1)对于”==”,如果作用于基本数据类型的变量,则直接比较其存储的值是否相等;如果作用于引用类型的变量,则比较的是所指向的对象的地址。2)对于equals方法(equals方法不能作用于基本数据类型变量),如果没有对equals方法进行重写,则比较的是引用类型的变量所指向的地址;诸如String、Date等类对equals方法进行了重写的话,比较的是所指向的对象的内容。2.实例解释工程

2017-02-28 12:08:22 303

原创 单例模式

1.单例模式定义单例模式(Singleton Pattern):确保某一个类只有一个实例,而且自行实例化并向整个系统 提供这个实例,这个类称为单例类,它提供全局访问的方法。单例模式是一种面向对象的创建型模式。单例模式有三个要点:①某个类只能有一个实例;②它必须自行创建这个实例;③它必须自行向整个系统提供这个实例。2.单例模式结构单例模式结构图中只包含一个单例角色:Singleton(单例):在

2017-02-26 15:19:40 294

原创 简单工厂模式

1.简单工厂模式定义简单工厂模式(Simple Factory Pattern):定义一个工厂类,它可以根据参数的不同返回不同类的实例,被创建的实例通常具有共同的父类。因为在简单工厂模式中用于创建实例的方法是静态方法,因此简单工厂模式又被称为静态工厂方法模式,它属于类创建型模式。2.简单工厂模式包含如下几个角色工厂角色(Factory):工厂角色即工厂类,它是简单工厂模式的核心,负责实现创建所有产品

2017-02-24 14:52:25 458

原创 适配器模式

一、适配器模式定义将一个接口转换成客户希望的另一个接口,使接口不兼容的那些类可以一起工作,其别名为包装器(Wrapper)。适配器模式既可以作为类结构型模式,也可以作为对象结构型模式。根据适配器类与适配者类的关系不同,适配器模式可以分为对象适配器和类适配器两种,在对象适配器模式中,适配器与适配者之间是关联关系;在类适配器模式中,适配器与适配者之间是继承关系(或实现)关系。在实际开发中,对象

2017-01-12 22:27:09 142

原创 选择排序(Selection Sort)

1.选择排序算法原理选择排序是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。选择排序是不稳定的排序方法。2.算则排序算法的基本步骤(1)从待排序序列中,找到关键字最小的元素;(2)如果最小元素不是待排序序列的第一个元素,将其和第一个元素互换;(3)从余下的N-1个元素中,找出关键字最小的元素,

2017-01-08 23:20:30 254

原创 腾讯云服务器上搭建wordpress博客

注1:本篇博客参考了腾讯云论坛的一篇腾讯云服务器搭建wordpress博客的文章,本文和论坛里面那篇文章的区别是:①mysql数据库是自己搭建的 ②远程登录工具用的是Xshell注2:由于本人在腾讯云服务器上已经搭建了wordpress博客,所以以下教程的实验环境是:①Vmware Workstation12②Centos 6.5虽然以上不是在云服务器上进行该实验,但是搭建步骤一模一样,没有什么本

2017-01-08 15:12:45 8508 1

原创 快速排序(Quick Sort)

一、算法原理设要排序的数组是A[0]……A[N-1],首先任意选取一个数据(通常选用数组的第一个数)作为关键 数据,然后将所有比它小的数据放到它前面,所有比它大的数据放到它后面,这个过程称为一趟快速排序。值得注意的是,快速排序不是一种稳定的排序算法,也就是说,多个相同的值的相对位置也许会在算法结束时产生变动。二、一般快速排序算法的步骤设置两个变量i、j,排序开始的时候:i

2017-01-06 16:16:03 288

原创 冒泡排序(Bubble Sort)

一、冒泡排序原理 1)临近的数字两两进行比较,按照从小到大(从大到小)的顺序进行交换,这样的一次比较过后,最大或最小的数字被交换到了最后一位 2)然后再从头开始进行两两比较,知道倒数第二位时结束二、冒泡排序算法分析 1)时间复杂度 若文件的初始状态是正序的,一次扫描即可完成排序。所需的关键字比较次数C和记录移动次数M均达到最小值:Cmin = n - 1, Mmin = 0

2017-01-04 09:23:17 344

原创 Map容器中的对象遍历

import java.util.Collection;import java.util.HashMap;import java.util.Map;import java.util.Set;public class TestMap {public static void main(String[] args) {Map map = new HashMap();m

2016-08-04 15:28:25 337

原创 快速排序(C语言实现)

#include int partition(int *A, int p, int r);void quick_sort(int *A, int p, int r);int main(){int data[] = {2, 8, 7, 1, 3, 5, 6, 4};quick_sort(data, 0, 7);int i;for (i = 0; i

2016-07-13 20:25:06 358

快速排序(Quick Sort)

快速排序(Quick Sort)

2017-01-06

空空如也

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

TA关注的人

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