自定义博客皮肤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)
  • 资源 (3)
  • 收藏
  • 关注

转载 (四)Spring核心思想 - IOC与DI

原文链接地址:http://martinfowler.com/articles/injection.html Inversion of Control Containers and the Dependency Injection patternIn the Java community there's been a rush of lightweight containers that

2015-01-30 17:52:24 799

原创 (三)Spring概念与基础知识二

一、Spring注解配置的方式从Spring2.5以后,Spring开始全面支持注解方式配置,所以可以不用写xml配置文件,一样可以使用Spring。(1)使用Spring注解方式,必须加入Spring注解方式所依赖的jar包:common-annotation.jar。(2)使用注解方式时,必须在Spring配置文件的schema中添加注解的命名空间如下:<beans

2015-01-30 13:53:55 512

原创 (二)Spring概念与基础知识一

一、Spring的最核心的思想(1).控制反转(IOC):以前传统的java开发模式中,当需要一个对象时,我们会自己使用new或者getInstance等直接或者间接调用构造方法创建一个对象,而在Spring开发模式中,Spring容器使用了工厂模式为我们创建了所需要的对象,我们使用时不需要自己去创建,直接调用Spring为我们提供的对象即可,这就是控制反转的思想。实例化一个java对

2015-01-30 11:39:46 600

原创 (一)Spring框架原理与作用

一、Spring简介           Spring是一个开源框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。   ◆目的:解决企业应用开发的复杂性。

2015-01-29 16:49:42 1030

原创 spring源码官方下载

The Spring Framework repository has moved to http://github.com/SpringSource/spring-framework.See the readme there for details on working with Git, building the framework, etc.Note that svn-based

2015-01-29 15:26:16 610

原创 图结构(八)- Prim算法

一、普里姆算法介绍普里姆(Prim)算法,是用来求加权连通图的最小生成树的算法。 基本思想  对于图G而言,V是所有顶点的集合;现在,设置两个新的集合U和T,其中U用于存放G的最小生成树中的顶点,T存放G的最小生成树中的边。 从所有uЄU,vЄ(V-U) (V-U表示出去U的所有顶点)的边中选取权值最小的边(u, v),将顶点v加入集合U中,将边(u, v)加入集合T中,如此不断重复,

2015-01-27 20:16:47 455

原创 图结构(七)- Kruskal算法

一、最小生成树在含有n个顶点的连通图中选择n-1条边,构成一棵极小连通子图,并使该连通子图中n-1条边上权值之和达到最小,则称其为连通网的最小生成树。例如,对于如上图G4所示的连通网可以有多棵权值总和不相同的生成树。二、克鲁斯卡尔算法介绍克鲁斯卡尔(Kruskal)算法,是用来求加权连通图的最小生成树的算法。 基本思想:按照权值从小到大的顺序选择n-1条边,并保证这n-

2015-01-27 19:59:16 585

原创 图结构(六)- 深度优先搜索与广度优先搜索

一、深度优先搜索的图文介绍1. 深度优先搜索介绍图的深度优先搜索(Depth First Search),和树的先序遍历比较类似。 它的思想:假设初始状态是图中所有顶点均未被访问,则从某个顶点v出发,首先访问该顶点,然后依次从它的各个未被访问的邻接点出发深度优先搜索遍历图,直至图中所有和v有路径相通的顶点都被访问到。 若此时尚有其他顶点未被访问到,则另选一个未被访问的顶点作起始点,重复

2015-01-27 18:59:01 469

原创 图结构(五)- 邻接表有向图

一、邻接表有向图的介绍邻接表有向图是指通过邻接表表示的有向图。上面的图G2包含了"A,B,C,D,E,F,G"共7个顶点,而且包含了",,,,,,,,"共9条边。上图右边的矩阵是G2在内存中的邻接表示意图。每一个顶点都包含一条链表,该链表记录了"该顶点所对应的出边的另一个顶点的序号"。例如,第1个顶点(顶点B)包含的链表所包含的节点的数据分别是"2,4,5";而这"2,4,5"分别

2015-01-27 18:03:48 2869

原创 图结构(四)- 邻接矩阵有向图

一、邻接矩阵有向图的介绍邻接矩阵有向图是指通过邻接矩阵表示的有向图。上面的图G2包含了"A,B,C,D,E,F,G"共7个顶点,而且包含了",,,,,,,,"共9条边。上图右边的矩阵是G2在内存中的邻接矩阵示意图。A[i][j]=1表示第i个顶点到第j个顶点是一条边,A[i][j]=0则表示不是一条边;而A[i][j]表示的是第i行第j列的值;例如,A[1,2]=1,表示第

2015-01-27 16:33:26 1682

原创 图结构(三)- 邻接表无向图

