- 博客(56)
- 收藏
- 关注
原创 使用Intell IDEA Debug jetty web应用
以下适合于使用maven管理的web工程,运行在jetty容器下:1.添加jetty的maven插件 org.mortbay.jetty maven-jetty-plugin 6.1.26
2012-04-10 14:50:52
18147
原创 两个脚本文件
1.ssh自动登陆脚本:#!/usr/bin/expect -fset ipaddr "192.168.0.144"set loginuser "hongguangyan"set loginpass "0u1y4hongguangyan"set timeout 10spawn ssh $loginuser@$ipaddr -p 22expect "*assword:*"send
2012-03-14 14:23:43
3041
转载 Java 程序员应该了解的 10 个面向对象设计原则
面向对象设计原则是OOPS(Object-Oriented Programming System,面向对象的程序设计系统)编程的核心,但大多数Java程序员追逐像Singleton、Decorator、Observer这样的设计模式,而不重视面向对象的分析和设计。甚至还有经验丰富的Java程序员没有听说过OOPS和SOLID设计原则,他们根本不知道设计原则的好处,也不知道如何依照这些原则来进行编程
2012-03-13 09:07:54
2573
转载 介绍JDK 动态类型语言支持
注 转自infoq Java虚拟机的字节码指令集的数量自从Sun公司的第一款Java虚拟机问世至JDK 7来临之前的十余年时间里,一直没有发生任何变化[1]。随着JDK 7的发布,字节码指令集终于迎来了第一位新成员——invokedynamic指令。这条新增加的指令是JDK 7实现“动态类型语言(Dynamically Typed Language)”支持而进行的改进之一,也是为JDK 8
2012-02-10 11:48:02
3413
转载 log4f
log4j是一个非常强大的log记录api工具.下面先来看Log4J的类图Logger - 日志写出器,供程序员输出日志信息 Appender - 日志目的地,把格式化好的日志信息输出到指定的地方去 ConsoleAppender - 目的地为控制台的Appender FileAppender - 目的地为文件的Appender Roll
2012-02-09 11:05:13
2931
转载 zookeeper简介
zookeeper是一个开源分布式的服务,它提供了分布式协作,分布式同步,配置管理等功能. 其实现的功能与google的chubby基本一致.zookeeper的官方网站已经写了一篇非常经典的概述性文章,请大家参阅:ZooKeeper: A Distributed Coordination Service for Distributed Applications在此我仅花少量笔墨介
2012-02-04 15:29:24
4015
1
转载 字符串匹配算法
本系列文章主要介绍几种常用的字符串比较算法,包括但不限于蛮力匹配算法,KMP算法,BM算法,Horspool算法,Sunday算法,fastsearch算法,KR算法等等。本文主要介绍KMP算法和BM算法,它们分别是前缀匹配和后缀匹配的经典算法。所谓前缀匹配是指:模式串和母串的比较从左到右,模式串的移动也是从左到右;所谓后缀匹配是指:模式串和母串的的比较从右到左,模式串的移动从左到右。看得出来
2012-02-04 15:21:35
3275
转载 继续二叉树--图文表示
上一篇介绍红黑二叉树,添加操作相对比较简单,好理解,但是红黑树元素的删除还是比较麻烦的,所以转载一篇图文并茂的文章,方便理解:转自:http://blog.youkuaiyun.com/Very_2/article/details/5722682 介绍另一种平衡二叉树:红黑树(Red Black Tree),红黑树由Rudolf Bayer于1972年发明,当时被称为平衡二叉B树(symmet
2012-02-04 10:51:44
2833
原创 TreeMap实现
TreeMap使用红黑二叉树实现。红黑二叉树:a. 根节点是黑色的;b. 红色节点的儿子节点是黑色的;c. 任何一个节点到空节点的所有路径上必包含相同数据的黑色节点;d. 叶子节点的子节点是黑色节点 假设一颗红黑树的黑色节点个数为R,那么这棵树的最短高度为R,最大长度为2R所以h先看插入:第一步,先
2012-02-04 01:21:41
6984
原创 好记性不如烂笔头(1)
1.mysql join/order by/group:Join 的时候最好选择小结果集驱动大结果集Join 语句中的被驱动表的join条件最好加上索引Join buffer 大小的设置Order by 假如是根据有序索引直接获取有序数据 不用进行任何排序操作无索引时候可以将排序字段和定位它所对应的行索引 排序后再去数据库中取需要的那些字段或者是一次性将所有需要的字段先放
2012-01-11 22:08:56
2637
原创 HDFS之NameNode分析
大家都知道HDFS的架构由NameNode,SecondaryNameNode和DataNodes组成,其源码类图如下图所示:正如上图所示,NameNode和DataNode继承了很多的protocol用于彼此间的通信,其实nameNode还实现了RefreshUserMappingsProtocol和RefreshAuthorizationPolicyProtocol两个协议,用于权限控
2012-01-11 21:59:54
5195
转载 Bloom Filter
查询利器-bloom-filter详解布隆过滤器(Bloom Filter)是1970年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都远远超过一般的算法,缺点是有一定的误识别率和删除困难。本文着重于在实现Bloom Filter的时候会使用到的一些技巧。布隆过滤器的原理不难理解
2012-01-11 11:23:48
2876
转载 转一个常用排序算法的动画效果图
来自:http://yingyingol.iteye.com/blog/13348911 快速排序介绍: 快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner lo
2012-01-11 10:49:06
17942
转载 堆排序及算法分析
写的不错,转过来了http://www.cnblogs.com/zabery/archive/2011/07/26/2117103.html前言记得在学习数据结构的时候一味的想用代码实现算法,重视的是写出来的代码有一个正确的输入,然后有一个正确的输出,那么就很满足了。从网上看了许多的代码,看了之后貌似懂了,自己写完之后也正确了,但是不久之后就忘了,因为大脑在回忆的时候,只依稀记
2012-01-11 10:40:27
3342
原创 Hadoop之TaskTraker分析
TaskTracker的工作职责之前已经和大家提过,主要负责维护,申请和监控Task,通过heartbeat和JobTracker进行通信。 TaskTracker的init过程: 1.读取配置文件,解析参数 2.将TaskTraker上原有的用户local files删除并新建新的dir和file 3. Map tasks = new HashMa
2012-01-10 01:48:10
3935
原创 关于Hadoop的shuffle
我们知道每个reduce task输入的key都是按照key排序的。 但是每个map的输出只是简单的key-value而非key-valuelist,所以洗牌的工作就是将map输出转化为reducer的输入的过程。 在map结束之后shuffle要做的事情: map的输出不是简单的写入本地文件,而是更多的利用内存缓存和预排序工作,以提高效率。io.so
2012-01-09 23:34:53
7696
原创 Hadoop之JobTrack分析
1.client端指定Job的各种参数配置之后调用job.waitForCompletion(true) 方法提交Job给JobTracker,等待Job 完成。 public void submit() throws IOException, InterruptedException, ClassNotFoundException
2012-01-09 15:31:40
7013
原创 JVM gc只新生代串行GC
1.代码一:public class JVMTest { public static void main(String args[]) throws InterruptedException { byte [] bytes1 = new byt
2011-09-16 20:43:44
1992
翻译 翻译《The rsync algorithm》
最近在学习Rsync工具,在对Rsync算法大加赞赏之余,决定将《The rsync algorithm 》翻译,有不正之处 还请指正。转载请注明出处。 rsync算法安德鲁Tridgell 保罗马克拉斯 部计算机科学 澳大利亚国立大学 堪培拉,AC
2011-08-25 21:49:41
9464
原创 java序列化
废话不多说,看实例:先新建一个java类:class ObjectSearilizeTest{ private long id =1234; private int num; private String userName; publi
2011-08-23 17:26:05
963
原创 Spring AOP 实例
Spring AOP 中提供了两种PointcutAdvisor,分别是: ①org.springframework.aop.support.RegexpMethodPointcutAdvisor (需要加上完整类名,可以用Spring提供的匹配方式) ②org.springframework.aop.support.NameMatchMethodPointcutAdvisor(
2011-08-18 12:54:48
1860
转载 Java并发编程之ConcurrentHashMap
转自http://www.goldendoc.org/2011/06/juc_concurrenthashmap/ConcurrentHashMapConcurrentHashMap是一个线程安全的Hash Table,它的主要功能是提供了一组和Has
2011-08-18 09:33:45
1129
原创 关于/dev/null及其用途
把/dev/null看作"黑洞". 它非常等价于一个只写文件. 所有写入它的内容都会永远丢失. 而尝试从它那儿读取内容则什么也读不到. 然而, /dev/null对命令行和脚本都非常的有用.禁止标准输出.1 cat $filename >/dev/nu
2011-08-16 13:26:48
1233
转载 Rsync命令详解
在对rsync服务器配置结束以后,下一步就需要在客户端发出rsync命令来实现将服务器端的文件备份到客户端来。rsync是一个功能非常强大的工具,其命令也有很多功能特色选项,我们下面就对它的选项一一进行分析说明。Rsync的命令格式可以为以下六种: rs
2011-08-16 12:53:03
914
原创 Python相关资料
http://www.red-dove.com/python_logging.html python logging模块文档与源码 http://gashero.yeax.com/?p=16 部分中文翻译http://www.advsofteng.com/download
2011-08-15 09:51:15
803
原创 linux系统免登陆之SSH
linux免登陆最常见的方式就是使用基于ssh协议的公钥认证方式。其原理就是将你机器的公钥分发到需要免登陆的机器上。 Step1:安装ssh服务:sudo apt-get install ssh 并开启服务 service ssh start Step2 :使
2011-08-14 10:58:37
3457
原创 hadoop实例之伪分布式模式
1.需要添加hadoop登陆权限,在分布式系统中,需要ssh权限才能登陆到节点上$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa $ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
2011-08-08 19:29:33
6652
原创 hadoop学习--安装使用
原理普及:关于hadoop的原理,可以去很多地方普及,这里不再啰嗦。hadoop内部结构:hadoop执行map-reduce流程图:使用教程:1.下载hadoop core 源代码:http://apache.etoak.com//hadoo
2011-08-08 14:21:57
1631
转载 Java EE 6 Web层综述:Servlet获得异步支持、扩展性改善
转自infoq作者 Charles Humble 译者 张龙 发布于 2010年1月19日很多Java Web应用都是基于某个框架的,如Apache Wicket、Java ServerFaces、Struts或是Spring MVC等等。要想使用框架,开
2011-08-08 11:39:51
836
转载 java7 新特性
文章转载自:开源中国社区 [http://www.oschina.net]官方说是 7月28日 正式发布 Java 7 ,正常的话我们应该在 7月29日 看到这个版本。很快了,就两天时间。发布之前让我们先来看看 Java 7 都有什么新特性吧。Java
2011-07-31 01:46:02
956
原创 Python语言学习小结
1. 字符串可以用""或者'':print "this is fun"print 'Yay!Printing.'2.代码以行和4个空格,对齐标示开始和结束3.注释:#4.str之间用"+"和","连接,"+"就是直接concat,","会加上一个空格 并且pr
2011-07-31 01:22:39
851
原创 性能调优实践总结
上次和大家介绍了使用YUI者compressor框架进行自动压缩工作中遇到的问题和技巧. 本次,继续压缩的话题,谈谈压缩过程中的优化.上次提到在对js/css文件进行压缩之前,需要做一步转码工作.需要使用java自带的native2ascii工具将GBK/utf8格式
2011-07-31 00:47:26
751
原创 系统调优小技巧&规则
理解你应用的关键路径及关键路径消耗的资源,然后查看该资源的利用率第一步:从系统层开始,主要包括以下命令:vmstat,iostat,sar,top,netstat,sysctlvmstat指令可以查看linux系统性能情况:系统内核线程,虚拟内存,磁盘io,陷阱和cpu活动的统计信息等,如下所示:songjing@songjing ~ $ vmstatprocs ---
2011-06-30 12:39:00
1086
原创 开源分词框架分析
本文将带你一起了解搜索引擎神秘面纱中的一个重要部分---中文分词技术:主要讲述中文分词的实现原理和现今比较热门的几种搜索分词java版开源框架。任何一个全文搜索引擎都必须要在对索引处理之前进行一项重要的数据预处理工作:分词。分词的作用在于让机器能够更加容易的"学会"人类语言,搜索引擎才能展示出我们真正想要找的东西。当然,如果仅仅只是针对搜索这个应用场景,对外文(英文,俄文)的分词工作似乎轻而易举,
2011-06-28 19:08:00
6874
原创 关于Web应用API设计的一些想法和实践
最近在做项目,因为需求变动,需要修改多个API接口,因而对此有了一些想法,在同事的建议和讨论下,对API的设计理念有了重新的思考和认知,谨以此文记之。 Api设计要点: 个人认为API设计的几个核心要素在于:简单适用,安全,统一。 简单适用:涉及几个方面,开发过程简单化,使用者用起来的时候不会费劲。假如你的API接口实现起来极其困难(需求之外的因素导致的),那你就需要
2011-06-24 16:09:00
1900
原创 Yui Compressor Java压缩实践
最近在做一个项目,需求大概是将公司每个应用的js/css统一管理,更新和发布到cdn上。本文只分享在对js/css进行压缩处理时遇到的经验和问题,其他内容不多做介绍。 首先,因为每个应用的css/js都在svn库中保存,需要将其“checkout”到本地或者db中。然后使用者根据需要再选择相关文件发布。发布过程大概是生成本地文件,然后使用一些优秀的×nix工具将其同步到cdn上面。本文需
2011-06-24 16:06:00
8010
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人