自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小孩

自己工作学习所获

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

原创 大数据开发——HDFS分布式集群的搭建以及HDFS操作

前言学习大数据开发,不免要接触大数据生态圈中的各种组件,今天就让我们从基本的组件——HADOOP(apache旗下的一套开源软件平台)说起,来展开之后一系列的大数据相关组件的学习。HADOOP组件介绍HADOOP的核心组件有: HDFS(分布式文件系统) YARN(运算资源调度系统) MAPREDUCE(分布式运算编程框...

2019-07-08 23:45:04 179

原创 kafka的基本学习

一、环境安装0. kafka源码包下载1. 集群环境Master 192.168.239.128Slave1 192.168.239.129Slave2 192.168.239.1302. 解压软件包#在Master上tar zxvf kafka_2.11-0.10.2.1.tgz3. 修改Kafka配置文件#在Mastercd kafka_2.11-0...

2019-06-19 21:44:55 170

原创 Java并发编程——初识并发

1、何为并发在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理器上运行,但任一个时刻点上只有一个程序在处理机上运行。与并行的区别:解释一:并行是指两个或者多个事件在同一时刻发生;而并发是指两个或多个事件在同一时间间隔发生。 解释二:并行是在不同实体上的多个事件,并发是在同一实体上的多个事件。 解释三:在一台处理器上“同时”处理多个任...

2019-03-23 15:10:53 148

原创 Spring注解驱动开发——属性赋值

1、@Value赋值基本用法:测试:注意:使用*.properties配置文件,需要在配置类上再加上一个注解,指明配置文件的位置2、自动装配(@Autowired @Qualifier @Primary)@Autowired 这个注解就不用多说了,web应用的三层开发经常用到。@Autowired 会默认优先按照类型去容器中找对应的组件,如果找到多个相同...

2019-03-23 15:08:34 204

原创 自旋锁(非重入锁)、死锁、重入锁

1、重入锁 所谓的可重入锁,就是说当一个线程进入到同步代码时,然后再在这个代码块里面再去申请同一把锁,此时还能申请得到,这就是可重入锁。案例:2、自旋锁(非重入锁)所谓的自旋锁就是说:若当前线程执行某个方法已经获取了该锁,那么在方法中尝试再次获取锁时,就会获取不到被阻塞。示例:package com.xnn.thread.t6;import ja...

2019-03-17 15:46:36 273

原创 Spring注解驱动开发——Bean的生命周期

1、Bean指定初始化和销毁方法 还是先写一个配置类:测试:改为多实例的Bean:再次测试: 上篇文章——《Spring注解驱动开发——组件注册方法》中已经提到过:多实例的Bean在开启容器时,不会创建对象,只有在代码中编写获取该Bean的代码时才会创建对象,所以这次没有构造对象,也就没有执行初始化方法喽。若在测试代码中显式的取获取Bean2、通过让Be...

2019-02-26 21:13:04 150

原创 Spring注解驱动开发——组件注册方法

1、@configuration和@Bean注解配合使用首先建一个maven工程,导入Spring的几个核心包:然后写一个配置类:package com.xnn.config;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Com...

2019-02-16 17:35:23 302

原创 设计模式之——组合模式

1.组合模式概述组合模式(Composite Pattern),又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象。(如文件系统中,可以把文件、文件夹当做同一类对象来操作,这正是组合模式的应用之处。) 组合模式依据树形结构来组合对象,(通俗点儿说,我认为就是在某一个类中有一个存放该类自身对象的集合,(比如:文件夹里面仍可以有文件夹,当然也可以有文件。))用来表示部分以及整体层次。1...

2018-11-26 23:08:35 100

原创 设计模式之——外观模式

1.概述       外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。这种模式涉及到一个单一的类,该类提供了客户端请求的简化方法和对现有系统类方法的委托调用。        举个现实生活中的例子:在大陆去大型医院看病        下面用一个示意图来...

2018-11-25 23:42:52 127

原创 将博客搬至CSDN

今个儿起,我要去csdn上了

2018-11-12 22:23:00 58

原创 享元模式

享元模式概述享元模式(Flyweight Pattern)主要用于减少创建对象的数量,以减少内存占用和提高性能。这种类型的设计模式属于结构型模式,它提供了减少对象数量从而改善应用所需的对象结构的方式。享元模式尝试重用现有的同类对象,如果未找到匹配的对象,则创建新对象。引入应用示例帮助理解该模式代码示例package com.xnn;/** * 形状接口(抽象享...

2018-11-05 22:59:00 72

原创 观察者模式

观察者模式概述观察者模式是对象的行为模式,又叫做发布-订阅模式、模型-视图模式、源-监听器模式或者从属者模式,这个模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,使他们能够自动更新自己。代码体现由上面的描述,我们设想一个场景:在一个对象的值发生变化时没随即打印出变化后的这个值的二进制、八进制、十六进制表示法...

2018-11-05 17:09:00 91

原创 策略模式

策略模式概述问题引入解决方案代码体现package com.xnn.strategy;/** * * 类(接口)描述:策略接口,所有的具体策略都得实现这个接口 * @author xnn * 2018年11月4日下午10:31:14 */public interface Strategy { public double cost(double...

2018-11-04 22:51:00 97

原创 桥接模式

桥接模式概述桥接(Bridge)是用于把抽象化与实现化解耦,使得二者可以独立变化。这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。这种模式涉及到一个作为桥接的接口,使得实体类的功能独立于接口实现类。这两种类型的类可被结构化改变而互不影响。代码示例package com.xnn.eg3;/** * * 类(接口)描述:汽车引擎...

2018-11-04 21:26:00 84

原创 适配器模式

什么是适配器模式适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。这种模式涉及到一个单一的类(通常叫Adapter类),该类负责加入独立的或不兼容的接口功能。举个真实的例子,读卡器是作为内存卡和笔记本之间的适配器。您将内存卡插入读卡器,再将读卡器插入笔记本,这样就可以通过笔记本来读取内存卡。由上面的...

2018-11-04 12:37:00 105

原创 建造者模式

概述Builder模式也叫建造者模式或者生成器模式,是由GoF提出的23种设计模式中的一种。Builder模式是一种对象创建型模式之一,用来隐藏复合对象的创建过程,它把复合对象的创建过程加以抽象,通过子类继承和重载的方式,动态地创建具有复合属性的对象。意图:将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。主要解决:主要解决在软件系统中,有时候面临着"一个复杂对象"的创...

2018-11-01 22:35:00 111

原创 原型模式

什么是原型模式这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆。当直接创建对象的代价比较大时,则采用这种模式。例如,一个对象需要在一个高代价的数据库操作之后被创建。我们可以缓存该对象,在下一个请求时返回它的克隆,在需要的时候更新数据库,以此来减少数据库调用。原型模式的特点 由原型对象自身创建目标对象。也就是说,对象创建这一动作发自原型对象本身。 2.目标对象是原型对象的一...

2018-10-30 23:07:00 96

原创 单例模式

什么是单例模式单例模式是一种对象创建型模式,使用单例模式,可以保证为一个类只生成唯一的实例对象。也就是说,在整个程序空间中,该类只存在一个实例对象。其实,GoF(《Design Patterns: Elements of Reusable Object-Oriented Software》(即后述《设计模式》一书),由 Erich Gamma、Richard Helm、Ralph Johns...

2018-10-30 00:07:00 96

转载 Java8新特性——集合底层源码实现的改变

ArrayList 源码分析:jdk7:ArrayList list = new ArrayList();//初始化一个长度为10的Object[] elementDatasysout(list.size());//返回存储的元素的个数:0list.add(123);list.add(345);...当添加第11个元素时,需要扩容,默认扩容为原来的1.5倍。还需要将原有数组中...

2018-10-29 21:40:00 248

原创 Java8接口新特性

概述Java 8中,你可以为接口添加静态方法和默认方法。从技术角度来说,这是完全合法的,只是它看起来违反了接口作为一个抽象定义的理念。猜想设计初衷可能使为了兼容8以下的jdk Java8出来了个函数式接口,只要声明成函数式接口的接口都只能有一个抽象方法,为了便于扩展,赋予接口这么一个新特性静态方法:使用 static 关键字修饰。可以通过接口直接调用静态方法,并执行其方法体。我们经常在相互一...

2018-10-25 17:09:00 83

原创 Java8新特性——Optional类的使用(有效的避免空指针异常)

OPtional类的使用概述到目前为止,臭名昭著的空指针异常是导致Java应用程序失败的最常见原因。以前,为了解决空指针异常,Google公司著名的Guava项目引入了Optional类,Guava通过使用检查空值的方式来防止代码污染,它鼓励程序员写更干净的代码。受到Google Guava的启发,Optional类已经成为Java 8类库的一部分。Optional实际上是个容器:它可以...

2018-10-25 16:27:00 1264

原创 Java8新特性——新一套时间API的使用

JDK 1.0中包含了一个java.util.Date类,但是它的大多数方法已经在JDK 1.1引入Calendar类之后被弃用了。而Calendar并不比Date好多少。它们面临的问题是:可变性:像日期和时间这样的类应该是不可变的。偏移性:Date中的年份是从1900开始的,而月份都从0开始。格式化:格式化只对Date有用,Calendar则不行。此外,它们也不是线程安全的;不能处理闰秒...

2018-10-25 12:20:00 71

原创 Java8新特性——StreamAPI 的使用

StreamAPI的说明Java8中有两大最为重要的改变。第一个是 Lambda 表达式;另外一个则是 Stream API。Stream API ( java.util.stream) 把真正的函数式编程风格引入到Java中。这是目前为止对Java类库最好的补充,因为Stream API可以极大提供Java程序员的生产力,让程序员写出高效率、干净、简洁的代码。Stream 是 J...

2018-10-24 22:22:00 117

原创 Fork/join框架

Fork/join框架概述就是在必要的情况下,将一个大任务,进行拆分(fork)成若干个小任务(拆到不可再拆时),再将一个个的小任务运算的结果进行 join 汇总。Fork/Join 框架与传统线程池的区别采用 “工作窃取”模式(work-stealing):当执行新的任务时它可以将其拆分分成更小的任务执行,并将小任务加到线程队列中,然后再从一个随机线程的队列中偷一个并把它放在自己的队...

2018-10-24 16:44:00 105

原创 java8新特性之——lambda表达式的使用

lambda表达式简介个人理解,lambda表达式就是一种新的语法,没有什么新奇的,简化了开发者的编码,其实底层还是一些常规的代码。Lambda 是一个匿名函数,我们可以把 Lambda 表达式理解为是一段可以传递的代码(将代码像数据一样进行传递)。可以写出更简洁、更灵活的代码。作为一种更紧凑的代码风格,使Java的语言表达能力得到了提升。Lambda表达式的语法(记得要在jdk1.8及以...

2018-10-21 23:50:00 171

原创 Quartz的配置与使用

什么是QuartzQuartz是OpenSymphony开源组织在Job scheduling领域的开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的日程序表。Jobs可以做成标准的Java组件或 EJBs。Quartz是一个任务日程管理系统,一个在预先确定(被纳入日程)的时间到达时,负责执行(或...

2018-10-20 14:49:00 178

原创 Zookeeper的安装与配置、使用

Dubbo的介绍如果表现层和服务层是不同的工程,然而表现层又要调用服务层的服务,肯定不能像之前那样,表现层和服务层在一个项目时,只需把服务层的Java类注入到表现层所需要的类中即可,但现在,表现层和服务层这是两个不同的工程,两个系统之间进行通信该怎么办呢?如何实现远程通信?1、Webservice:效率不高基于soap协议。项目中不推荐使用。2、使用restful形式的服务:http+j...

2018-10-16 23:07:00 92

原创 图片服务器FastDFS的安装及使用

FastDFS介绍FastDFS是用c语言编写的一款开源的分布式文件系统。FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。FastDFS架构FastDFS架构包括 Tracker server和 Storage server。客户端请求Tracker...

2018-10-11 18:26:00 98

原创 nginx学习

Nginx的安装(linux环境下)运行环境要知道Nginx是用c语言开发的,所以要安装c语言的运行环境,还有一些相关的类库。1、需要安装gcc的环境。(在线安装)yum install gcc-c++2、第三方的开发包。PCREPCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式库。nginx的htt...

2018-10-09 15:20:00 97 1

原创 装饰模式

装饰模式的概念装饰( Decorator )模式又叫做包装模式。通过一种对客户端透明的方式来扩展对象的功能,是继承关系的一个替换方案。装饰模式的角色和职责抽象组件角色: 一个抽象接口,是被装饰类和装饰类的父接口。具体组件角色:为抽象组件的实现类。抽象装饰角色:包含一个组件的引用,并定义了与抽象组件一致的接口。具体装饰角色:为抽象装饰角色的实现类。负责具体的装饰。引入先来看一...

2018-09-28 14:50:00 62

原创 java工厂模式

简介工厂模式有三种:简单工厂模式,工厂方法模式,抽象工厂模式,这三种都属于工厂模式,但各有不同。简单工厂模式简单工厂模式属于类的创建型模式,又叫做静态工厂方法模式。通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。模式中包含的角色及其职责1.工厂(Creator)角色:简单工厂模式的核心,它负责实现创建所有实例的内部逻辑。工厂类可以被外界直接调用,创建...

2018-05-26 20:01:00 54

原创 Java代理机制

静态代理静态代理是在编译时就将接口、实现类、代理类一股脑儿全部手动完成,但如果我们需要很多的代理,每一个都这么手动的去创建实属浪费时间,而且会有大量的重复代码 。例如: //声明一个接口 package com.ceshi.proxy; public interface Moveable { //提供一个move方法 void move...

2018-05-22 19:36:00 56

原创 struts2拦截器的实现机制

前言最近老大让每周写一篇技术性的博客,想想也没啥写,就想着随便拿个以前的项目去研究研究五大框架的底层代码。本人水平有限,有不对的地方还望大家勿喷,指正!开始之前先了解下strtus2的工作流程:工作原理图:(1) 客户端(Client)向Action发用一个请求(Request)(2) Container通过web.xml映射请求,并获得控制器(Controller)的名字(3) ...

2018-05-11 22:18:00 146

转载 java中的各种数据类型在内存中存储的方式

1.Java是如何管理内存的java的内存管理就是对象的分配和释放问题。(其中包括两部分)分配:内存的分配是由程序完成的,程序员需要通过关键字new为每个对象申请内存空间(基本类型除外),所有的对象都在堆(Heap)中分配空间。释放:对象的释放是由垃圾回收机制决定和执行的,这样做确实简化了程序员的工作。但同时,它也加重了JVM的工作。因为,GC为了能够正确释放对象,GC必须监控每一个对...

2017-08-16 14:20:30 350

原创 struts2入门学习知识点(待完善)

1、什么是框架?为什么使用框架?答:框架是可以重复使用的一些或一整套代码,通常与具体业务无关,也可以认为是软件的半成品。框架的好处是:可以提高开发效率,简化开发过程2、 什么是MVC模式?三层结构?MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,是一种软件设计模式。优点是:代码结构更加清晰,为...

2017-08-15 13:09:09 355

原创 Java web学习遇到的几个面试题

1. servlet生命周期调用init方法时servlet会被创建,并且只创建一次:什么时候被销毁?程序正常关闭时才会被调用destroy销毁方法:2.Servlet主要作用是什么接受浏览器(用户)发送过来的信息,进行相对应的处理,处理完后再返回给浏览器(用户)请求:request  浏览器向服务器发送请求,这个过程叫请求响应:response 服务器响应给浏览器,这个过...

2017-08-12 16:10:33 189

原创 java web学习中遇见的问题

1.classNotFound:这个时候一般考虑web.xml文件的配置。看   <servlet-class></servlet-class>的内容,按住Ctrl键,看是否能跳到你写的servlet类中,若不能,则一定是你的类名全路径弄错了(今天我的就是这样,我把两个servllet的源文件从之前的包下,转移到其他包下,(因为之前没有按分包规则分包,后来又转移了源文件))...

2017-07-10 14:09:16 298

QuartZ源码包

QuartZ源码包

2018-11-11

空空如也

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

TA关注的人

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