一、邻接表无向图的介绍邻接表无向图是指通过邻接表表示的无向图。上面的图G1包含了"A,B,C,D,E,F,G"共7个顶点,而且包含了"(A,C),(A,D),(A,F),(B,C),(C,D),(E,G),(F,G)"共7条边。上图右边的矩阵是G1在内存中的邻接表示意图。每一个顶点都包含一条链表,该链表记录了"该顶点的邻接点的序号"。例如,第2个顶点(顶点C)包含的链表所包

2015-01-27 16:19:11 1931

原创 排序算法(六)- 归并排序

一、归并排序的介绍将两个的有序数列合并成一个有序数列,我们称之为"归并"。归并排序(Merge Sort)就是利用归并思想对数列进行排序。根据具体的实现,归并排序包括"从上往下"和"从下往上"2种方式。1. 从下往上的归并排序:将待排序的数列分成若干个长度为1的子数列,然后将这些数列两两合并;得到若干个长度为2的有序数列,再将这些数列两两合并;得到若干个长度为4的有序数列,再将它们两两

2015-01-27 15:48:05 510

原创 排序算法(五)- 选择排序

一、选择排序介绍选择排序(Selection sort)是一种简单直观的排序算法。它的基本思想是:首先在未排序的数列中找到最小(or最大)元素,然后将其存放到数列的起始位置;接着,再从剩余未排序的元素中继续寻找最小(or最大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。二、选择排序图文说明选择排序代码:/* * 选择排序 * * 参数说明: *

2015-01-27 14:33:54 502

原创 排序算法(四)- 希尔排序

一、希尔排序介绍希尔排序(Shell Sort)是插入排序的一种,它是针对直接插入排序算法的改进。该方法又称缩小增量排序,因DL.Shell于1959年提出而得名。希尔排序实质上是一种分组插入方法。它的基本思想是:对于n个待排序的数列,取一个小于n的整数gap(gap被称为步长)将待排序元素分成若干个组子序列,所有距离为gap的倍数的记录放在同一个组中;然后,对各组内的元素进行直接插入排序

2015-01-27 14:14:43 1256 1

原创 排序算法(三)- 直接插入排序

一、直接插入排序算法介绍直接插入排序(Straight Insertion Sort)的基本思想是:把n个待排序的元素看成为一个有序表和一个无序表。开始时有序表中只包含1个元素,无序表中包含有n-1个元素,排序过程中每次从无序表中取出第一个元素,将它插入到有序表中的适当位置,使之成为新的有序表,重复n-1次可完成排序过程。二、直接插入排序图文说明代码如下:/* * 直接插入排序

2015-01-25 12:42:02 602

原创 排序算法(二)- 快速排序

一、快速排序介绍快速排序(Quick Sort)使用分治法策略。它的基本思想是:选择一个基准数,通过一趟排序将要排序的数据分割成独立的两部分;其中一部分的所有数据都比另外一部分的所有数据都要小。然后,再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。快速排序流程:(1) 从数列中挑出一个基准值。(2) 将所有比基准值小的摆放在基准

2015-01-23 06:30:17 404

原创 排序算法(一)- 冒泡排序

一、冒泡排序介绍冒泡排序(Bubble Sort),又被称为气泡排序或泡沫排序。它是一种较简单的排序算法。它会遍历若干次要排序的数列,每次遍历时,它都会从前往后依次的比较相邻两个数的大小;如果前者比后者大,则交换它们的位置。这样,一次遍历之后,最大的元素就在数列的末尾! 采用相同的方法再次遍历时,第二大的元素就被排列在最大元素之前。重复此操作,直到整个数列都有序为止!二、冒泡排序图文说

2015-01-23 06:17:02 405

原创 图结构(二)- 邻接矩阵无向图

一、邻接矩阵无向图的介绍邻接矩阵无向图是指通过邻接矩阵表示的无向图。上面的图G1包含了"A,B,C,D,E,F,G"共7个顶点,而且包含了"(A,C),(A,D),(A,F),(B,C),(C,D),(E,G),(F,G)"共7条边。由于这是无向图,所以边(A,C)和边(C,A)是同一条边;这里列举边时,是按照字母先后顺序列举的。上图右边的矩阵是G1在内存中的邻接矩阵示意图。A[i

2015-01-22 06:27:27 979

原创 图结构(一)- 图的理论基础

一、图的基本概念1、图的定义定义:图(graph)是由一些点(vertex)和这些点之间的连线(edge)所组成的;其中,点通常被成为"顶点(vertex)",而点与点之间的连线则被成为"边或弧"(edege)。通常记为,G=(V,E)。2、图的分类根据边是否有方向,将图可以划分为:无向图和有向图。2.1、无向图上面的图G0是无向图,无向图的所有的边都是不区分方向的

2015-01-16 06:26:43 594

原创 堆结构(三) - 斜堆的原理与实现

一、斜堆的介绍斜堆(Skew heap)也叫自适应堆(self-adjusting heap),它是左倾堆的一个变种。和左倾堆一样,它通常也用于实现优先队列;作为一种自适应的左倾堆,它的合并操作的时间复杂度也是O(lg n)。它与左倾堆的差别是:(1) 斜堆的节点没有"零距离"这个属性,而左倾堆则有。(2) 斜堆的合并操作和左倾堆的合并操作算法不同。斜堆的合并操作(1) 如

2015-01-16 06:06:52 807

原创 官网大全

Sun官方网站     www.sun.com   中文网站     cn.sun.comJ2SE 下载网站   http://java.sun.com/javase/downloads/J2EE 下载网站   http://java.sun.com/javaee/downloads/ JSP官方技术文档 http://java.sun.com/products/j

2015-01-15 16:56:43 608

转载 Bat命令学习

Bat命令学习基础部分:======================================================================一、基础语法: 1.批处理文件是一个“.bat”结尾的文本文件,这个文件的每一行都是一条DOS命令。可以使用任何文本文件编辑工具创建和修改。 2.批处理是一种简单的程序,可以用 if 和

2015-01-15 14:04:57 578

原创 堆结构(二) - 左倾堆的原理与实现

一、左倾堆的介绍左倾堆(leftist tree 或 leftist heap),又被成为左偏树、左偏堆,最左堆等。它和二叉堆一样,都是优先队列实现方式。当优先队列中涉及到"对两个优先队列进行合并"的问题时,二叉堆的效率就无法令人满意了,而本文介绍的左倾堆,则可以很好地解决这类问题。左倾堆的定义:上图是一颗左倾树,它的节点除了和二叉树的节点一样具有左右子树指针外,还有两个属

2015-01-14 06:53:06 947

转载 linux命令大全

系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI) hdparm -i /dev/hda 罗列一个磁盘的架构特性 hdparm -tT /dev/sda 在磁盘上执行测试性读取操作 cat /proc/

2015-01-14 06:24:53 412

原创 堆结构(一) - 二叉堆的原理与实现

一、二叉堆的介绍二叉堆是完全二元树或者是近似完全二元树,按照数据的排列方式可以分为两种:最大堆和最小堆。最大堆:父结点的键值总是大于或等于任何一个子节点的键值;最小堆:父结点的键值总是小于或等于任何一个子节点的键值。二叉堆一般都通过"数组"来实现,下面是数组实现的最大堆和最小堆的示意图:二、二叉堆的图文解析图文解析是以"最大堆"来进行介绍的。最大堆的核心内容是"添加"和

2015-01-13 14:38:08 739

原创 树结构(四) - 哈夫曼树的原理与实现

一、哈夫曼树的介绍Huffman Tree,中文名是哈夫曼树或霍夫曼树,它是最优二叉树。定义:给定n个权值作为n个叶子结点,构造一棵二叉树,若树的带权路径长度达到最小,则这棵树被称为哈夫曼树。 这个定义里面涉及到了几个陌生的概念,下面就是一颗哈夫曼树,我们来看图解答。(1) 路径和路径长度定义:在一棵树中,从一个结点往下可以达到的孩子或孙子结点之间的通路,称为路径。通路

2015-01-13 13:24:00 6353

原创 SQL server 2008查询数据库中含有此字段内容的所有表

SQL server 2008查询数据库中含有此字段内容的所有表,并将表与字段插入到临时表中。存储过程如下:USE [cwbase27]GO/****** Object: StoredProcedure [dbo].[global_search] Script Date: 01/13/2015 11:05:22 ******/SET ANSI_NULLS ONGOSET QU

2015-01-13 11:06:26 1935

原创 树结构(三) - 红黑树的实现

        红黑树的基本操作是添加、删除和旋转。在对红黑树进行添加或删除后,会用到旋转方法。为什么呢?道理很简单,添加或删除红黑树中的节点之后,红黑树就发生了变化,可能不满足红黑树的5条性质,也就不再是一颗红黑树了,而是一颗普通的树。而通过旋转,可以使这颗树重新成为红黑树。简单点说,旋转的目的是让树保持红黑树的特性。旋转包括两种:左旋 和 右旋。下面分别对红黑树的基本操作进行介绍:

2015-01-11 19:25:56 455

原创 树结构(二) - 红黑树的原理介绍

一、R-B Tree简介R-B Tree,全称是Red-Black Tree,又称为“红黑树”,它一种特殊的二叉查找树。红黑树的每个节点上都有存储位表示节点的颜色,可以是红(Red)或黑(Black)。红黑树的特性:(1)每个节点或者是黑色,或者是红色。(2)根节点是黑色。(3)每个叶子节点(NIL)是黑色。 [注意:这里叶子节点,是指为空(NIL或NULL)的叶子节点

2015-01-08 15:24:32 530

原创 树结构(一) - 二叉树查找树的原理与实现

一、二叉树查找树的原理二叉查找树(Binary Search Tree),它是特殊的二叉树:对于二叉树,假设x为二叉树中的任意一个结点,x节点包含关键字key,节点x的key值记为key[x]。如果y是x的左子树中的一个结点,则key[y] = key[x]。那么,这棵树就是二叉查找树。如下图所示:在二叉查找树中:1、若任意节点的左子树不空,则左子树上所有结点的值均小于它的

2015-01-07 13:43:44 1914

原创 线性结构(三) - 队列的原理与实现

一、队列的介绍队列(Queue),是一种线性存储结构。它有以下几个特点:1、队列中数据是按照"先进先出(FIFO, First-In-First-Out)"方式进出队列的。2、队列只允许在"队首"进行删除操作,而在"队尾"进行插入操作。队列通常包括的两种操作:入队列 和 出队列。1. 队列的示意图队列中有10,20,30共3个数据。2. 出队列

2015-01-06 22:01:08 496

原创 线性结构(二) - 栈的原理与实现

注意:本文所说的栈是数据结构中的栈,而不是内存模型中栈。一、栈的介绍栈(stack),是一种线性存储结构,它有以下几个特点:1、栈中数据是按照"后进先出(LIFO, Last In First Out)"方式进出栈的。2、向栈中添加/删除数据时,只能从栈顶进行操作。栈通常包括的三种操作:push、peek、pop。push -- 向栈中添加元素。peek --

2015-01-06 21:44:41 451

转载 数据校验器架构模式组

        本文阐述软件架构与设计模式,它为架构师和开发人员提供了一组关于数据校验的架构模式(隔离校验器,可组装校验器,动态策略校验器,动态注册校验器等),数据校验是任何类型的开发中都不可或缺的环节,如果没有统一的架构,可能校验代码会遍布整个应用,如何将数据校验与应用逻辑解耦,如何适应各种粒度的数据和各种复杂程度业务规则,正是本文要探讨的。        在我们各种类型的应用开发中

2015-01-05 20:25:37 686

原创 线性结构(一) - 数组、单链表和双链表

一、概要       线性表是一种线性结构,它是具有相同类型的n(n≥0)个数据元素组成的有限序列。本文章介绍线性表的几个基本组成部分:数组、单向链表、双向链表以及双向链表的实现。二、数组数组有上界和下界,数组的元素在上下界内是连续的。存储10,20,30,40,50的数组的示意图如下:数组的特点是:数据是连续的;随机访问速度快。数组中稍微复杂一点的是多维数组和动态数组

2015-01-04 20:54:21 599

转载 线程池的介绍及简单实现

服务器程序利用线程技术响应客户请求已经司空见惯,可能您认为这样做效率已经很高,但您有没有想过优化一下使用线程的方法。该文章将向您介绍服务器程序如何利用线程池来优化性能并提供一个简单的线程池实现。线程池的技术背景       在面向对象编程中,创建和销毁对象是很费时间的,因为创建一个对象要获取内存资源或者其它更多资源。在Java中更是如此,虚拟机将试图跟踪每一个对象,以便能够在对象销毁后进行

2015-01-04 15:13:59 664

原创 Java锁机制(二)-锁的实现

前一篇文章讲到了Java中锁的原理,这一篇讲锁的实现过程。一、java.util.concurrent.locks包下常用的类下面我们就来探讨一下java.util.concurrent.locks包中常用的类和接口。1.Lock首先要说明的就是Lock,通过查看Lock的源码可知,Lock是一个接口。package com.lock;import java.util.co

2015-01-03 21:47:53 528

转载 Java锁机制(一)-Java 理论与实践: JDK 5.0 中更灵活、更具可伸缩性的锁定机制

原文地址:http://www.ibm.com/developerworks/java/library/j-jtp10264/?S_TACT=105AGX52&S_CMP=cn-a-j       新的锁定类提高了同步性 —— 但还不能现在就抛弃 synchronized       JDK 5.0为开发人员开发高性能的并发应用程序提供了一些很有效的新选择。例如, java.u

2015-01-03 20:34:34 455

Linux下面使用sqlplus热键冲突

Linux下面使用sqlplus热键冲突 解决方案包中包括:libtermcap-devel-2.0.8-46.1.i386.rpm rlwrap-0.42.tar.gz readline-devel-5.1-1.1.i386.rpm

2015-05-07

TreeMap源码

TreeMap源码是基于数据结构中的红黑树进行设计并开发的。

2015-01-13

线程池的简单实现

服务器程序利用线程技术响应客户请求已经司空见惯,可能您认为这样做效率已经很高,但您有没有想过优化一下使用线程的方法。这里简单的实现线程池技术的JAVA代码。

2015-01-04

空空如也

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

TA关注的人

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