自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 资源 (3)
  • 收藏
  • 关注

转载 Servlet映射规则和Servlet的映射URL冲突时匹配原则

url-pattern中通配符*的使用规则同一个Servlet可以被映射到多个URL上,即多个<servlet-mapping>元素的<servlet-name>子元素的设置值可以是同一个Servlet的注册名。在Servlet映射到的URL中也可以使用通配符,但是只能有两种固定的格式:一种格式是“.扩展名”,另一种格式是以正斜杠(/)开头并以“/*”结尾。...

2018-03-15 11:38:03 1295

原创 Java虚拟机的类加载机制

虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这便是Java虚拟机的重载机制。类的加载时机类从被加载到内存开始,到卸载出内存为止,它的整个生命周期包括:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initializatio...

2018-03-09 09:22:19 138

原创 Java垃圾收集

Java内存模型中的程序计数器、Java栈和本地方法栈为各线程私有,随着线程的创建而生,随线程的终结而灭,这几个区域的内存基本上是在类结构确定下来的时候就已经确定的,因此这三个区域的内存的分配回收都具有确定性,回收价值不大。Java的垃圾收集主要发生在线程共享的发放区和Java堆中。确定Java对象是否存活要进行对象回收,首先要确定的是Java对象是否还存活,只有对失去引用的对象才可以...

2018-03-08 10:15:59 219

原创 Java内存管理机制

Java程序由JVM自动管理内存,不需要为new操作去写配对的delete、free代码,不容易出现内存泄露和内存溢出等问题。也正是因为Java把内存管理的权利交给了JVM,一旦出现内存泄露和内存溢出,若要排查相关的问题,必须对Java内存模型以及内存管理机制有所了解。本文将介绍Java内存的每一个部分的服务对象、作用以及可能产生的问题。Java程序运行时的数据区域Java虚拟机在运行...

2018-03-08 07:16:12 158

原创 Java泛型程序设计

泛型是Java SE1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。Java语言引入泛型的好处是安全简单。在Java SE 1.5之前,没有泛型的情况的下,通过对类型Object的引用来实现参数的“任意化”,“任意化”带来的缺点是要做显式的强制类型转换,而这种转换是要求开发...

2018-03-04 19:48:29 162

原创 Java并发编程——线程间通信

线程开始运行,拥有自己的运行空间,按照流程执行,但是运行中的线程如果只是孤立的运行,没有和其他线程的交互,那么就无法有效的完成复杂的逻辑,如果让多个线程之间互相通信,协作执行,那么就可以完成比较复杂的工作,带来巨大的收益。因此研究线程之间的通信机制就很有必要了,本文简单讨论一下线程之间的通信机制以及线程通信的用法。volatile和synchronized关键字Java支持多个线程同时...

2018-03-02 23:28:49 152

原创 Java并发编程基础

现代操作系统在运行一个程序时,会为其创建一个进程,而一个程序往往会包含比较多的业务逻辑,为了追求更快的相应时间和更好的客户体验,我们可以将复杂的业务逻辑分解为几个支线同步进行,这样就会在一个进程内进一步创建出多个逻辑,而这个在同一个进程中运行的多个业务逻辑就被称为线程。 现代计算机拥有越来越多的处理器核心,使用多线程技术,将计算逻辑分配到多个处理器核心上,就会显著减少程序的处理时间,得到更好的客...

2018-03-02 20:27:32 113

原创 Java并发编程——底层实现原理

并发编程底层原理Java程序在执行前会被编译为字节码,字节码文件被加载到JVM中,由JVM来执行字节码文件,最终的执行需要转换为汇编语言在CPU上执行,因此,Java的并发编程底层的实现与JVM的实现和CPU的指令有关。本文将简单讨论下Java并发编程的底层实现原理和Java的内存模型。volatile和synchronized在Java的并发编程中,volatile和synchron...

2018-03-01 18:25:28 471

原创 JSP基础

通过servlet进行整个网站的开发也是可以的,不过在servlet中输出HTML代码,特别是比较复杂的HTML代码,就会显得特别麻烦。为了解决这种难题,我们采用一种技术JSP,可以很方便的在HTML代码中编写java代码,本文就对这种技术进行讲解。 J

2017-11-26 19:34:47 151

原创 BootStrap介绍

BootStrap 是Twitter的工程师开发的前端框架,可以非常方便的设计出好看的页面效果。

2017-11-21 05:39:21 290

原创 jQuery基础

jQuery是一个javascript的框架,是对javascript的一种封装。 通过JQuery可以非常方便的操作html的元素 。

2017-11-21 03:31:15 109

原创 Document Object Model( 文档对象模型 )

DOM 是Document Object Model( 文档对象模型 )的缩写。 DOM是把html里面的各种数据当作对象进行操作的一种思路。 比如一个超链,作为一个DOM对象,就可以使其隐藏,修改其href指向的地址。

2017-11-19 13:52:30 735

原创 javascript之浏览器对象模型(Brower Object Model)

浏览器对象包括 Window(窗口) 、Navigator(浏览器) 、Screen (客户端屏幕) 、History(访问历史) 、Location(浏览器地址) 。

2017-11-18 11:41:51 210

原创 javascript基础知识点总结

JavaScript用于网页和用户之间的交互,比如提交的时候,进行用户名是否为空的判断。 完整的javascript由语言基础,BOM和DOM组成。

2017-11-18 11:11:10 303

原创 排序算法(下)

归并排序归并排序是将两个较小的有序数组归并为一个较大的有序数组。将一个数组排序,可以先将该数组分成两半,将这两半分别排序,最后将两个有序的子序列归并。根据这种思想,人们发明了一种简单的递归排序算法,归并排序。 快速排序是应用最广泛的的排序算法,采用递归调用对元素进行排序,是基于比较排序算法的一个著名算法。

2017-08-08 12:28:53 171

原创 排序算法(中)

本文接着排序算法(上)的内容继续介绍交换排序(冒泡排序和快速排序)和插入排序(插入排序、Shell排序)。

2017-08-08 07:37:24 275

原创 排序算法(上)

排序的基本概念算法优劣的描述对于一个排序算法一般从以下三个方面来评估算法的优劣:时间复杂度:主要分析关键字的比较次数和记录的移动次数空间复杂度:分析排序算法所需要的额外内存稳定性:若两个记录的关键字的值相等,且排序后二者的相对次序没有发生变化,则次排序算法是稳定的,否则就不是稳定的。内排和外排内部排序和外部排序:整个过程不需要借助外部存储器,均在内存中完成,成为内部排序,否则成为外部

2017-02-26 11:31:20 254

原创 CSS的简单用法(上)

CSS的作用和发展 什么是CSS CSS 指层叠样式表 (Cascading Style Sheets),是一种专门描述结构文档的表现方式的文档,包括字体大小、颜色、以及元素的精确定位等等。CSS可以让传统的web页面更具表现力。CSS相比传统的HTMLD的优势 表达效果丰富 文档体积小 便于信息检索 可读性好CSS的基本使用 1、CSS的引入方式 CSS可以控制HTML的表现形式,

2017-02-12 23:20:39 474 1

原创 HTML常用标签介绍(下)

1、 table标签<body> <table width="50%" height="200px" border="1" cellspacing="0" cellpadding="0" bgcolor="green" align="center"> <caption>我喜欢的歌曲</caption> <thead>

2017-02-12 19:16:51 179

原创 HTML常用标签介绍(上)

声明必须是 HTML 文档的第一行,位于 标签之前。 声明不是 HTML 标签;它是指示 web 浏览器关于页面使用哪个 HTML 版本进行编写的指令。 在 HTML 4.01 中, 声明引用 DTD,因为 HTML 4.01 基于 SGML。DTD 规定了标记语言的规则,这样浏览器才能正确地呈现内容。 HTML5 不基于 SGML,所以不需要引用 DTD。 参考以下网站 2.hea

2017-02-12 12:29:45 256

原创 红黑树(下)

本文是红黑树系列文章的第三篇,前两篇分别介绍了2-3树和红黑树常用操作的理论,本文主要介绍红黑树的实现。

2017-01-21 03:28:53 192

原创 红黑树(中)

红黑二叉查找树背后的基本思想是标准的二叉查找树(完全由2-节点构成)和一些额外信息(替换3-节点)来表示2-3树中的节点分为两种类型:红链接将两个2-节点链接起来构成一个3-节点,黑链接则是2-3树中普通的节点。

2017-01-21 02:13:22 155

原创 红黑树(上)

排序二叉树虽然效率较高,可以快速 的检索,但是当要插入的节点本身就是有序的,那么所有的节点构成链表。如果插入的节点本身按照从大到小的顺序插入,那么所有节点都只有左子节点,如果节点本身按照从小到大的顺序排列,那么所有节点都只有右子节点,排序二叉树变为普通的链表,此时其检索效率就会很低。为了改进排序二叉树的不足,本文从2-3查找树谈起,构造一种二分查找树——红黑树,介绍红黑树的插入删除等操作。

2017-01-20 23:55:42 184

原创 二叉查找树

二叉排序树(Binary Sort Tree)又称二叉查找树(Binary Search Tree),亦称二叉搜索树。本文主要介绍二叉查找树的基本操作。

2017-01-15 07:41:13 197

原创 线索二叉树(下)

采用二叉链表和三叉链表作为二叉树的存储结构,只能找到节点的左右孩子和父节点(三叉链表),而不能直接找到该节点的直接前驱和直接后驱的相关信息,只能在对二叉树的遍历中才能得到,这显然不是最直接和最便利的方法。为了直接得到任何一个节点的直接前驱和直接后驱的信息,需要对二叉树进行线索化,本文主要介绍线索二叉树的概念机线索二叉树的遍历。

2017-01-13 23:57:46 213

原创 哈夫曼树

哈夫曼(Huffman)树又称为最优二叉树,它是一种带权路径长度最短的树,在信息检索中非常有用。本文主要介绍哈夫曼树的概念、哈夫曼编码、哈夫曼树的实现。

2017-01-10 23:45:23 560

原创 二叉树(下)

树、森林、二叉树由于二叉树是一种更确定的数据结构(每个节点最多只有两个子节点),因此它的增删和遍历都比一般的树更加方便和容易实现,反观树的每个节点由于子节点的个数不确定,因此它的增删和遍历都比较复杂。实际上,树、森林和二叉树作为树的类型,他们之间是可以互相转换的。本文主要介绍森林与二叉树的相互转换、树与森林的遍历。

2017-01-08 19:31:19 292

原创 线索二叉树(上)

遍历二叉树指的是按照某种规律以此访问二叉树中所有的节点,实际上就是讲非线性结构的二叉树中的节点排列在一个线性序列的过程。6. 1 二叉树遍历概述如果二叉树底层是用顺序存储结构来保存的,那么遍历二叉树中的节点,直接遍历底层数组即可,如果采用的是链式存储结构保存的,那么有深度优先遍历和广度优先遍历两种遍历方法,本文主要介绍链式存储结构的二叉树的遍历。

2017-01-05 22:29:08 176

原创 二叉树(上)

树中节点的度数没限制,而二叉树中树的度数最大为2,无序树的节点无左右之分,而二叉树的节点有左右之分,也即二叉树是有序树。本文主要介绍二叉树的基本性质以及二叉树的顺序存储和链式存储的实现。

2017-01-04 22:33:40 320

原创

节点:树的最基本组成元素,常常包含一个数据元素以及若干个指针用于指向其他节点;节点的度(degree):节点拥有的子树的个数树的度:树中所有节点的最大度即该树的度叶子节点:度为0的节点被称为叶子节点或者终端节点分支节点:度不为0的节点称为分支节点或者非终端节点子节点、父节点、兄弟节点:节点的子树的根被称为该节点的子节点,该节点被称为子节点的父节点,具有相

2017-01-04 22:31:41 185

原创 队列

队列(queue)简称队,和堆栈一样,也是一种运算受限的线性表。其限制只允许在表的一端进行插入,被称为队尾(rear),另外一端只允许删除,被称为队头(front)。向队尾插入元素称为入队或进队,新元素入队后称为新的队尾元素,从队头删除元素称为离队或出队,其后续元素成为新的队头元素。由于队列的插入和删除操作分别在队列的队尾和队头进行,所以每个元素必然按照进入的顺序离队,也就是先进队的元素先

2017-01-01 11:37:39 250

原创

栈(stack)又称堆栈,是一运算受限的线性表。其限制是只允许在线性表的一端进行插入与删除操作,不允许在 其他任何地方进行插入、删除、读取等操作。表中进行读取插入删除的一端称为栈顶(top),栈顶保存的元素称为栈顶元素,另外一端称为栈底(bottom)。当栈中没有元素时称为空栈,向一个栈中插入元素又称为入栈或进栈,从栈中删除一个元素称为出栈或退栈。

2017-01-01 02:13:27 297

原创 线性表

线性结构是最简单也是最常用的数据结构之一。线性数据结构的特点是:在数据元素的有限集中,除了第一个元素没有直接前驱,最后一个元素没有直接后继外,其他元素有且仅有一个前驱和一个后继。线性表有两种存储实现方式,分别是顺序存储和链式存储,本文主要介绍两种方式实现线性表,并对他们的优缺点做一简单的比较。

2016-12-31 16:41:03 246

原创 模板方法模式

# 3、模板方法模式(Template Method Pattern) ### 3.1模板方法模式的定义 ##**定义一个操作中的算法的框架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定步骤。****模板方法模式就是在模板方法中按照一定的规则和顺序调用基本方法。**模板方法模式的代码如下:抽象模板类:    public abstr

2016-11-16 01:20:02 171

原创 建造者模式

# 4、建造者模式(Builder Pattern) ### 4.1 建造者模式的定义 ##**建造者模式也叫生成器模式,将一个复杂对象的构建和它的表示相分离,使得同样的构建过程可以创建不同的表示。**在建造者模式中,有如下四个角色:![](http://images.cnitblog.com/blog/533121/201411/291709102623978.png)1. 

2016-11-16 01:19:21 151

原创 工厂方法模式

# 2、工厂方法模式(Factory Method Pattern) ### 2.1工厂方法模式的定义 ##**定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法模式使一个类的实例化延迟到其子类。**工厂方法模式的通用类图如下:![](http://img7.ph.126.net/30_6VOACUjXg79ihasasFQ==/2751136422387534377.

2016-11-16 01:18:40 253

原创 设计模式的六大设计原则

# 设计模式的六大设计原则 ### 1.单一职责原则(Single Responsibility Principle,SRP) ##**1.1 单一职责的原则是:应该有且仅有一个原因引起类的变更。**单一职责原则提出了一个编写程序的标准,用”职责“或”变化原因“来衡量接口和类设计的是否优良,但是”职责“或”变化原因“是因项目和环境而异的。**1.2 单一职责的好处**1. 类的

2016-11-16 01:18:00 204

原创 单例模式

# 1、单例模式(Singleton Pattern) ### 1.1单例模式的定义 ##**确保其中一个类只有一个实例,而且自行实例化,并且向系统提供这个实例。**单例模式的通用代码如下:**饿汉式:**    public class Singleton {    private static final Singleton singleton = new Sing

2016-11-16 01:16:44 241

Java项目说明文档

本资源是Java实际项目的开发文档,对于初学者和找工作的同道做项目很有帮助

2018-03-04

Java基础知识整理

Java基础知识复习最好的资源,帮您通过面试大关,顺利拿到offer

2018-03-02

java web实战教程

java实例200

2017-01-15

空空如也

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

TA关注的人

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