从《基于比较的排序结构总结》中我们知道:全依赖“比较”操作的排序算法时间复杂度的一个下界O(N*logN)。但确实存在更快的算法。这些算法并不是不用“比较”操作,也不是想办法将比较操作的次数减少到logN。而是利用对待排数据的某些限定性假设,来避免绝大多数的“比较”操作。桶排序就是这样的原理。桶排序的基本思想假设有一组长度为N的待排关键字序列K[1....n]。首先将这个序列划分成M个的子区间(桶)。然后基于某种映射函数,将待排序列的关键字k映射到第i个桶
系统 2019-08-29 21:59:41 1664
ejb中的3种bean:什么是会话bean?编写第一个ejb3的会话bean:步骤:1.ejb企业级开发是面向接口编程的,我们完成第一个HelloWorld的例子,首先写接口,也就是远程接口(服务器端)packagecn.com.xinli.ejb3;publicinterfaceHelloWorld{publicStringsayHello(Stringname);}2.在写接口的实现类(服务器端)packagecn.com.xinli.ejb3.imp
系统 2019-08-29 21:59:26 1664
说了那么多理论,我们来看看怎样使用抽取方法来重构遗留系统。如前所述,重构的过程首先是阅读程序代码,边阅读边整理程序。将功能相对独立的代码段放在一起,在前面加上注释。调整一些程序的顺序,将相关的代码尽量放在一起,但要保证程序执行的结果不会发生改变。比较典型的,将变量的定义与使用变量的代码放在一起。这个步骤比较实用,因为许多的遗留系统,其代码都有一个坏毛病,就是在程序开始时定义一大堆变量,但要弄清这些变量都用来做什么,却十分困难。边读边调整,将变量的定义逐渐迁
系统 2019-08-29 21:59:02 1664
今天这堂培训课讲什么呢?我既不讲Spring,也不讲Hibernate,更不讲Ext,我不讲任何一个具体的技术。我们抛开任何具体的技术,来谈谈如何提高代码质量。如何提高代码质量,相信不仅是在座所有人苦恼的事情,也是所有软件项目苦恼的事情。如何提高代码质量呢,我认为我们首先要理解什么是高质量的代码。高质量代码的三要素我们评价高质量代码有三要素:可读性、可维护性、可变更性。我们的代码要一个都不能少地达到了这三要素的要求才能算高质量的代码。1.可读性强一提到可读
系统 2019-08-29 21:58:58 1664
终于到了该说说领域驱动设计的时候了。我们在这场关于代码质量的讨论中,从代码可读性开始,讨论了代码复用性、设计模式,然后探讨了职责驱动设计。代码可读性是对代码质量最基本的要求,可惜我们仍有做得不够的(即使那些开发程序很多年的老程序员)。代码复用是提高代码质量的最初级阶段,但是在一个多人开发的项目团队中,围绕代码复用值得讨论的问题依然非常多,它依然是一个非常复杂的问题,甚至有时它不再仅仅是一个技术问题,而是一个管理问题。唉,提高代码质量的道理漫漫兮同志们要上下
系统 2019-08-29 21:58:55 1664
《深入浅出Hibernate》读书笔记(1)——实体对象生命周期最近正在研读《深入浅出Hibernate》一书,前面写的随笔有些也是读该书的笔记,只是未做归类,从这篇开始,我将把相关的内容都整理成一个系列的读书笔记。今天这篇是有关实体对象的生命周期。我刚开始接触Hibernate的时候,只是简单的把它当做一个API工具,直到后来看到有关VO和PO的内容时,才意识到Hibernate不仅仅是一个O/RMapping的API工具,它还是一个容器。它可以帮你管理
系统 2019-08-29 21:58:52 1664
第二篇《程序员必知8大排序3大查找(二)》《程序员必知8大排序3大查找(三)》每天都在叫嚣自己会什么技术,什么框架,可否意识到你每天都在被这些新名词、新技术所迷惑,.NET、XML等等技术固然诱人,可是如果自己的基础不扎实,就像是在云里雾里行走一样,只能看到眼前,不能看到更远的地方。这些新鲜的技术掩盖了许多底层的原理,要想真正的学习技术还是走下云端,扎扎实实的把基础知识学好,有了这些基础,要掌握那些新技术也就很容易了。要编写出优秀的代码同样要扎实的基础,如
系统 2019-08-12 09:30:03 1664
应同事要求做了一个,效果如下:当鼠标移上时变色。没有使用脚本,纯粹通过css实现。同时通过调整背景图片位置的方式解决图片的闪动,主要代码如下:TRS--导航
系统 2019-08-12 09:29:55 1664
背景在实际项目实施中,会编写很多在服务器执行的作业脚本。程序中凡是涉及到数据库链接、操作系统用户链接、IP地址、主机名称的内容都是敏感信息。在纯内网系统中往因为开发时间紧迫,往往都直接将这些敏感信息明文方式写在脚本中了。稍微规范一点的,创建一个通用的config文件,将所有这类敏感信息记录在这个文件中,脚本以读取文件方式获取这些信息。这种方式的好处是脚本不用在应用迁移、灾备部署的时候再起不同的版本,尤其是大数据平台作业运行的脚本,如果是需要做灾备集群,这种
系统 2019-09-27 17:57:49 1663
00.比99%的用户所担心的魔力要更深。如果你犹豫是否需要他们,那你不需要它们(真正需要元类的人,能够确定地直到需要它们,并且不需要说明为什么需要)。“因为某物很酷”而编写它,似乎不是一种合理的判断,除非你在做试验或者学习。01.元类就是用来创建类的“东西”。你创建类就是为了创建类的实例对象。02.03.元类的主要目的就是为了当创建类时能够自动地改变类。04.元类修改:内省属性:__class__和__dict__这样的特殊属性允许我们查看Python对象
系统 2019-09-27 17:57:31 1663