自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(48)
  • 收藏
  • 关注

转载 Spark实例

1、入门object HelloSpark { def main(args: Array[String]): Unit = { val conf = new SparkConf().setAppName("Simple Application").setMaster("local") val sc = new SparkContext(co...

2017-02-27 15:10:00 99

转载 归并排序(Merge Sort)

1、概述归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。归并过程为:比较a[i]和a[j]的大小,若a[i]≤a[j],则将第一...

2017-02-27 14:13:00 124

转载 Spring面试题及答案(69道)

1. 什么是spring?Spring 是个java企业级应用的开源开发框架。Spring主要用来开发Java应用,但是有些扩展是针对构建J2EE平台的web应用。Spring 框架目标是简化Java企业级应用开发,并通过POJO为基础的编程模型促进良好的编程习惯。2. 使用Spring框架的好处是什么?轻量:Spring 是轻量的,基本的版本大约2M...

2017-02-26 17:20:00 271

转载 Spring-Bean之基于注解(Annotation)装配解析

1、概述在Spring中,尽管使用XML配置文件可以实现Bean的装配工作,但如果XML配置的bean非常的多,XML配置文件代码将变得非常臃肿,不利于代码的后期维护。自从JDK 1.5之后,Java提供了注解(Annotation)功能,与此同时,Spring 3也提供了Annotation的全面支持,如注解装配Bean、注解实现AspectJ AOP编程等...

2017-02-26 15:19:00 247

转载 CGLIB动态代理

1、概述我们知道,Java动态代理使用起来非常简单,但也有其局限性。使用Java动态代理时,被代理的类必须实现一个或多个接口,若想给没有实现接口的类实现动态代理,就需要使用CGLIB动态代理。CGLIB(Code Generation Library)是一个高性能开源代码生成包,它的底层通过ASM(Java字节码操控框架)来转换字节码,为一个类创建子类,然后对...

2017-02-26 11:27:00 89

转载 Lucene教程

1、什么是“全文检索”(Full-Text Search)①全文检索的概念全文检索首先将要查询的目标文档中的词提取出来,组成索引,通过查询索引达到搜索目标文档的目的。这种先建立索引,再对索引进行搜索的过程就叫全文检索(Full-text Search)。全文检索(Full-Text Retrieval)是指以文本作为检索对象,找出含有指定词汇的文本。...

2017-02-25 17:28:00 127

转载 ElasticSearch安装

官网及Github地址: http://www.elastic.co/guide/en/elasticsearch/reference/current/setup-configuration.html https://github.com/elastic/elasticsearch【在多台机器上执行下面的命令】es启动时需要使用非root用户,所有创建...

2017-02-25 12:40:00 95

转载 MySQL事务

1、事务的概念现实生活中,会遇到转账的情况。转账可分为两部分:转入和转出。若转入和转出其中的任意一部分出现异常无法完成转入或转出,就无法完成交易。为了防止以上情况的发生,MySQL引入了事务(Transaction)。事务是针对数据库的一组操作,它可以有一条或多条SQL语句组成。2、事务的操作①开启事务START TRANSACTION...

2017-02-24 22:13:00 66

转载 Java泛型

1、概述Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。泛型的本质是参数化类型,所操作的数据类型被指定为一个参数。假定有这样一个需求:写一个排序方法,能够对整形数组、字符串数组甚至其他任何类型的数组进行排序,该如何实现?这里就可以使用到 Java 泛型。我们...

2017-02-22 16:50:00 62

转载 Python学习笔记(1)

1、集合框架# coding=utf-8# 列表,是可变的,以"["list = [ 'abcd', 786 , 2.23, 'john', 70.2 ]print list# 修改list列表中下标号为0的元素list[0] = 'wanghanlin'print listlist2 = [ 'abcd', 786 , 2.23, 'john...

2017-02-22 15:31:00 102

转载 Java动态代理

1、概述建议大家在看这篇博文之前,去我的博客中阅读Java代理模式一文。里面讲解了代理模式的相关概念。①代理模式我们在实践过程中,常常需要对一个类的功能进行完善和增强。于是,我们经常会用继承类和实现接口的方式来增强一个类,但这样或多或少会造成类与类之间的耦合:继承类之后不能再继承其他类;实现接口的话必须实现接口中的所有方法,且若接口的方法发生改变,实现...

2017-02-21 15:33:00 68

转载 快速排序(Quick Sort)

概述快速排序(Quick Sort)是对冒泡排序的一种改进。快速排序由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。注意!一定要用到递归!...

2017-02-21 12:00:00 320

转载 Java数据类型

Java数据类型结构图Java基本数据类型概述1 byte = 8 bit,也就是一字节(byte)占八位(bit)①整型 类型 存储需求 bit数 取值范围 byte 1字节 1*8 (-2的31次方到2的31次方-1) short 2字节 2*8 -32768~32767 ...

2017-02-21 11:29:00 84

转载 Hadoop之MapReduce单词计数经典实例

MapReduce实现单词计数示意图MapReduce实现单词计数实例代码(Java)①Mapperimport java.io.IOException;import org.apache.commons.lang.StringUtils;import org.apache.hadoop.io.LongWritable;import o...

2017-02-20 19:25:00 208

转载 MySQL进阶操作

LIKE子句MySQL 中使用 SELECT 命令来读取数据。通过 SELECT 语句中使用WHERE 子句来获取指定的记录。LIKE 子句通常用于 WHERE 子句中。LIKE 子句中使用百分号(%)字符来表示任意字符,类似于UNIX或正则表达式中的星号(*)。如果没有使用百分号(%), LIKE 子句与等号(=)的效果是一样的。SELECT ...

2017-02-20 16:26:00 70

转载 MySQL基础操作

创建数据库CREATE DATABASE database_name选择数据库use database_name删除数据库DROP DATABASE database_name创建表CREATE TABLE table_name删除表DROP TABLE table_name向表中插入数据INSERT...

2017-02-20 13:26:00 56

转载 Redis安装教程

1、Redis下载官网地址:http://redis.io/下载地址:http://download.redis.io/releases/redis-3.0.0.tar.gz2、Redis安装Redis是C语言开发,建议在Linux系统上运行,本教程使用Centos6.8作为安装环境。①在VMware中搭建Linux服务器集群准备三台...

2017-02-19 16:11:00 84

转载 希尔排序(Shell Sort)

1、概述希尔排序(Shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因DL.Shell于1959年提出而得名。希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止。希...

2017-02-18 16:01:00 84

转载 插入排序(Insertion Sort)

1、概述有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法——插入排序法,插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n²)。是稳定的排序方法。插入算法把要排序的数组分成两部分:第一部分...

2017-02-18 14:35:00 107

转载 选择排序(Selection Sort)

1、概述选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。排序趟数为n-1次,n为元素大小。2、算法原理对比数组中前一个元素跟后一个元素的大小,如果后面的元素比前面的元素小则用一个变量k来记住他的位置,接着第二次比较...

2017-02-17 17:12:00 149

转载 冒泡排序(Bubble Sort)

1、概述冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端,故名。冒泡排序分为很多轮,每一轮都会将当前比较的最大的数放在右侧,不停地自右向左堆积。2、算法原理比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结...

2017-02-17 16:40:00 76

转载 Java设计模式之行为型模式(访问者模式)

访问者模式(Visitor)1、概述①定义表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素类的前提下定义作用于这些元素的新操作。从定义可以看出结构对象是使用访问者模式必备条件。——GoF《Design Pattern》“对象结构”:是一个具体类,封装了若干元素。“不改变各元素类”:不对“对象结构”中的元素进行修改。“...

2017-02-10 22:04:00 105

转载 Java设计模式之行为型模式(模板模式)

模板模式1、概述①定义模板模式使用一个抽象类将各个具体类中相同或相近的成分抽取出来,并让各个具体类继承该抽象类,共享相同或相近的成分。具体类通过继承抽象类也可以重写模板类的方法。②结构UML图:Template为模板类,它是一个抽象类,集成了ConcreteClassA、ConcreteClassB、ConcreteClassC的相同部分...

2017-02-10 10:53:00 84

转载 Java设计模式之行为型模式(策略模式)

策略模式(Strategy)1、概述①定义《JAVA与模式》一书中是这样定义策略模式的:策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式让算法独立于使用它的客户而独立变化。策略模式的策略是什么意思?有朋友可能会疑惑:在Java中,“策略”和“方法”有什么区别?首先,策略与方法含义相近,都指应对问题的办法手段...

2017-02-09 21:54:00 99

转载 Java设计模式之行为型模式(状态模式)

状态模式(State)1、概述①定义状态模式允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。②适用场景一个对象的行为取决于它的状态,并且它必须在运行时刻根据状态改变它的行为。一个操作中含有庞大的多分支结构,并且这些分支决定于对象的状态。③结构State类为状态类,用来存储一些状态信息。Context类为...

2017-02-09 20:35:00 89

转载 Java设计模式之行为型模式(观察者模式)

观察者模式(Observer)1、背景在软件开发中,当一个类发生变化,需要通知其他类,并让其他类做某些逻辑操作,观察者模式应运而生。2、概述①定义将主类与其他多个类建立一种“一对多”的通信关系,当“主类“发生某些操作时,与之建立从属关系的类作出反应。②应用场景监听某个类的运行情况被监听类分发信息、监听类订阅信息场景多个...

2017-02-09 15:35:00 80

转载 Java设计模式之行为型模式(备忘录模式)

备忘录模式(Memento)1、背景在日常生活中,当我们重装电脑系统时,或多或少都会将之前的系统备份,以防日后电脑发生故障时能够及时恢复。备份思想无处不在,在编码工作中亦如此。Java是面向对象的编程语言,核心的思想就是对象。我们在使用对象的过程中,可能会频繁的修改对象的相关值,若这些相关值每一个都意义(或都很重要),就需要对以前的值进行备份操作。备忘录模式正...

2017-02-09 10:39:00 82

转载 Java设计模式之行为型模式(中介者模式)

中介者模式(Mediator)1、背景类与类之间会产生直接的交互,这在实际的编码中是常见的,例如,A类调用B类的方法。我们常说的“对扩展开放,对修改关闭”原则就是要防止某处修改导致处处修改的情景,因为这样极不利于后期维护。当A类直接调用B类的方法时,A类对B类产生了直接的依赖关系:A类直接依赖B类的方法。当B类的方法发生修改时(例如B类方法的方法名发生改变,B...

2017-02-08 22:02:00 153

转载 Java设计模式之行为型模式(迭代器模式)

迭代器模式(Iterator)1、概述迭代器模式针对的对象是集合类(Tips:这里的集合类泛指存入多个元素的类),使得该集合类拥有访问该集合类所有元素的迭代器类,并通过迭代器类获取该集合类的每一个元素,而且不暴露内部元素细节。2、应用场景①应用的对象必须是可遍历的集合类②需要对集合类的内部元素进行批量取出③不能暴露内部元素的...

2017-02-08 17:06:00 92

转载 Java设计模式之行为型模式(命令模式)

命令模式(Command)1、概述命令模式由三部分构成:Invoker(命令触发器)、Executor(命令处理器)、Responder(命令响应器)。命令模式将客户端(也就是这里的Invoker命令触发器)与服务端(Responder命令响应器)两者解耦。客户端只需要关注自己发送哪一条命令,而无需关注服务端的实现细节;服务端只需关注命令是什么,根据命令作...

2017-02-08 16:11:00 90

转载 Java设计模式之行为型模式(责任链模式)

责任链模式概述责任链模式是将多个处理事件的行为组合成一条链,通过调用链来对事件进行批处理。与单一事件处理不同,责任链模式强调多个事件连续处理,注重事件处理的序列化。适用场景一个简单事件运行有一个前提:被触发。一个简单事件只有收到运行的请求才会运行。在程序设计中,若单个简单的事件越来越多,就必然会重复发送许多条相同的请求事件运行的命令。责任链模式就是...

2017-02-08 14:35:00 65

转载 Java设计模式概述之结构型模式(桥接模式)

七、桥接模式概念小插曲将抽象与具体分离就是桥接模式。我勒个去,GOF里面的这一句想必很难理解。这句话的确很抽象,但我们仔细琢磨琢磨,还是会柳暗花明的。桥接模式的“桥”字,说实话我也不明白为什么要以“桥接”来命名这一模式,所以先请大家把“桥接模式”抽象地看作“**模式”,不再为名字而迷惑。解释在Java中,“抽象”大概可以指interface,a...

2017-02-07 21:49:00 91

转载 Java设计模式概述之结构型模式(外观模式)

六、外观模式(Facade)概述外观模式为子系统中的各类(或结构与方法)提供一个简明一致的界面,隐藏子系统的复杂性,使子系统更加容易使用。外观模式的中的外观是一个抽象的概念,泛指外部的对象。外观对象中包含了若干的内部对象,内部的各个对象存在某些逻辑关联,从而组成简单或复杂的内部系统。外观模式使外观对象将若干内部对象的逻辑细节封装,使得外界不必直接调用内部对...

2017-02-07 15:34:00 76

转载 Java设计模式概述之结构型模式(享元模式)

五、享元模式(Flyweight)享元模式简介Flyweight本意是拳击中的绳量级,在这里是指代共享的元素。享元模式指多个元素共享使用。把生活中的公共设施比作这里的元素,每个人都能享用元素,人人共享资源。享元模式最大的特点就是资源共享性。Java中String类型利用了享元模式。代码如下:String a = "abc";String b ...

2017-02-06 21:20:00 103

转载 Java设计模式概述之结构型模式(组合模式)

四、组合模式(Composite)组合模式相对不好阐述。引用大话设计模式的片段:“当发现需求中是体现部分与整体层次结构时,以及你希望用户可以忽略组合对象与单个对象的不同,统一地使用组合结构中的所有对象时,就应该考虑组合模式了。”组合模式与树形结构程序设计是密不可分的。组合模式很好的体现了“整体——部分”的关系。下面给大家一段自己写的有关组合模式的代码:...

2017-02-06 14:42:00 94

转载 Java设计模式概述之结构型模式(装饰器模式)

三、装饰器模式在Java中,装饰器模式使用场景非常普遍,例如BufferedInputStream就利用了装饰器模式。装饰器模式与代理模式非常相似,相似点可总结如下:1、都是对原始类功能、特性的增强。 2、都是通过注入原始类来实现类的增强。 3、其增强原始类的方式都是非侵入的,可插拔的。 4、被扩展后的代码具有良好的扩展性。当然,不同点如下:...

2017-02-06 14:10:00 100

转载 Java设计模式概述之结构型模式(代理模式)

二、代理模式我们在实践过程中,常常需要对一个类的功能进行完善和增强。于是,我们经常会用继承类和实现接口的方式来增强一个类,但这样或多或少会造成类与类之间的耦合:继承类之后不能再继承其他类;实现接口的话必须实现接口中的所有方法,且若接口的方法发生改变,实现接口类也必须做出改变,这样不利于最大限度扩展。代理模式(Proxy)使用代理类来增强原始类。代理类需要与原始...

2017-02-06 13:38:00 59

转载 Java设计模式概述之结构型模式(适配器模式)

结构型模式清单:适配器模式、桥接模式、组合模式、装饰模式、外观模式、享元模式、代理模式。其中,适配器模式、装饰模式、享元模式、代理模式适用场景较多,须重点掌握。一、适配器模式适配器模式分为类适配器模式、对象适配器模式、缺省适配器模式。适配器模式思想原理很简单。举个简单的例子:笔记本电脑充电。笔记本电脑充电的过程涉及三个元件:笔记本、电源适配器、插座...

2017-02-06 11:31:00 108

转载 Java设计模式概述之创建型模式

Java一共有23种设计模式,23种设计模式大致分为三大类:创建模式、结构化模式、行为模式。Tip:由于23三种设计模式的篇幅较长,先来介绍我们比较熟悉的建造者模式。一、单例模式(Singleton)单例模式中的单例是指唯一的实例对象。Java API中的Calendar类就利用了单例模式。相信大家应该对这条语句不陌生:Calendar.getInst...

2017-02-03 21:08:00 51

转载 JVM虚拟机内存区域概述

JVM虚拟机内存区域概述虚拟机内存区域分配示意图一、Java堆(Java Heap)Java堆是Java虚拟机内存管理中占用空间最大的一块区域。Java堆是被所有线程共享的一片内存区域,在虚拟机的启动时而创建,被用来存储实例对象和数组。Java堆是垃圾收集器(Garbage Collector)管理的主要区域。从内存回收的角度上来看,由于现在GC基...

2017-02-02 20:05:00 105

空空如也

空空如也

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

TA关注的人

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