摘要:
哈弗曼,一个在几乎所有讲数据结构的书中都有出现过的人物,他的鼎鼎大名想必就不用我多说了。这一次来给大家讲解一下哈弗曼树的构建与哈弗曼编码的基本原理,有什么用呢?别急,还是先学会创建一棵哈弗曼树吧。哈弗曼树又称最优二叉树,最优二叉树就是带权路径长度WPL最小的二叉树,那么我们就得搞清几个概念:1. 路径长度:从树中的一个结点到另一个结点之间的分支构成这两个结点的路径,路径上的分支数目称为路径长度。2. 树的路径长度:从树根到每一个结点的路径长度之和,我们所说的完全二叉树就是这种路径长度最短的二叉树。3. 树的带权路径长度:如果在树的每一个叶子结点上赋上一个权值,那么树的带权路径长度就等于根结点到 阅读全文
摘要:
MySQL主主复制MySQL主主复制结构区别于主从复制结构。在主主复制结构中,两台服务器的任何一台上面的数据库存发生了改变都会同步到另一台服务器上,这样两台服务器互为主从,并且都能向外提供服务。下面是配置步骤需要两台MySQL主机做服务器:MySQL的创建方法参见:创建MySQL数据库Server-1:192.168.0.1Server-2:192.168.0.2一、创建并授权用户这一步在每一台(主)服务器上创建一个用户,并为之授权,使它们可以互相访问彼此的数据库在Server-1上:创建一个充许Server-1来访问的用户server2,密码为:server2mysql> GRANT 阅读全文
摘要:
MongoDB Replica Sets和Auto Sharding配 置的简单步骤是本文我们主要要介绍的内容,网上有很多教程把Replica Sets和Auto Sharding(或者是Sharding)写在了一起,对于初学者可能会觉得有些莫名,之所以这样做是因为,一个较好的Auto Sharding解决方案是将每个一shard(分片)定为一个Replica Sets(复制集)。一个Replica Sets由若干个mongod instance组成,在这个集合中,所有的instance的数据相同,这使得即使有某一台机子当掉了,其它机子还是可以正常运行,而且这部分的控制是 由Mongo自动完成 阅读全文
摘要:
Spring 3.1 提供了对已有的 Spring 应用增加缓存的支持,这个特性对应用本身来说是透明的,通过缓存抽象层,使得对已有代码的影响降低到最小。该缓存机制针对于 Java 的方法,通过给定的一些参数来检查方法是否已经执行,Spring 将对执行结果进行缓存,而无需再次执行方法。可通过下列配置来启用缓存的支持(注意使用新的schema):<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instan 阅读全文
摘要:
我心目中最好的框架组合是: 表示层:spring mvc 3.1 + annotation 控制层:spring 3.1 持久层:hibernate 3.6 +jdbcTemplate 后台列表控件:displaytag 1.2 Ajax框架: DWR 3 JS框架 : Jquery 缓存机制:spring 3.1 cache + ehcache/memcached 静态化机制: Freemarker静态化/spring mvc伪静态化 页面技术: EL + JSTL +JSP 安全框架 spring security 搜索引擎: Lucene 中文分词:IKAnalyzer 模板引擎: ap 阅读全文
摘要:
本文作者系程序员Daniel F Pupius,这是一篇他发表在Medium上的博文,讲述自己怎么在实际写代码的过程中,发现在速度和质量间做出抉择其实是个伪命题。 程序开发项目进行过程中,通常会冒出这样的困惑:应该选择效率,还是选择质量?很多程序员都会有偷懒的思维,觉得把一些摸不清头绪、不知道怎么写的代码片段去掉,可以节省很多时间,更早完成项目计划。其实过去几年中,我也是这么想的,但最近我开始意识到,这个问题的纠结之处不在于选择困难,而在于问题本身是个伪命题。什么是“质量”呢?一般程序员说到“质量”二字时,他们说的有可能是测试通过率、变量命名、代码格式化、组件化、查找 bug、程序测试等等。也 阅读全文
摘要:
下面是我对面向接口编程的理解优点:1.程序结构清晰,使用方便2.接口经过合理设计后,有利于程序设计的规范化,并可以并行开发,提高工作效率3.实现了程序的可插拔性,对于不同的需求切换不同的实现,降低了耦合度,随着系统复杂性的提高这个优势会越来越明显4.允许多重实现,弥补了继承的缺陷缺点:1.增加了设计的复杂度,不佳的接口的设计会对所有使用接口的层都有影响,并且并不是所有的程序的都需要使用接口,接口只有在系统的复杂性达到一定程度才能体现出它的优势,否则只是纯粹的增加工作量,当然选择接口是不会错的,这需要自己的衡量2.可能会降低代码的可复用性3.可能会降低程序的执行效率使用接口的经典案例:1.JDB 阅读全文
摘要:
1 简介1.1什么是tsung ?Tsung (以前称为IDX-Tsunami)是一个分布是负载测试工具。它与协议无关,目前可以用来测试HTTP,WebDAV,SOAP,PostgreSQL, MySQL, LDAP, and Jabber/XMPPIt is distributed under the GNU General Public License version 2.1.2 什么是erlang 为什么在这里erlang很重要。tsung 的主要特点是,他可以使用单CPU模拟大量用户,当用于集群中时,你使用它便能产生真正的负载,并且容易安装和维护。Tsung 使用erlang开发,er 阅读全文
摘要:
要想成为高效的程序员,你需要具备一定的综合素质才能够让你用你所掌握的技能、经验和知识编写出有效的代码。有一些开发人员在技术方面具备一定的技巧,但 他们永远无法成为高效的程序员,就是因为他们缺乏所需的其它几项特质。本文将给出成为一个伟大的程序员所必须具备的7项特质。 1. 主动学习新的技术和非技术两方面的知识不好的程序员只有在实在不行的时候才开始进行知识学习。良好的程序员会主动学习新的技术知识。伟大的程序员不仅会自行学习新的技术知识,而且还会学习非技术方面的知识,对各种知识来源都有一种开放的心态,而不会像有的人那样固步自封。具体点说,不好的程序员只有在参加了采用WPF的项目时才开始学习XAM;良 阅读全文
摘要:
企业级项目实战(带源码)地址:http://zz563143188.iteye.com/blog/1825168收集五年的开发资料下载地址:http://pan.baidu.com/share/link?shareid=372668&uk=4076915866#dir/path=%2F%E5%AD%A6%E4%B9%A0%E6%96%87%E4%BB%B6 阅读全文