- 博客(30)
- 资源 (6)
- 收藏
- 关注
数据库数据自动生成工具dbmonster
在对程序进行测试时,需要向数据库中插入大量数据来进行模拟。目前有很多工具可以自动生成,比如开源的dbmonster。http://sourceforge.net/projects/dbmonster/该工具通过配置数据库表的信息就可以生成指定条数的数据。从网站上下载dbmonster-core-1.0.3包后,把相应的数据库jar包拷贝到lib目录下,比如mysql的jar包。然后配...
2014-01-09 16:20:37 697
使用Spring-data-mongodb构建通用的MongoDB DAO
和关系型数据库类似,在使用MongoDB的时候最主要还是CRUD,而Spring-data-mongodb封装了MongoTemplate类,可以方便的进行相应的操作。首先,配置spring <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/sch...
2013-12-23 17:19:56 556
原创 (转)海量用户积分排名算法探讨
原文地址:http://www.uml.org.cn/sjjm/201207161.asp问题某海量用户网站,用户拥有积分,积分可能会在使用过程中随时更新。现在要为该网站设计一种算法,在每次用户登录时显示其当前积分排名。用户最大规模为2亿;积分为非负整数,且小于100万。PS: 据说这是迅雷的一道面试题,不过问题本身具有很强的真实性,所以本文打算按照真实场景来考虑,而不局限于面试题的...
2013-12-15 13:35:43 186
原创 (转)支持生产阻塞的线程池
在各种并发编程模型中,生产者-消费者模式大概是最常用的了。在实际工作中,对于生产消费的速度,通常需要做一下权衡。通常来说,生产任务的速度要大于消费的速度。一个细节问题是,队列长度,以及如何匹配生产和消费的速度。一个典型的生产者-消费者模型如下:在并发环境下利用J.U.C提供的Queue实现可以很方便地保证生产和消费过程中的线程安全。这里需要注意的是,Queue必须设置初始容量,防止...
2013-11-26 17:11:27 117
windows下查看端口被什么程序占用
今天调试程序的时候发现有一个ip是我本地的应用请求我应用程序的8080端口,每5分钟一次,请求url如下:/announce?info_hash=%E4%CC%91%DAg%D95U%9F%96AG%05%1A%E7B%1B%97%E4S&peer_id=%2DSD0100%2D%F9e%2F%29%3D%EA%CF%20x7%26%11&ip=10.2.154.70&...
2013-11-08 16:51:45 259
原创 责任链——Chain of Responsibility
在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。发出这个请求的客户端并不知道链上的哪一个对象最终处理这个请求,这使得系统可以在不影响客户端的情况下动态地重新组织链和分配责任。责任链模式涉及到的角色如下所示:Ø 抽象处理者(Handler)角色:定义出一个处理请求的接口。如果需要,接口可以定义出一个方法以设...
2013-10-27 21:03:28 80
Spring MVC中各个filter的用法
过滤器相关类的结构spring mvc的org.springframework.web.filter包下的Java文件如下:类的结构如下:AbstractRequestLoggingFilter及其子类 AbstractRequestLoggingFilter类定义了两个方法beforeRequest和afterRequest分别用于设定过滤前后执行的操作,它有三个子类,...
2013-10-26 20:57:01 441
利用策略枚举重构代码
问题描述:在创建合同时,会选择一个何时付款的策略,比如,目前策略有: 合同执行开始时付款100%, 合同执行结束后付款100% 合同每月结算当月应付金额 ... 并且付款的策略还会改变。最初的代码使用一大串if...else...,如下: public List<PaymentPlan> resolve(ExecutionUni...
2013-09-30 20:23:22 230
原创 Redis的五种基本数据结构与相对应的命令
Redis是什么REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统。Redis提供了一些丰富的数据结构,包括 lists, sets, ordered sets 以及 hashes ,当然还有和Memcached一样的 strings结构.Redis当然还包括了对这些数据结构的丰富操作。Redi...
2013-09-26 17:59:25 196
原创 BlockingQueue阻塞队列分析(一)-ArrayBlockingQueue和LinkedBlockingQueue
BlockingQueue接口BlockingQueue接口继承自Queue接口:public interface BlockingQueue<E>extends Queue<E>与Queue队列相比,它是线程安全的。添加和移除元素有四类方式,其中add()、remove()、offer()、poll()、element()、peek()方法继承自Queue...
2013-09-18 16:22:03 156
自旋锁在生产者-消费者模型中避免假唤醒问题
先看一个有问题的只能轮替发生的生产者-消费者模型代码(源自http://www.iteye.com/problems/96126的问题): //生产/消费者模式public class Basket { Lock lock = new ReentrantLock(); // 产生Condition对象 Condition produced = loc...
2013-09-17 22:42:18 189
spring配置中<context:component-scan/>的use-default-filters的作用
首先来看下spring -context-3.0.xsd中关于<contenxt:component-scan/>属性use-default-filters的定义:<xsd:attribute name="use-default-filters" type="xsd:boolean" default="true"> <xsd:annotation&..
2013-09-17 18:34:27 170
proxy_set_header设置Host为$proxy_host,$host与$local_host的区别
先来看下proxy_set_header的语法语法:proxy_set_header field value;默认值:proxy_set_header Host $proxy_host;proxy_set_header Connection close;上下文:http, server, location允许重新定义或...
2013-09-17 15:44:08 2637
原创 ConcurrentHashMap分析与应用
ConcurrentHashMap类与 Hashtable 相似,都是线程安全的,但与 HashMap 不同,它不 允许将 null 用作键或值。 可以使用Iterator和Enumeration进行遍历,且不会抛出ConcurrentModificationException。不过,迭代器被设计成每次仅由一个线程使用。ConcurrentHashMap可以做到读取数据不加锁,并且其内...
2013-09-17 13:53:25 118
基于Mybatis的通用Service层实现
首先抽象实体Bean的父类BaseModel,包括通用的创建时间、分页等基本信息:public abstract class BaseModel implements Serializable { private static final long serialVersionUID = -665036712667731957L; /** * 排序 升 降...
2013-09-16 15:38:40 586
原创 Spring 编程式事务管理
Spring提供两种方式的编程式事务管理:使用 TransactionTemplate直接使用一个 PlatformTransactionManager 实现 如果你选择编程式事务管理,Spring推荐使用 TransactionTemplate。使用TransactionTemplate TransactionT...
2013-09-16 14:03:46 109
Spring 声明式事务
Spring的声明式事务管理是通过Spring AOP实现的,默认情况下,Spring事务只在遇见RuntimeException时才会回滚,可以通过配置来设置其他类型异常。概念上来说,在事务代理上调用方法的工作过程看起来像这样:基于@Transactional注解的事务方式 首先配置Spring容器: <!-- 激活annotation功能 -->&...
2013-09-16 12:06:29 85
原创 Spring 声明式事务
Spring的声明式事务管理是通过Spring AOP实现的,默认情况下,Spring事务只在遇见RuntimeException时才会回滚,可以通过配置来设置其他类型异常。概念上来说,在事务代理上调用方法的工作过程看起来像这样:基于@Transactional注解的事务方式 首先配置Spring容器: <!-- 激活annotation功能 -->&...
2013-09-16 12:05:50 100
原创 数据库事务以及隔离级别
数据库事务概念数据库事务必须同时满足 4 个特性:原子性(Atomic)、一致性(Consistency)、隔离性(Isolation)和持久性(Durabiliy),简称为ACID。下面是对每个特性的说明。 原子性:表示组成一个事务的多个数据库操作要么全部成功、要么全部失败。一致性:事务操作成功后,数据库所处的状态和它的业务规则是一致的,即数据不会被破坏。如从A账户转账100元到...
2013-09-16 12:01:24 134
原创 HashMap和Hashtable的区别
首先来看这两个类:1public class Hashtable<K,V>2 extends Dictionary<K,V>3 implements Map<K,V>, Cloneable, java.io.Serializable {4 ...
2013-09-15 23:32:41 86
原创 jstat命令
Jstat是JDK自带的一个轻量级小工具。全称“Java Virtual Machine statistics monitoring tool”,它位于java的bin目录下,主要利用JVM内建的指令对Java应用程序的资源和性能进行实时的命令行的监控,包括了对 Heap size和垃圾回收状况的监控。 语法结构:Usage: jstat -help|-options ...
2013-09-15 23:31:21 105
原创 Spring MVC拦截器+注解方式实现防止表单重复提交
原理:在新建页面中Session保存token随机码,当保存时验证,通过后删除,当再次点击保存时由于服务器端的Session中已经不存在了,所有无法验证通过。1.新建注解:/** * <p> * 防止重复提交注解,用于方法上<br/> * 在新建页面方法上,设置needSaveToken()为true,此时拦截器会在Session中保存一个token,...
2013-09-15 23:29:26 164
原创 Java枚举
Java在1.5之后,有了enum关键字,定义枚举类。它是一种特殊的类,同样可以有方法和属性,可以实现一个或多个接口,可以定义构造器。它与普通类区别:1.枚举类可实现一个或多个接口,使用enum定义的枚举类默认继承了java.lang.Enum类,而不是Object类。而java.lang.Enum类实现了java.lang.Serializable和java.lang.Comparable...
2013-09-15 23:25:01 68
原创 单例模式以及通过反射和序列化破解单例模式
对于Java来说单例模式可以有以下几种方式:饿汉方式懒汉方式双重检查加锁懒汉方式内部类方式枚举方式破解单例模式有两种方式:通过反射的方式和通过序列化的方式。下面将一一对此进行分析。饿汉方式非常简单,即使用一个初始化的静态变量,代码如下:1public class EagerSingleton {2 private...
2013-09-15 23:22:43 124
彷徨..
这段时间自己仿佛走到了黑漆漆的洞里,彷徨不知所措。工作在别人眼里看来已经有很好的offer选择了,但是自己还没下定决心,在户口与不知是否是真的兴趣的公司之间徘徊,但愿本周能做出抉择。老师每天催着论文,丝毫没有动力去写,上周只拿了一个小时时间胡乱改改,老师竟然还说不错,结果是让我把一篇改成两篇。本来打算这周把这些乱七八糟的事弄完呢,谁知自己脑子里又冒出更多乱七八糟的想法。 研究生还有半年就毕...
2011-12-05 15:22:49 104
数组最大连续子序列和
编程之美上的一个题:给出一个整数序列S,其中有N个数,定义其中一个非空连续子序列T中所有数的和为T的“序列和”。对于S的所有非空连续子序列T,求最大的序列和。思路 * 数组第一个元素A[0]和最大子数组和(a[i],...a[j])关系 * 1.当0=i=j时,a[0]就是最大子数组 * 2.当0=i...
2011-12-01 17:35:03 133
原创 JAVA NIO 简介
1. 基本 概念IO 是主存和外部设备 ( 硬盘、终端和网络等 ) 拷贝数据的过程。 IO 是操作系统的底层功能实现,底层通过 I/O 指令进行完成。所有语言运行时系统提供执行 I/O 较高级别的工具。 (c 的 printf scanf,java 的面向对象封装 )2. Java 标准 io 回顾Java 标准 IO 类库是 io 面向对象的一种抽象。基于本地方法的底层...
2011-11-23 16:27:13 52
原创 xpath的简单实用
当前使用XPath 1.01,需求说明 假设要查询一个图书列表,寻找TEST的著作. 2,创建项目 创建一个Java项目. Java 1.5推出了javax.xml.xpath包,提供一个引擎和对象模型独立的XPath库.只要Java环境>1.5,无需增加类库. 这个包也可用于Java 1.3及以后的版本,但需要单独安装Java API for XML Pr...
2010-12-28 16:02:54 112
flex中不显示中文的问题
有时候我们在弄一些开源程序的时候,中文可能不支持,即可能不能显示。这个问题在我看birdeye的时候发现了,搞了半天原来是样式的问题。原因:程序中可能已经设定了样式,所以找到.css文件,自己设定一下中文样式就可以了。如Application { font-family: "宋体"; font-size: 10; backgroundColor: #ffffff;}...
2010-12-22 14:25:21 198
转载 MySQL数据类型 int(M) 表示什么意思?
MySQL 数据类型中的 integer types 有点奇怪。你可能会见到诸如:int(3)、int(4)、int(8) 之类的 int 数据类型。刚接触 MySQL 的时候,我还以为 int(3) 占用的存储空间比 int(4) 要小, int(4) 占用的存储空间比 int(8) 小。后来,参看 MySQL 手册,发现自己理解错了。int(M): M indicates the maximum display width for integer types.在 integer 数据
2010-10-15 10:03:00 7279
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人