
开源产品
文章平均质量分 81
kjfcpua
这个作者很懒,什么都没留下…
展开
-
Ibator插件安装与配置
下载地址(供本地安装):现在我们着手来写一个ibatis的简单例子.如果你是使用eclipse开发项目的话,那么,有一个eclipse的插件ibator,可以通过配置自动生成java代码sqlmap等,蛮好用。下面先做一个使用ibator插件的例子。1.使用link方式在线安装ibator。eclipse菜单 help-->software updates-->add转载 2013-11-12 10:19:30 · 3313 阅读 · 0 评论 -
你应该更新的Java知识之构建工具
时至今日,如果你的Java项目依然需要启动一个特定的工具,比如IDE,才能编译部署,那你的项目不在本文的讨论之中,因为实在落后得太让人无语了。好,回归正题。旧时代的Java世界,构建工具等同于两个词Ant和Maven。Ant源自Make,同JUnit一样,它也是一个航班产物(参见《Ant权威指南》序)。不过,Make的基础注定了它的起点不高,所有一切都要手工打造。我还依稀记得曾几何转载 2013-08-28 10:51:05 · 834 阅读 · 0 评论 -
你应该更新的Java知识之常用程序库(二)
Hamcrest一句话,如果你写单元测试,就应该用Hamcrest。如今不写单元测试,你都不好意思说自己在做工程项目了。但你一般这么写断言呢?如果你还写成下面这样,我只能说你落伍了: assertEquals(a, b);请告诉我,哪个是执行结果,哪个是预期结果,不管你是怎样,反正大多数情况下,我是记不住的。所以,这个在只重功能不重可读性年代产生的API该更新了。转载 2013-08-28 10:50:17 · 720 阅读 · 0 评论 -
你应该更新的Java知识之Optional
java.lang.NullPointerException,只要敢自称Java程序员,那对这个异常就再熟悉不过了。为了防止抛出这个异常,我们经常会写出这样的代码:Person person = people.find("John Smith");if (person != null) { person.doSomething();}遗憾的是,在绝大多数Java代码里,转载 2013-08-28 10:55:48 · 1302 阅读 · 0 评论 -
你应该更新的Java知识之惰性求值
在开发中,我们经常会遇到一些需要延迟计算的情形,比如某些运算非常消耗资源,如果提前算出来却没有用到,会得不偿失。在计算机科学中,有个专门的术语形容它:惰性求值。惰性求值是一种求值策略,也就是把求值延迟到真正需要的时候。在Java里,我们有一个专门的设计模式几乎就是为了处理这种情形而生的:Proxy。不过,现在我们有了新的选择:Supplier。我们先来看看Supplier的定义:转载 2013-08-28 10:54:39 · 1009 阅读 · 0 评论 -
你应该更新的Java知识之集合初始化
在Java里,如何初始化一个List呢?我知道,你可以毫不费力地写出这样的代码:List names = new ArrayList();names.add("dreamhead");这几乎是在Java 5/6风格的代码中随处可见的,但不知道你怎么想,反正这样的代码让我觉得很不爽。首先,变量声明里存在重复,明明我已经知道它是一个String的List,还要再后面转载 2013-08-28 10:52:45 · 1029 阅读 · 0 评论 -
你应该更新的Java知识之常用程序库(一)
http://www.blogbus.com/dreamhead-logs/226738702.html在很多人眼中,Java已经是一门垂垂老矣的语言,但并不妨碍Java世界依然在前进。如果你曾离开Java,云游于其它世界,或是每日只在遗留代码中挣扎,或许是时候抬起头,看看老Java中的新东西。Guava一句话,只要你做Java项目,就应该用Guava。guav转载 2013-08-28 10:49:16 · 832 阅读 · 0 评论 -
google Collection 的MapMaker使用体验
前几天准备在写一个本地缓存的时候,有一个功能是设置超时时间,我当时用的是每次get的时候判断上次get的时间,跟当前时间对比看是否超过预期时间,来决定是否过期的。 RednaxelaFX提示我说,可以考虑使用googleCollection的MapMaker,除了可以设置超时功能外,还可以绑定key的未取到值的function,当通过get(key)取缓存为空的时候,可以通过这转载 2013-08-27 16:39:05 · 5365 阅读 · 2 评论 -
5个代码搜索引擎
http://code.ohloh.net/http://www.krugle.com/http://searchcode.com/http://nerdydata.com/http://www.symbolhound.com/原创 2013-08-07 14:02:04 · 1002 阅读 · 0 评论 -
你应该更新的Java知识之Observer
作为一个Java程序员,不熟悉设计模式简直不好意思和人打招呼,而Observer模式可以说是位列最常用的设计模式之列,虽然有时候在具体代码里,它不一定叫这个名字,比如改头换面叫个Listener,但模式就是这个模式。手工实现一个Observer也不是多复杂的一件事,只是因为这个设计模式实在太常用了,Java就把它放到了JDK里面:Observable和Observer,从JDK 1.0转载 2013-08-28 10:51:56 · 798 阅读 · 0 评论 -
你应该更新的Java知识 Java Guava 集合
我们打算做要做这样一件事,给出所有有资格过五四青年节的人的名字。如果你不知道的话,有资格过五四青年节的人要年龄在14周岁到28周岁之间。按照传统的思路,这段代码应该是这样写:List names = new ArrayList();for (Person person : people) { int age = person.getAge(); if (age >=转载 2013-08-28 10:53:32 · 1510 阅读 · 0 评论 -
在线编译器
在线编译器的诞生 在线编译器是一种在线编译环境,它和传统编译环境最大的区别在于前者不需要复杂的客户端及复杂的库。不同语言的在线编译器基本上都完全摆脱了传统的束缚,将所有的库和应用集成到云端的Web Server上面,实现了云计算。这对于很多编成语言的初学者来说,在线编译器解决了很多问题。 同时,对于那些在外不方便立即在自己的编译器上写代码进行工作的编程人员来说,在线转载 2013-09-23 16:41:31 · 2795 阅读 · 0 评论 -
SVN源码服务器搭建-详细教程
一、引言 笔者曾经试图在网上搜索一篇关于SVN源代码服务器搭建方面的中文技术文章,可惜,所找到的,要么是不完整,要么就是对笔者没什么帮助的文章,TortoiseSvn的帮助文档固然强大,但因为是英文,不是很适合来作为入门者使用;毕竟,TortoiseSvn是一个客户端,服务器端的配置也很重要。 一年前,笔者刚刚毕业,初入公司,在进行开发时,由于没有进行软件代码版转载 2014-02-09 14:42:21 · 1012 阅读 · 0 评论 -
Windows下在本机创建SVN服务
一个小项目,需要在自己的pc上创建svn服务,为了简单,没有用Apache,以前只是用过客户端,没有创建过服务端,结果花了一个上午,终于搞定了。svn最主要的功能是用于团队开发时用的,用于处理源码修改的版本控制和并发修改冲突。当然一个人开发的时候没有必要创建。注:我没有用VisualSVN。一、软件下载1、服务器端软件Subversion,我用的是1.6.6版本,Setup转载 2014-02-06 21:51:40 · 803 阅读 · 0 评论 -
在本地使用SVN进行源代码管理,配置自己的SVN Repository
Repository 即源码的集中存放处,所有修改后提交的源码就是保存在这里,并在其中记录所有的修改版本,分支版本,版本合并,以及并发修改处理等。SVN最主要的功能是用于团队开发时用的,用于处理源码修改的版本控制和并发修改冲突。对于个人开发来说,虽然不存在并发修改冲突的问题,但个人源码可以使用到SVN的版本控制功能,以便找到开发过程中的版本记录。一般个人没有条件也没必要搭一个独立的服务器来做Rep转载 2014-02-06 21:51:12 · 1199 阅读 · 0 评论 -
go
http://zh.golanger.com/ref/mem.oldhttp://www.cnblogs.com/yourihua/archive/2012/06/15/2541745.htmlhttp://blog.studygolang.com/2012/12/gdb%E8%B0%83%E8%AF%95go%E7%A8%8B%E5%BA%8F/http://www.yiibai.c原创 2013-11-08 20:16:05 · 1458 阅读 · 0 评论 -
mvn常用命令
mvn常用命令Maven常用命令: 1. 创建Maven的普通java项目: mvn archetype:create -DgroupId=packageName -DartifactId=projectName 2. 创建Maven的Web项目: mvn archetype:create转载 2013-11-07 10:34:22 · 15225 阅读 · 0 评论 -
go code
package part2/*数组数组切片map*/import ("fmt")/*[32]byte //长度32的数组,每个元素1个字节[2*n] struct{x,y int32} //复杂类型数组[1000]*float64 //指针数组[3][5]int //2维数组[2][2]原创 2013-11-16 17:47:52 · 1277 阅读 · 0 评论 -
eclipse中配置maven
下载地址http://maven.apache.org/download.cgi在线文档http://maven.apache.org/ref/3.0.5/安装一.安装JDK,配置好JAVA_HOME,配置好PATH测试打开cmdecho %Java_Home%java -version二.安装配置manen1转载 2013-08-03 17:16:49 · 12688 阅读 · 0 评论 -
maven.apache下载与安装
Maven是一个采用纯Java编写的开 源项目管理工具。Maven采用了一种被称之为project object model (POM)概念来管理项目,所有的项目配置信息都被定义在一个叫做POM.xml的文件中,通过该文件,Maven可以管理项目的整个声明周期,包括编 译,构建,测试,发布,报告等等。目前Apache下绝大多数项目都已经采用Maven进行管理。而Maven本身还支持多种插件,可以方转载 2013-04-03 14:27:51 · 1569 阅读 · 0 评论 -
集群同步session
跨jvm同步,Terracotta 还有 jgroup 不过Terracotta 可能更好点 是j2ee下一个缓存规范的标准 也可以基于jxta自己实现Terracotta 这个专门做jvm同步的 jgroup是 jboss用来在web server集群同步session的我以前遇到过主要一个问题,我研究一个第三的,我在一台linux上,开启一个服务,它转载 2013-03-14 09:38:52 · 864 阅读 · 0 评论 -
使用Apache commons IO包规范文件名
【一】Apache commons IO包之FilenameUtils在使用JDK的File类构建目录、文件对象时,通常会碰到以下的问题: ①分隔符的问题:Unix系统和Windos系统的路径分隔符、换行符不同 ②路径规范的问题:有些API对于返回的目录路径不带"/",有些则有 ③文件名规范的问题:有些文件名中间带有空格,导致程序解析错误上面的问题虽然不算复杂,却也转载 2013-01-28 10:44:58 · 1173 阅读 · 0 评论 -
commons-io之filefilter学习
1.基本功能过滤器=============================================①类型:DirectoryFileFilter、FileFileFilter②大小:EmptyFileFilter、SizeFileFilter③时间:AgeFileFilter④名称:NameFileFilter、PrefixFileFilter、SuffixFileFilter转载 2013-01-28 11:02:37 · 7595 阅读 · 0 评论 -
文件过滤器FileFilter
1、接口方法accept()中可以自行定义过滤规则2、此外,FilenameFilter和FileFilter类似,也提供文件过滤功能下面是FileFilter的一个应用案例,列出包含指定关键词的目录和文件import java.io.File;import java.io.FileFilter;public class KeywordFileFilter im转载 2013-01-28 10:58:59 · 1449 阅读 · 0 评论 -
common-io之Comparator阅读
1. 首先我们来查看AbstractFileComparator这个抽象类 首先我们来看一下IO包里面的Comparator,这个都比较好理解,首先是AbstractFileComparator这个类,他提供了两个接口,可以实现对Array和Collection的sort功能。 Java代码 "font-size: medium;">"color:转载 2013-01-28 11:03:24 · 1725 阅读 · 0 评论 -
Disruptor笔记(二)-测试
引入Hamcrest:是一个书写匹配器对象时允许直接定义匹配规则的框架.更丰富的表达方式,不侵入代码使用Jmock来做Mock库使用Junit4 工具类Util工具类提供计算容量2的n次方的方法 /** * Calculate the next power of 2, greater than or equal to x.转载 2013-01-25 11:22:12 · 691 阅读 · 0 评论 -
Disruptor 模式简单理解
http://www.cnblogs.com/adaikiss/tag/disruptor/Disruptor 主要用作进程间高效通信的一种模式, 它里面所有的实现都是围绕着怎样做可以high performance。 它的核心是 RingBuffer,其实就是一个事先分配好的数组。 这样做有几个好处: 1, GC友好, 事先分配好内存就避免了转载 2013-01-25 11:24:09 · 1428 阅读 · 0 评论 -
Disruptor笔记(五)-FAQ
1. MultiThreadedClaimStrategy.java中pendingPublication的用处:参考:http://blogs.lmax.com/How does this apply to our concurrentsequencing problem? We could allow threads to continue to make progress转载 2013-01-25 11:23:37 · 832 阅读 · 0 评论 -
Disruptor笔记(三)-处理模式
常见模式:1.UniCast a series of items between 1 publisher and 1 EventProcessor:一个publisher 一个eventprocessorP1 - Publisher 1RB - RingBufferSB - SequenceBarrierEP1 -Event转载 2013-01-25 11:22:39 · 1442 阅读 · 0 评论 -
commons-io之WildcardFileFilter的实现
上次这个是最后一个FileFilter,没想到这个实现的还比较复杂,当时头脑比较晕,也没有看懂,就想这次专门的看一下源码,在看这个Filter之前,我们必须要理解FilenameUtils里面的wildMatch函数的实现,这个是最经典的通配符的匹配,可以好好看看。 1. 首先我们应该来看一个小函数的实现splitOnTokens 这个函数实际上还是比较简转载 2013-01-28 10:58:06 · 1570 阅读 · 0 评论 -
FileFilter和FilenameFilter类性能比较
FileFilter和FilenameFilter 两个接口是在文件搜索中常用的,有什么区别? (什么是FileFilter? 什么是FilenameFilter? ) 下面通过一个测试程序来初步检验两个接口的性能。 方法:在一个目录中创建20000 个txt 文件,分别用实现了以上两个接口的类来搜索这个目录中的所有转载 2013-01-28 11:00:15 · 8264 阅读 · 2 评论 -
common-io 之ByteArrayOutputStream阅读
首先我们来分析它里面的的实例变量:buffers: 可以看成是一个buffer仓库,里面放的是已经读取的所有数据currentBufferIndex: 就是正在使用的buffer的indexcount: 用来存放buffers里面的所有的字节数currentBuffer: 就是当前的使用buffer,这个比较好理解。filledBufferSum: 这个转载 2013-01-28 11:04:03 · 1579 阅读 · 0 评论 -
百度高级架构师马如悦我的Hadoop 2.0
当计算任务越来越多,作业提交越来越多,企业普通的做法是,在原有的系统架构上,不停地往上堆积硬件或者加服务器。的确,hadoop设计上的优秀和可扩展性可以方便的让集群管理员对集群增删机器,所以当集群计算资源紧缺,又有空闲的机器可用时,集群管理员很容易想到给集群加机器来解决这个问题,因为集群的计算槽位增多了,Jobtracker能调度的槽位也多了,集群里能并行的map数和reduce数也增多了。转载 2013-03-13 17:41:39 · 1280 阅读 · 0 评论 -
天才是训练出来的
http://www.shupeng.com/netbook/35042152012年有三本书卖得很火,它们是:腾讯副总裁吴军先生的《数学之美》、日本资深技术作家结城浩的《程序员的数学》和北大高材生顾森的《思考的乐趣:Matrix67数学笔记》。而购买者绝大部分都是IT相关人士,当然最多的还是程序员。由此可见,很多一线程序员都意识到有时间应该学学数学,看看数学书,培养自己的数学转载 2013-01-17 17:06:11 · 856 阅读 · 0 评论 -
talent-thread-pool-2.0.0发布:java线程池框架
talent-thread-pool是什么? talent-thread-pool是基于jdk5内置线程池的封装,省却你一些事件的框架 1、帮你完成使用线程池所带来的繁琐的同步安全工作 2、为你提供一个更靠谱的RejectedExecutionHandler(jdk自带的是抛异常,本框架默认的是用定时继续提交) 3、为你提供一个更友好的ThreadFactory(jdk自带的F转载 2013-01-14 11:22:38 · 1807 阅读 · 1 评论 -
Commons Io 包 学习笔记~
IO包学习笔记 IO几乎都是实现序列化接口 Common 根目录工具类阅读 FileUtils 比较有学习价值 ,提供文件各种类型的操作,有点模拟操作系统 引用了大量的过滤器 FileSystemUtil 后去硬盘可用空间, 执行CMD /-C C: 指令,获取结果Process,转载 2013-01-28 11:11:14 · 970 阅读 · 0 评论 -
commons-io之ThresholdingOutputStream 和 DeferredFileOutputStream
1. ThresholdingOutputStream 这个类的意图主要是可以处理设置了临界值的OutputStream做出处理, 它当然是复写了三个write方法。 有三个步骤: 1. 检测是否到达临界值 2. 调用底层的Stream写数据 3. 改变已写数据的游标written 里面有两个抽象的方法:转载 2013-01-28 11:04:54 · 2430 阅读 · 0 评论 -
commons-io之inputstream学习
ProxyInputStream类的学习 这个类的设计意图不是特别明确,就是继承与JDK的FilterInputStream类的,但是在它的read(byte[] bytes)这个函数也是调用delegate的read(byte[])函数,父类的是直接调用的是read(byte[] bytes, int offset, int length)函数。 这个转载 2013-01-28 11:01:43 · 2634 阅读 · 0 评论 -
开源Commons包的 使用粗劣总结~
新公司常用的Utils类使用Apache Commons,就整理了下觉得比较常用的用作备忘 commons.io:FileUtils(file和stream,string相互转换),CopyUtils.IOUtils(stream和string,byte[]相互转换以及inputstream和outputstream相互copy) File file = new File("D:\\转载 2013-01-28 11:13:05 · 1247 阅读 · 0 评论 -
org.apache.commons.io.CopyUtils
该提供复制操作: 都是静态函数,没啥亮点 Java代码 public static int copy( Reader input, Writer output) throws IOException { char[] buffer = new char[DEFAULT_BUFFER_SIZE];转载 2013-01-28 11:09:07 · 654 阅读 · 0 评论