自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 通过前序遍历和中序遍历重建二叉树以及输出后序遍历(Java实现)(二)

前面写过一篇用数组表示的二叉树的重建,这篇补上用TreeNode连接起来的树的重建。/* * 使用节点类实现树的重建以及各种遍历 * 实现给定一个节点将该树镜像化的方法 */package sh.tree;public class RebuildTreeTest { public static void main(String[] args) { RebuildTreeTe

2015-07-07 17:44:30 590

转载 如何正确地写出单例模式

转自http://wuchong.me/blog/2014/08/28/how-to-correctly-write-singleton-pattern/单例模式算是设计模式中最容易理解,也是最容易手写代码的模式了吧。但是其中的坑却不少,所以也常作为面试题来考。本文主要对几种单例写法的整理,并分析其优缺点。很多都是一些老生常谈的问题,但如果你不知道如何创建一个线程安全的单例,不知道什么是双检锁

2015-05-24 13:53:47 394

原创 通过前序遍历和中序遍历重建二叉树以及输出后序遍历(Java实现)

题目是通过前序遍历和中序遍历重建二叉树以及输出后序遍历主要的难点在二叉树的重建,测试用例为前序遍历为{1,2,4,7,3,5,6,8},中序遍历为:{4,7,2,1,5,3,8,6}。由前序遍历可以看出根节点是1,由中序遍历1的位置可以知道4 7 2 是左子树,5 3 8 6 是右子树,再将4 7 2看成一棵树继续用此方法,可见递归可容易实现。代码实现和结果为:代码实现了树的重建 pu

2015-05-19 15:41:51 1621

转载 Struts2拦截器

什么是拦截器拦截器(Interceptor)是Struts 2的一个强有力的工具,有许多功能都是构建于它之上,如国际化(前两篇博客介绍过)、转换器,校验等。拦截器是动态拦截Action调用的对象。它提供了一种机制可以使开发者可以定义在一个action执行的前后执行的代码,也可以在一个action执行前阻止其执行。同时也是提供了一种可以提取action中可重用的部分的方式。说

2015-05-18 22:39:17 334

原创 二维数组查找

题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。解题思路:从二维数组的右 上角的元素开始判断,因为此元素是它所在行的最大数,是它所在的列的最小数。如果它等于要查找的数字,则查找过程结束。如果它大于要查找的数字,则可以排 除它所在的列。如果它小于要查找的数字,则可排除它所在

2015-05-15 15:18:00 472

原创 单向链表实现归并排序(Java实现)

因为单链表不能随便访问,只能通过节点的逐步移动访问,因此在数组上应用较多的堆排序和快速排序在链表这块并不适用,而归并排序则能很好的实现,因为归并排序只需要知道中间位置即可,这对于链表来说并不困难。简单说一下归并排序的思想:首先将一段链表分成两段,两段长度相等然后对两段对应的位置进行排序,使用一个临时节点控制链表方向。使用递归可以非常清晰表达该思想,通过不断递归将有序的两段链表细化到

2015-05-13 19:50:46 773

转载 深入分析Java ClassLoader原理

转自http://blog.csdn.net/xyang81/article/details/7292380#NetWorkClassLoader一、什么是ClassLoader?         大家都知道,当我们写好一个Java程序之后,不是管是CS还是BS应用,都是由若干个.class文件组织而成的一个完整的Java应用程序,当程序在运行时,即会调用该程序的一个入口函数来

2015-05-11 22:42:20 340

转载 hibernate 延迟加载

Hibernae 的延迟加载是一个非常常用的技术,实体的集合属性默认会被延迟加载,实体所关联的实体默认也会被延迟加载。Hibernate 通过这种延迟加载来降低系统的内存开销,从而保证 Hibernate 的运行性能。下面先来剖析 Hibernate 延迟加载的“秘密”。集合属性的延迟加载当 Hibernate 从数据库中初始化某个持久化实体时,该实体的集合属性是否随持久化

2015-04-19 22:54:06 374

原创 顺时针输出一个二维数组的内容

前几天在一道笔试题里看到的,要求输出一个二维矩阵的内容,比如,给定一个二维数组  {{1, 2, 3, 10, 17}, {4, 5, 6, 11, 18}, {7, 8, 9, 12, 19}, {13,14,15,16, 20}, {21,22,23,24, 25}}输出必须为1 2 3 10 17 18 19 20 25 24 23 22 21 13 7 4 5

2015-04-17 11:03:46 531

转载 新Hibernate SessionFactory().getCurrentSession()猫腻

转自http://liusu.iteye.com/blog/380397今天要用Hibernate做点实验,下载最新版得下来。解压,建项目,从tutorial copy代码。Tutorial里面提到说最新的Hibernate已经不需要用户自己使用ThreadLocal得方式来管理和持有session,而把这种session管理方式内置了,只要依据依据配置就可以用了 

2015-04-16 23:26:37 578

原创 Java反射小结

Class类和java.lang.reflect类库一起对反射的概念进行了支持。该类库包含了Field、Method、Constructor类(每个类都实现了Member接口)。这些类型的对象是由 JVM在运行时创建的,用以表示未知类里对应的成员。这样就可以使用Constructor进行创建新的对象,用get()和set()方法读取和修改与Feild对象关联的字段,用invoke()调用与

2015-04-06 18:09:36 362

原创 DispatchAction 在struts里的应用

DispatchAction 的出现就是为了解决Struts中Action过多的问题,有些时候我们的Action实现的功能相似,但是过多的Action不仅让代码变得臃肿,也会让编码的时候分心。这个DispathAction继承自Action,它在struts-config.xml中比Action多了一个参数parameter参数,这个参数的设定是自定义的一个String类型,这个参数是用来

2015-03-29 17:48:23 405

转载 JAVA中的引用类型和垃圾回收

强引用Strong References  强引用是最常见的引用:  比如:StringBuffer buffer = new StringBuffer();  创建了一个StringBuffer类的对象,并用一个变量buffer存储对这个对象的引用。这就是个强引用。  变量持有的是这个对象的引用。通常,引用是一个对象的存储地址。   Java不像C或者C++一

2015-03-27 11:39:59 398

原创 JAVA里ThreadLocal的使用与分析

最近看了很多ThreadLocal的文章,各种观点都有,最后在开源中国看到一篇自认为讲得不错的。链接如下http://my.oschina.net/lichhao/blog/111362?p=4#comments,在评论区里讲到TLS(Thread Local Storage),这是Linux系统里使用的概念,JAVA的ThreadLocal就是借鉴了这个想法,其意是保存在各自线程里的上下文/环境

2015-03-26 23:10:36 391

转载 有关Mysql中explain命令的使用

explain显示了mysql如何使用索引来处理select语句以及连接表。可以帮助选择更好的索引和写出更优化的查询语句。先解析一条sql语句,看出现什么内容EXPLAINSELECTs.uid,s.username,s.name,f.email,f.mobile,f.phone,f.postalcode,f.addressFROM uchome_space ASs,uchom

2015-03-25 20:50:55 363

转载 逻辑信道、传输信道、物理信道的

1逻辑信道 MAC层在逻辑信道上提供数据传送业务,逻辑信道类型集合是为MAC层提供的不同类型的数据传输、业务而定义的。逻辑信道通常可以分为两类:控制信道和业务信道。控制信道用于传输控制平面信息,而业务信道用于传输用户平面信息。 其中,控制信道包括:      广播控制信道(BCCH):广播系统控制信息的下行链路信道。      寻呼控制信道(PCCH):传输寻呼信息的下行链路信道。

2015-03-23 23:28:04 1231

原创 mysql批量创建脚本

#创建部门表create table dept(/*部门表*/deptno mediumint unsigned not null default 0,dname varchar(13) not null default "",loc varchar(13) not null default "")ENGINE=MyIsam default ch

2015-03-23 17:42:03 532

原创 有关数据库设计中的几种范式的总结

关系数据库的几种数据库设计范式:一般设计中考虑三范式就足够高效了。简要介绍下三范式。第一范式:数据库中表的字段需满足原子性,也就是不可再分。这个不可再分性主要是指字段的属性需要是基本类型的,也就是整型、字符型、逻辑型等等,值得提一句的是,目前我们用的所有关系型数据库都满足第一范式,所以这是我们不需要操心的规则。第二范式:第二范式是在满足第一范式的基础上设计的。第一个要求是:要求表中

2015-03-19 22:52:13 546

转载 meta标签详解(meta标签的作用)

在网上看到一片详细的介绍meta标签的文章,平时不关注这个标签,对于搜索引擎搜索的关键字收益很多。转自http://www.jb51.net/web/158860.html您的个人网站即使做得再精彩,在“浩瀚如海”的网络空间中,也如一叶扁舟不易为人发现,如何推广个人网站,人们首先想到的方法无外乎以下几种:● 在搜索引擎中登录自己的个人网站● 在知名网站加入你

2015-03-19 20:43:30 426

原创 利用commons-fileupload在servlet中实现文件上传

commons-fileupload.jar这个组件来自阿帕奇,可方便的实现文件的上传,(要有commons-io.jar的支持)commons-fileupload这个组件主要有三个经常用到的类,一个是DiskFileItemFactory,它的作用主要是用来设置缓存和临时文件目录,因为文件大小不同,当上传的文件项目比较小时,直接保存在内存中(速度比较快),比较大时,以临时文件的形式,保存在

2015-03-19 11:51:04 728

转载 Struts-config.xml配置文件讲解

Struts-config.xml配置文件讲解       Struts的核心是struts-config.xml配置文件,在这个文件里描述了所有的Struts组件。在这里包括配置主要的组件及次要的组件,下面是struts-config.xml包含主要元素的内容:一、    struts

2015-03-18 15:54:53 480

转载 JAVA操作properties文件

java中的properties文件是一种配置文件,主要用于表达配置信息,文件类型为*.properties,格式为文本文件,文件的内容是格式是"键=值"的格式,在properties文件中,可以用"#"来作注释,properties文件在Java编程中用到的地方很多,操作很方便。一、properties文件test.properties------------------

2015-03-17 22:38:38 288

原创 单元Dijkstra算法求最短路径的的Java实现

上一篇写了无权值的最短路径的求法,是利用广度优先搜索的方法使用队列实现的,当有权值时,我们通常使用Dijkstra算法来求解最短路径的问题,这里我们假设所有的权值都是正值。 首先,在节点类改变了权值的成员变量pathLength起始为INFINITY(INFINITY设为10000),这样有助于寻找未访问节点中权值最小的点。边节点要增加一个表示权值的成员变量weight。其次,在图类Graph

2015-03-17 11:08:21 1766

原创 无权图的最短路径Java实现

利用广度优先的搜索方法写了一个最短路径的例子,自我感觉还可以优化,因为最后显示的结果不是很人性化节点类Vertex、边类Edge、图类Graph前几篇已经写了,这里作相应的修改,在节点Vertex类中添加路径长度pathLength变量和上一个节点的名称path变量,初始pathLength为0,path为null.利用这种方法可以计算出从某节点为起点的到达所有节点的最短路径,其中

2015-03-16 20:26:07 2382

转载 JavaBean入门 - 概念和简单例子

不会编写JavaBean就不是一个Java开发人员。 那么,何谓JavaBean呢? JavaBean是符合某种规范的Java组件,也就是Java类。 它必须满足如下规范: 1)必须有一个零参数的默认构造函数 2)必须有get和set方法,类的字段必须通过get和set    方法来访问。    (get方法无参,set方法有参) 我们下

