自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 资源 (2)
  • 收藏
  • 关注

原创 Hadoop笔记系列一

Hadoophadoop起源:Hadoop起源于开源网络搜索引擎Apache Nutch。Apache Nutch是Lucene项目的一部分,Lucene是文本搜索系统库,Nutch是一个运行的网页爬取工具和搜索引擎系统。2003年的论文,描述谷歌产品架构,GFS(Google File System),2004年Nutch开发者开始着手做开源版本的实现,即Nutch分布式文件系统(NDF...

2018-11-27 16:45:29 232

原创 Java中字符的运算

字符Char:字符编码:字符编码:也称字集码,是把字符集中的字符编码为指定集合中某一对象(例如:比特模式、自然数序列、8位组或者电脉冲),以便文本在计算机中存储和通过通信网络的传递。通俗的讲就是一套规则,将字符和响应的对象进行一一匹配,以便于在特定的场合使用,例如在计算机低层,使用二进制存储数据,因此使用高级语言编写的程序,最终会被转换为二进制,而这个转换规则,就是使用相应的字符编码。...

2018-11-19 11:24:11 2506 1

原创 SpringMVC

SpringMVC本人的理解:学习一个框架,最好的是先从大体上了解大致的运行流程,进而结合实例,从具体出发,对每个流程的具体细节进行了解,这样可以做到从实例中进行学习,对框架的知识进行有条理的梳理和记忆,同时有助于形成一个大局观念。本笔记就是按照这种思路出发,由大到小,有大致流程到具体细化,从每个细节出发,形成一个完成的学习流程,最后在阅读源码。任重而道远,与君共勉。SpringMVC的请...

2018-11-16 15:39:58 109

原创 字符串算法

字符串匹配算法字符串匹配:在字符串中查找子串,或者查找符合某种模式的字符组合。字符串匹配的算法有:字符串T为主串,P为需要匹配的模式或者固定的字符串,T与P的长度分别为n,m,即字符数组的T的下标是0-n-1,P的下标是0-m-1,  蛮力法 Rabin-Karp字符串匹配算法 采用有限状态机实现的字符串匹配算法 KMP算法 Boyer-M...

2018-11-15 14:11:58 221

原创 Spring系列三面向切面

Spring面向切面面向切面编程:即定义一个通用的功能,但是可以通过声明的方式定义这个功能要以何种方式在何处应用,而无需修改受影响的类。相关术语:通知(Advice):定义切面是做什么以及什么时候执行,Spring定义了5中类型的通知。前置通知:在目标方法被调用前执行通知的功能后置通知:在目标方法完成之后,调用通知返回通知:在目标方法成功执行之后调用通知异常通知:在...

2018-11-13 15:40:01 118

原创 Spring系列二Bean装配

Spring Bean装配三种方式:1.隐式的bean发现机制和自动装配2.在Java中进行显示的配置3.在XML中进行显示配置1.隐式的bean发现机制和自动装配需要两个前提,如何隐式发现相应的bean类,如何隐式的满足bean的依赖?解决方法:使用组件扫描,自动装配。组件扫描:Spring会自动发现应用上下文中所创建的bean,使用@ComponentSca...

2018-11-13 10:13:52 239

原创

定义:插入和删除都发生在同一端的有序列表,操作这端称为栈顶,先插入的元素会被最后移除,栈的特点是先进后出栈操作:push()向栈中推入元素pop()从栈中移除元素下溢:从空栈中弹出元素;上溢:向满栈中推入元素;栈的运用:1.符号或标签匹配问题2.中缀表示法转换为后缀表示法3.求后缀表达式的值,4.函数调用 5.浏览器的回退机制6.树的遍历充当...

2018-11-09 10:07:24 114

原创 经典题集之树四

将数组转换为二叉搜索树 平衡树,注意旋转是从失衡的哪个元素开始,不是插入的节点,同时LR,RL旋转是相反的,例如:LR旋转是先R旋转再L旋转。 向树的左侧子节点的左子树中插入元素,采用LL旋转 向树的右侧子节点的右子树中插入元素,采用RR旋转 向x的左侧节点的右子树中插入元素,采用LR旋转 向x的右侧子节点的左子树中插入元素,采用RL旋转 判断二叉搜索树是不是AVL public ...

2018-11-09 09:48:32 111

原创 设计模式笔记之十一桥接模式

桥接模式为什么引入桥接模式当我们定义某个多个功能的时候,其一,我们需要将各个功能独立,其二,每个功能之间可以进行组合,这个时候我们就需要桥接模式来帮助我们完成任务。什么是桥接模式将抽象和实现解耦,使的两者可以独立地变化。核心思想Abstraction:抽象画角色,用于定义出该角色的行为,同时保存一个实现的引用。Implementor:实现的角色的接口,定义了一些行为...

2018-11-08 17:10:51 108

原创 设计模式笔记之十命令模式

命令模式为什么引用命令模式当需求变动比较频繁,如果没有一个具体的负责人的话,那我们每次都必须将项目相关人员带上,去和客户讨论需求,这样做的结果是人力成本过高,而且过去麻烦,如果可以有个负责人,负责只需接受客户的命令需求,就立刻通知相关负责部门进行执行就可以方便很多了,这就是为什么引入命令模式。命令模式是什么将一个请求封装为一个对象,从而可用不同的请求对客户进行参数化,对请求排队或者...

2018-11-08 15:50:06 72

原创 经典题集之树三

将二叉树汇的根节点到每一个叶子结点的路径分别打印出来 判断树中有没有一条连接根节点与叶节点的路径,其中各节点的数据之和等于调用方法锁指定的总和。 求二叉树的所有元素之和 求树的镜像 判断两颗树是否为镜像 打印二叉树特定节点的所有祖先 曲折遍历 在二叉搜索树中查找元素 在二叉搜索树中寻找最小的元素 在二叉搜索树中寻找最大的元素   从二叉树中删除元素 //1.将二叉树汇的...

2018-11-08 14:16:37 135

原创 经典题集之树二

求出二叉树的大小 编写算法按照从下到上的顺序来分层的遍历二叉树。 删除二叉树 求出二叉树的高度 寻找二叉树中最深的节点 确定二叉树中叶子节点的数量 使用非递归算法,确定二叉树中的满节点 使用非递归算法,确定二叉树中半节点的数量 判断两颗树的结构是否相同,即相同的位置都有节点,且值相等。 找出二叉树中各节点总和最大的那一层 //1.求出二叉树的大小 public int Bi...

2018-11-07 21:26:02 151

原创 经典题集之树一

先序遍历 中序遍历 后续遍历 层次遍历 找出二叉树中的最大元素 寻找二叉树中的某个元素 在二叉树中插入元素,插入位置只要满足二叉树要求即可。package com.dong.Tree;import java.util.ArrayDeque;import java.util.Queue;import java.util.Stack;import com.dong.Tree...

2018-11-07 14:54:26 114

原创 设计模式笔记之九备忘录模式

备忘录模式为什么引入备忘录模式在我们的生活中,不可能一番风顺,也会犯错,但是如果可以向word那样,做错了就撤销,回到原来的样子,那就更棒了,又例如数据库,当数据库被破坏,我们通常的做法是从日志中找出原因,如果可以进行恢复,更好,如果不能恢复,我们会将以前备份的数据库迁移过来,然后从数据库日志中查看接下来要执行什么事务,来尽可能的恢复到原来的数据库,在这两种情况下,我们都需要回到事物原来的...

2018-11-06 09:37:46 107

原创 Java中的HashMap源码

HashMap位置: package java.util包下;继承关系:HashMap继承AbstractMap<K,V> static final int DEFAULT_INITIAL_CAPACITY = 1 << 4;默认初始容量是16;  static final float DEFAULT_LOAD_FACTOR = 0.75f;...

2018-11-06 08:30:44 199

原创 设计模式笔记之八职责链模式

职责链模式为什么引入职责链模式作为学生的我们,都有过请假的体验,当我们想请假的时候,我们都会写好请假条让班主任签字,然后将假条拿到教导主任处,让其也签字,经过两到门槛,终于可以出校门了,这种需要多重判决,大家共同承担责任的场景就需要责任链模式。什么是职责链模式避免将请求发送者和接受者耦合在一起,让多个对象都有机会接受请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处...

2018-11-06 08:28:24 117

原创 设计模式笔记之七适配器模式

适配器模式为什么引入适配器模式在生活中,我们使用的电器中,有的电压小于标准电压,这个时候,如果我们想使用该电器,我们通常的做法是使用一个变压器,将变压降低到该电器能够使用的电压,我们使用变压器将接口进行转化,将产生过大变压的接口转化为该电器可以使用的电压接口,这个变压器就是适配器。适配器模式是什么将一个接口转换成客户希望的另一个接口,使接口不兼容的那些类可以一起工作,别名为包装器。...

2018-11-05 14:57:00 141

原创 设计模式笔记之六代理模式

代理模式为什么需要代理模式当我们需要访问外部资源的时候,由于我们自己网络限制,我们不能够访问到外部资源,但是如果有一个主机,可以我们访问外部的资源,然后将外部资源存放到存储设备上,然后我们可以访问这个存储设备来获取我们想要的资源。在这里这个主机扮演者代理的角色,帮助我们获取我们需要的资源,因此,我们需要代理模式来帮助我们实现我们自身不能实现的需求。什么是代理模式给某一个对象提供一个...

2018-11-05 13:40:36 117

原创 设计模式笔记之五建造者模式

建造者模式为什么需要建造者模式当我们要创建多个具体实例时,如果需要为每个场景创建一个具体的类,这样实现起来比较麻烦,所以我们需要一个角色,帮助我们针对不同的场景创建不同的实例,当一个实例的创建可以由不同步骤组成,不同的步骤创建不同的实例,固定的创建单个具体实例虽然可以,但是当实例的种类过多,或者需求变动过大,则会产生大量重复的代码,这个时候,需要一个角色扮演实例的创建指挥者,即明确不同的需...

2018-11-05 11:37:04 201

原创 设计模式笔记之四原型模式

原型模式为什么引入原型模式?当我们需要创建某个对象的时候,我们使用new关键字,但是当我们需要创建两个相同的对象,接着new,当数量特定少的时候,我们可以采用直接创建对象,但是当我们需要创建很多对象的时候,我们就不能一直new,首先是因为堆内存有限,只允许我们new特定数量的对象,因此我们需要另一种方式,快速的实现对象的复制,克隆,因此引入原型模式。原型模式是什么?用原型欧实例指定...

2018-11-04 15:43:35 112

原创 设计模式笔记之三抽象工厂模式

抽象工厂模式为什么引入抽象工厂模式?一个接口代表一系列操作,当我们需要的对象需要多个接口,而这些接口又是不相干的,同时对于类的创建我们不需要知道具体的实现细节,只需要知道某个特征就可以,虽然工厂方法模式可以满足要求,但是工厂方法模式会让类本身实现很多不相关的操作,同时增加了对象内部的复杂性,我们需要一种从更高层来抽象,将接口分离,同时在创建对象的时候,又将不同接口之前操作进行组合的角色,这...

2018-11-04 11:51:35 129

原创 设计模式笔记之二工厂方法模式

工厂方法模式为什么引入工厂方法模式?当我们需要创建多个实例的时候,而这些类又是有着公共的方法,区别就是实现的具体操作不同,我们需要专门为这些类创建实例,但是,如果我们没有创建这些的类的权限的时候,(并不是说我们真没有new方法,而是外在的因素)我们需要找一个可以帮我们生产对象的工具,这个听起来和代理模式有些相似,但是工厂模式也是工厂代替我们生产我们需要的实例,工厂模式生成的对象之间是相似的...

2018-11-04 09:35:41 206

原创 设计模式笔记之一单例模式

单例模式为什么引入单例模式?当我们需要查看系统的进程,内存的使用情况时,打开任务管理器,可以查看到系统的当前的运行状态,但是在没有关闭上一个任务管理器的时,我们在打开一个任务管理器时,这个时候不会出现第二个任务管理器,因为任务管理器是获取系统的运行情况,实时的分析系统,只需要一个就够了,如果打开多个,有可能造成系统的分析情况不一致。在这种类似的情况,我们只需要一个对象就可以满足我们的需...

2018-11-03 15:35:13 138

原创 设计模式笔记之一概要篇

设计模式的起源模式之父Christopher Alexander(克里斯托弗﹒亚历山大),哈佛大学建筑学博士,美国加州大学伯克利分销建筑学教授,加州大学伯克利分校环境结构研究所所长,美国艺术和科学院院士等,Charistopher Alexander博士及其研究团队用了约20年的时间,对住宅和周边环境进行大量的调查研究和资料收集工作,发现人们对舒适住宅和城市环境存在一个共同的认同规律,Chri...

2018-11-03 11:07:13 139

原创 Java多线程设计模式概要

多线程设计模式设计模式,来自建筑学,通过观察大量的建筑设计,总结出来的一套最常用的设计方法,迁移到计算机领域,就是如何很好的设计类与类之间的关系和交互,实现低耦合,高内聚的设计。⑴single Thread Execution 模式:Synchronized同步方法,当多线程访问临界资源的时候,为了防止并发导致的数据不一致问题,所以使用Synchronized同步,让同一时刻只有一个线...

2018-11-03 10:42:02 179

原创 Java虚拟机系列005

JVM类加载本章节讲解Class文件中的信息进入到虚拟机后发生什么变化虚拟机把描述的类的数据从Class文件加载到内存,并对数据进行效验,转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是Java虚拟机的类加载机制。1.类加载的时机类加载的生命周期包括:加载,验证,准备,解析,初始化,使用,卸载7个阶段。其中验证,准备,解析3部分称为链接。加载,验证,准备,初始化...

2018-11-02 08:31:25 161

原创 Java虚拟机系列004

垃圾收集器垃圾收集器是内存回收的具体实现。Java虚拟机规范中对垃圾回收器的实现并未有任何规定,因此,不同的厂商,不同的版本的虚拟机所提供的垃圾回收器可能差异很大。下面介绍几种不同的收集器。1.Serial收集器Serial收集器是一个最基本,发展悠久的收集器,曾经是虚拟机新生代收集的唯一选择(JDK1.3.1之前)。它是一个单线程的收集器,它的单线程有两方面的理解:一是它只会使用一个...

2018-11-02 08:21:01 205

原创 Java虚拟机系列003

JVM垃圾收集垃圾收集器的历史比Java久远,1960年诞生于MIT的Lisp是第一门真正使用内存动态分配和垃圾收集技术的语言。对于垃圾回收,我们首先考虑的是什么样的对象为可回收对象,即使对象什么时候判定为死亡,其次是什么时候进行回收,最后是如何回收。1.什么样的对象为可回收对象?当对象死亡,JVM便对其分配的内存进行回收,对其进行销毁。⑴如何判断对象死亡,即什么才算对象死亡?...

2018-11-01 15:25:07 117

原创 Java虚拟机系列002

运行时数据区域Java虚拟机在运行Java代码时,它会把他所管理的内存分为若干个不同的数据区域。这些区域都各有各的目的和用途,大致可分为一下几个区域:程序计数器,方法区,虚拟机栈,本地方法栈,堆。程序计数器:字节码的行号,编译器用来改变程序计数器来选取下一条需要执行的字节码指令,每个线程都有一个独立计数器。虚拟机栈:Java方法执行的内存模型,每个方法在执行的时候会生成一个栈帧,栈...

2018-11-01 15:12:32 169

原创 Java虚拟机系列001

作为当今排名靠前的Java编程语言,要想学好Java语言,必须知其然知其所以然,对Java的语法,特征的掌握是基础,其次,对于Java是如何运作,对象如何创建的,GC是如何回收对象的,也必须有一个清楚的了解,这样才可以更好的了解JAVA是如何由编写,到编译,到运行的,我将整理Java系列,让大家对Java有个全新的了解。重点:语言只是用来开发的工具,只有先熟练运行工具才可以得心应手的进行开发,重在...

2018-11-01 11:59:45 429

SpringBoot2.14手册部分整理

本资源适合新手对于Spring的理解,同时资料中每个实例都是在机器进行运行,资料并非Spring2.14手册的所有资源,整理部分资料

2019-05-03

空空如也

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

TA关注的人

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