12 2011 档案

摘要:字符串的最大相似匹配计划中,kmp完后,本篇继续。。。 阅读全文
posted @ 2011-12-31 13:35 Springside4 阅读(107) 评论(0) 推荐(0) 编辑
摘要:KMP算法,Knuth-Morris-Pratt Algorithm,一种由Knuth(D.E.Knuth)、Morris(J.H.Morris)和Pratt(V.R.Pratt)三人提出的一种快速模式匹配算法。KMP朴素算法原理:子串pattern依次与目标串target中的字符比较,如果相等,继续比较下一个字符;如果不等,pattern右移一位,重新开始比较,直至匹配正确或超出target。示例:子串pattern={aabaa},目标串target={aababaacaabaa},比较过程如下图:特点:思路简单、代码直观;但效率低、有回溯、不够简洁、时间复杂度高// 在target中查找 阅读全文
posted @ 2011-12-28 16:56 Springside4 阅读(136) 评论(0) 推荐(0) 编辑
摘要:题目:数组中某数字减去其右边的某数字得到一个数对之差,求所有数对之差的最大值。例如:数组{2, 4, 1, 16, 7, 5, 11, 9}中,数对之差的最大值是11(16 - 5)分析:看到这个题目,很多人的第一反应是找到这个数组的最大值和最小值,然后觉得最大值减去最小值就是最终的结果。但由于我们无法保证最大值一定位于数组的左边,因此这个思路不管用。让每一个数字逐个减去它右边的所有数字,并通过比较得到数对之差的最大值,总的时间复杂度是O(n2)。解法1:分治法(递归实现)通常蛮力法不会是最好的解法,我们想办法减少减法的次数。假设我们把数组分成两个子数组,我们其实没有必要拿左边的子数组中较大的 阅读全文
posted @ 2011-12-28 10:08 Springside4 阅读(155) 评论(0) 推荐(0) 编辑
摘要:Session的get()和load()共同处:get()和load()方法均可以根据指定的实体类的OID从一级缓存、二级缓存和数据库查询相对应的实体对象。session的get()和load()区别:如果一级缓存、二级缓存和数据库都没有相对应的数据时get方法返回null;load方法可返回实体的代理类实体(除OID以外属性都为空),可以说get()方法永远直接返回实体类;load方法可以充分利用内部缓存和二级缓存中的现有数据返回代理对象。 阅读全文
posted @ 2011-12-26 15:58 Springside4 阅读(124) 评论(0) 推荐(0) 编辑
摘要:Cascade:设置级联操作的程度。 Inverse:是否放弃维护级联关系。Cascade属性的取值有:1、none:忽略其他关联的对象,默认值。2、save-update:当session通过save(),update(),saveOrUpdate()方法来保存或更新对象时,级联保存所有关联的新建的临时对象,并且级联更新所有关联的游离对象。3、persist:当session通过persist()方法来保存当前对象时,会级联保存所有关联的新建的临时对象。4、merge:通过Session的merge()方法来保存当前对象时,会级联融合所有关联的游离对象。5、delete:通过delete(. 阅读全文
posted @ 2011-12-26 15:02 Springside4 阅读(173) 评论(0) 推荐(0) 编辑
摘要:题目:输入一个整型数组,数据元素有正数也有负数,求元素组合成连续子数组之和最大的子数组,要求时间复杂度为O(n)。例如:输入的数组为1, -2, 3, 10, -4, 7, 2, -5,最大和的连续子数组为3, 10, -4, 7, 2,其最大和为18。背景:本题最初为2005年浙江大学计算机系考研题的最后一道程序设计题,在2006年里包括google在内的很多知名公司都把本题当作面试题。由于本题在网络中广为流传,本题也顺利成为2006年程序员面试题中经典中的经典。分析:如果不考虑时间复杂度,我们可以枚举出所有子数组并求出他们的和。不过非常遗憾的是,由于长度为n的数组有O(n2)个子数组(即: 阅读全文
posted @ 2011-12-22 17:51 Springside4 阅读(173) 评论(0) 推荐(0) 编辑
摘要:Windows系统中,如果先前已安装有MySQL,修复或卸载重装后,在最后一步会提示不成功!可能原因:1、 防火墙打开了,网络端口3306没开启,导致MySQL安全验证不通过2、 卸载重装MySQL不干净解决方法(原因一):问题原因:解决方法:1、 控制面板——》安全中心——》Windows防火墙2、 选择“关闭(不推荐)”说明: 默认的是启用(推荐)解决方法(原因二):MySQL需要彻底删除干净,共三处第一处:C:\Documents and Settings\All Users\「开始」菜单\程序\MySQL第二处:C:\Program Files\MySQL第三处:C:\Document 阅读全文
posted @ 2011-12-21 16:35 Springside4 阅读(141) 评论(0) 推荐(0) 编辑
摘要:Android 2.1 源码结构分析Android 2.1总目录|-- Makefile|-- bionic (bionic C库)|-- bootable (启动引导相关代码)|-- build(存放系统编译规则及generic等基础开发包配置)|-- cts(Android兼容性测试套件标准)|-- dalvik(dalvik JAVA虚拟机)|-- development (应用程序开发相关)|-- external (android使用的一些开源的模组)|-- frameworks (核心框架——java及C++语言)|-- hardware (主要保护硬解适配层... 阅读全文
posted @ 2011-12-21 10:40 Springside4 阅读(161) 评论(0) 推荐(0) 编辑
摘要:Eclipse版本(本文测试)Eclipse IDE for Java DevelopersVersion:IndigoService Release 1Build id: 20110916-0149配置步骤:1 Window > Preferences > Java > Editor > Content Assist2 “Auto Activation triggers for java”这个选项就是指触发代码提示的的选项, 把“.”修改成".abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" 阅读全文
posted @ 2011-12-21 10:34 Springside4 阅读(133) 评论(0) 推荐(0) 编辑
摘要:VIM是Linux和Unix下常用的文本编辑工具,在编写代码和阅读代码中经常使用。但VIM进行代码项目管理时,没有IDE集成开发工具方便,现在提供一个VIM插件Project,可以对代码项目进行简单的集中管理一、 下载安装1、 在 Vim 网站上下载最新版本project.tar.gz或直接下载project-1.4.1.tar.gz2、 解压缩移动plugin和doc到~/.vim目录(没有~/.vim则自己创建),步骤如下:mkdir ~/.vimmv doc ~/.vimmv plugin ~/.vim二、Project 使用介绍1、 打开vim后,敲入命令 :Project,可以看到p 阅读全文
posted @ 2011-12-21 10:19 Springside4 阅读(166) 评论(0) 推荐(0) 编辑
摘要:hibernate.hbm2ddl.auto:指定应用程序在运行时,当产生SessionFactory实例化时对是否有自动检索数据结构,或者将数据库schema的DDL导出到数据库。可选值有:validate(检查数据库结构)、update(数据库结构发生变化时修改)、create(建数据库schema的DDL导出数据库)、create_drop(在SessionFactory实例化时创建时将数据库schema的DDL导出数据库结构,在SessionFactory被显示关闭时将数据库删除)对于 hbm2dll.auto 各个取值的意义如下: 1.create-drop : hibernat.. 阅读全文
posted @ 2011-12-21 09:58 Springside4 阅读(431) 评论(0) 推荐(0) 编辑
摘要:1、 视频内容来源于本地,通过本地播放器播放代码:<!-- 此段视频源文件在本地,通过本地Flash播放器播放,不需要连接网络 --> <EMBED style=" margin: 5px auto; width:900px; height: 400px"; src="video\shipin.swf" quality= "high" wmode="transparent" pluginspage="Flash\FlashUtil10p_Plugin.exe" type=&qu 阅读全文
posted @ 2011-12-21 09:21 Springside4 阅读(158) 评论(0) 推荐(0) 编辑
摘要:监听三个域对象属性变化:Servlet规范定义了监听 ServletContext, HttpSession, HttpServletRequest 这三个对象中的属性变更信息事件的监听器。这三个监听器接口分别是ServletContextAttributeListener, HttpSessionAttributeListener ServletRequestAttributeListener这三个接口中都定义了三个方法来处理被监听对象中的属性的增加,删除和替换的事件,同一个事件在这三个接口中对应的方法名称完全相同,只是接受的参数类型不同attributeAdded 方法 当向被监听器对象中 阅读全文
posted @ 2011-12-20 09:41 Springside4 阅读(160) 评论(0) 推荐(0) 编辑
摘要:ExtJs是从yui-ext发展来的一套ajax控件,它是一套完整的富客户端解决方案,也因为功能完整,造成ext-all.jsp有400多k,可是这还是压缩后的。Ext不仅仅是另一个js库,实际上它可以通过适配器(adapter)和其他js库一起工作,通常来说,我们使用Ext的目的就是满足高层次的用户交互---要比我们传统概念的站点交互性更强,一个采用了工作流和任务管理的网站就是一个很好的实例Ext让通过如下的方式来让web应用的开发变的十分简单:(1)提供简单的,跨浏览器的控件,如:窗口、表格、表单,这些组件都是能够适应市场上的主流浏览器的,我们不需要做任何的改动(2)用户通过EventMa 阅读全文
posted @ 2011-12-19 20:05 Springside4 阅读(139) 评论(0) 推荐(0) 编辑
摘要:事务是恢复和并发控制的基本单位。 事务应该具有4个属性:原子性、一致性、隔离性、持续性。这四个属性通常称为ACID特性。 原子性(atomicity)。一个事务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做。 一致性(consistency)。事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。 隔离性(isolation)。一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。 持久性(durability)。持续性也称永久性(permanence),指一个... 阅读全文
posted @ 2011-12-19 19:44 Springside4 阅读(187) 评论(0) 推荐(0) 编辑
摘要:一、hibernate内部的缓存的分析1、 一级缓存Session级别的缓存将数据放入缓存:Save(),update()….list()、 iterator()从缓存取数据:get(),load()先去缓存中找对象数据,如果缓存中有对象直接返回该对象,如果缓存中没有该对象,从数据库中找对象Query接口实现查询(list)不从缓存中提取数据Criteria:不从存缓存中提取数据Session.evict(object);//清除一级缓存中指定的对象Session.clear();//清除一级缓存中的所有对象一级缓存的缺陷:没有保护,共享范围小2、 二级缓存SessionFactorySess 阅读全文
posted @ 2011-12-16 12:19 Springside4 阅读(116) 评论(0) 推荐(0) 编辑
摘要:1、Jsp有哪些内置对象?作用分别是什么?application对象代表应用程序上下文,它允许JSP页面与包括在同一应用程序中的任何Web组件共享信息。Config对象允许将初始化数据传递给一个JSP页面Exception对象含有只能由指定的JSP“错误处理页面”访问的异常数据。Out对象代表提供输出流的访问Page对象代表JSP页面对应的Servlet类实例PageContext对象是Jsp页面本身的上下文,它提供唯一一组方法来管理具有不同作用域的属性Request对象提供对Http请求数据的访问,同时还提供用于加入特定请求数据的上下文Response对象允许直接访问HttpServletR 阅读全文
posted @ 2011-12-15 20:34 Springside4 阅读(194) 评论(0) 推荐(0) 编辑
摘要:JSP隐身对象是Web容器加载的一组实例。它是可以直接在JSP页面使用的对象,分为四个类别:输入输出对象:控制页面的输入输出(request,reponse,out)作用域通信对象:检索与JSP页的面Servlet相关的信息(session,application,pageContext)Servlet对象:提供有关页面环境的信息(page,config)错误对象:处理页面中的错误(exception)1、 request对象request隐式对象表示客户端的请求,包括了所有的请求信息;方法有:String getParameter(String name):根据页面表单组件名称获取请求页面. 阅读全文
posted @ 2011-12-14 17:42 Springside4 阅读(266) 评论(0) 推荐(0) 编辑
摘要:一、 延迟加载的概念延迟加载(lazy load),也叫懒加载,它是Hibernate为提高程序执行效率而提供的一种机制,即只有真正使用该对象的数据时才会创建。 Hibernate中主要是通过代理(proxy)机制来实现延迟加载。具体过程:Hibernate从数据库获取某个对象数据时、获取某个对象的集合属性时,或获取某一个对象所关联的另一个对象时,由于没有使用该对象的数据(除标示符以外),Hibernate并不从数据库加载真正的数据,而只是为该对象创建代理对象来表示对象,这个对象的所有属性都是默认值;只有在真正需要使用该对象的数据时才创建这个真实对象,真正从数据库中加载数据。Hibernate 阅读全文
posted @ 2011-12-14 09:46 Springside4 阅读(426) 评论(0) 推荐(0) 编辑
摘要:集合映射:对应的类没有对象表示符属性,只能作为一个持久化类的属性使用。如果持久化类中有一个值类型的集合,那么就需要一张额外的数据库表来保存这个值类型的集合,这张表被称为集合表。 集合的类型有:<set>、<list>、<bag>、<map>、<primitive-array> 1、<set>:元素储存没有顺序不允许重复示例:private Set<String> hobbies;//个人爱好属性映射:<set name=”hobbies” table=”student_hobby”> <key 阅读全文
posted @ 2011-12-12 15:17 Springside4 阅读(144) 评论(0) 推荐(0) 编辑
摘要:JSP的重定向有两种:forward和sendRedirect,它们的原理以及区别是什么呢? 它们在使用上的区别有很多,那些都是表面现象,在理解了它们各自的原理以后,使用上的区别那就能容易掌握了。一、 原理.1、 Forward这种方式是在服务器 端作的重定向。服务器 往client发送数据的过程是这样的:服务器 在向客户端发送数据之前,是先将数据输出到缓冲区,然后将缓冲区中数据发送给client端。什么时候将缓冲区里的数据发送给client端呢?(1)当对来自client的request处理完,并把所有数据输出到缓冲区,(2)当缓冲区满,(3)在程序中调用缓冲区的输出方法out.flush( 阅读全文
posted @ 2011-12-11 21:55 Springside4 阅读(473) 评论(0) 推荐(0) 编辑
摘要:Sesison接口是Hibernate中一个最重要的持久化管理器。它能完成对持久化类实例的基本CRUD操作、执行条件查询、事物控制、持久化对象的生命周期等。单线程,非共享的对象。线程不安全,在设计软件架构时,应避免多个线程共享同一个Session实例。Session实例是轻量级的,它的创建和销毁不需要消耗太多的资源。可以为每个请求分配一个Session实例,在每次请求过程中及时创建和销毁Session实例。Session有一个缓存,它存放当前工作单元加载的对象。Session的缓存被称为Hibernate的第一级缓存。Session的基本方法:save(),get(),load(),dele. 阅读全文
posted @ 2011-12-08 21:38 Springside4 阅读(191) 评论(0) 推荐(0) 编辑
摘要:Hibenrnate的关联关系是指不同持久类之间的一种结果关系,简单地说,关联关系描述某个对象在某一段时间内一直知道另一个对象的存在。 关联关系包括多样性的关联和方向性的关联。多样性指的是一个持久化类的对象跟另一持久化类的多个对象关联(一对多),还是只能跟以另一个持久化类的一个对象关联(一对一),还是以就是双向都可以与另一方的多个对象关联(多对多);方向性指的是关联的双发是否可以互相访问(双向关联),还是只有一端可以访问另一端(单向关联)。1、单项多对一: 多对一是最常见,最容易理解的一种关联; 示例:多个员工属于同一个部门;Department(部门) Employee(员工) 搭建好Hi. 阅读全文
posted @ 2011-12-08 21:15 Springside4 阅读(147) 评论(0) 推荐(0) 编辑
摘要:1)、瞬时状态该实例是刚用new语句创建的,还没有持久化,不处于任何Session的缓存中,它没有对象表示符(主键);特点:不跟任何Session实例关联,在数据库中没有对应的记录。2)、持久化状态已经被持久化,加入到Session缓存中,实例目前与某个Session实例相关联,它拥有对象标示符值,并且可能在数据库中有一个对应的行。Hibernate保证在同一个Session实例中缓存,数据库中的每条记录总对应唯一的一个持久化实例。特点: 持久化对象总是被一个Session实例关联。持久化实例和数据库中的相关记录对应。Session在清理缓存是,会根据持久化实例的属性数据变化,同时更行数据库。 阅读全文
posted @ 2011-12-07 16:10 Springside4 阅读(125) 评论(0) 推荐(0) 编辑
摘要:Dalvik虚拟机支持垃圾收集,但是这不意味着你可以不用关心内存管理。你应该格外注意移动设备的内存使用,在上面内存空间是受到限制的。在这篇 文章里面,我们来看看Android SDK里面的一些内存剖析工具(profiling tools)是如何帮助我们修整应用程序的内存使用。一些内存使用问题是很明显的,例如,如果在每次用户触摸屏幕的时候应用程序有内存泄露,将会有可能触发OutOfMemoryError,最终程序崩溃。另外一些问题却很微妙,也许只是降低应用程序和整个系统的性能(当高频率和长时间地运行垃圾收集器的时候)。必要的工具:Android SDK提供了2个主要的剖析应用程序内存使用情况的工 阅读全文
posted @ 2011-12-01 15:39 Springside4 阅读(146) 评论(0) 推荐(0) 编辑