2015-03-15 23:26:22 371

原创 Hashtable和HashMap的总结

这是一个老生常谈的问题。首先来看HashMap的实现:HashMap是基于链表数组实现的,也就是说数组每个下标存放一个链表。结构图如下:链表的每个元素为一个Entry,这是一个存放键值对的专用结构,键值的存取最终都是由该结构完成的。下面我们看一下HashMap存储的过程:当我们往HashMap中put元素的时候,先根据key的hashCode重新计算hash值,根据ha

2015-03-14 10:59:12 406

原创 有向图的深度优先搜索和广度优先搜索

上一篇写了有向图的拓扑排序,紧跟着用这个图坐了深度优先和广度优先的搜索,对其中的节点类Vertex做了些许改进,一个是加了访问状态isVisited,还有在Graph类中新加了一个方法用来寻找以节点ver出发的所有节点,和之前寻找所有的相邻节点(包括发出的和指向该节点的)有所不同代码和结果如下:广度优先搜索:import java.util.ArrayList;import java

2015-03-13 16:43:00 5281 1

原创 JAVA实现拓扑排序

折腾了很久才实现的拓扑排序,把代码和思路整理一下:拓扑排序是用来对有向无环图进行排序的,和图的广度优先遍历类似,主要是利用队列把节点的入度为0(就是没有指向该节点的节点,只有从节点发出的)的元素入队,然后1:将队首元素出队输出并寻找该元素的所有相邻元素的节点,2:对这些节点的入度-1,并检查是否有入度减为0的,如有,则入队。重复上述操作直到队列为空为止。容易出问

2015-03-13 14:32:12 2056 1

转载 深入体验JavaWeb开发内幕——pageContext对象与JSP中标签的简介和相关应用

pageContext对象是JSP技术中最重要的一个对象,它代表JSP页面的运行环境,这个对象不仅封装了对其它8大隐式对象的引用,它自身还是一个域对象,可以用来保存数据。并且,这个对象还封装了web开发中经常涉及到的一些常用操作,例如引入和跳转其它资源、检索其它域对象中的属性等。          下面,我们就来看一看这个在JSP中占有重要地位的隐式对象pageContent吧。

2015-03-10 22:07:09 518

原创 经典排序之堆排序

进行堆排序之前,先介绍一下堆。一般所说的堆指的是二叉堆,它的使用对于优先队列的实现相当普遍。具体来讲,堆是一棵完全二叉树,其有一个极其重要的性质就是:我们可以使用数组来表示一个堆,对于数组中的任何一个元素下标i,i/2对应的是其父节点,2*i对应的是其左孩子,2*i+1对应的是其右孩子。根节点是从下标1开始。这样的性质决定了我们可以方便的使用数组来构建一个堆。堆的非常明显一个特点就是:所有

2015-03-10 15:17:13 479

原创 Struts运行原理

先介绍最基本的Struts组件:ActionServlet,这里相当于总控制器ActionForm,表单,用于存放数据action,相当于分控制器,用于执行具体操作model,和mvc中的Model大体相同,主要利用各种service执行逻辑操作

2015-03-09 23:14:59 523

原创 经典排序算法之希尔排序

希尔排序(Shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。它是使用增量gap将原需要排序的数组元素分成一个个子数组,对这些子数组进行组内进行直接插入排序,然后缩小增量gap,再进行上述操作,直至增量缩小为1为止。例如一组随机数10,8,5,23,16,45,13,12,9,20元素个数为10,我们使用增量5开始:第一次排序分为五组:分别是

2015-03-09 15:34:42 387

空空如也

空空如也

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

TA关注的人

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