`
cjf068
  • 浏览: 34398 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
原创,简单线程池实现 2012-02-02 beta1.0.1 修正一个bug,AbstractJob新增中断标志,新增示例代码
beta1.0.1 新增示例代码
昨天博客上看到一童鞋面试微软的题目: 将中文数字转换成阿拉伯数字表示: 如 五千零一-->5001 五千一 5100 package org.jf.alg; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Stack; ...

布隆过滤器

package org.jf.alg; import java.util.BitSet; /** * * * * @author chenjf * */ public class BloomFilter { private BitSet bit_array ; private final int MAX_SIZE ; public BloomFilter(int size) { this(size,2000000000); } public BloomFilter(int size,int m ...

基本的排序算法

插入排序 选择排序 快速排序 。。。。 后续补充 package org.jf.alg.sort; /** * * 数组排序工具类 * * 数组中不能有空元素 * * @author junfeng.chen * */ public class Sorter { /** * * 选择排序 * 算法思想:将待排序的集合分为两部分,一部分为已排序的部分,一部分为未排序部分 * 开始时,未排序部分为整个集合,已排序部分为空 * 算法步骤: * 每次从待排序的集合中找出最大(或最小)的元素,将该元素与 ...

日期计算

简单日期计算类: 日期大小比较 日期之间天数计算 package org.jf.alg; /** * * @author junfeng.chen * */ public class Date { private int year; private int month; private int day; private static final int days_array[]= {31,28,31,30,31,30,31,31,30,31,30,31}; private static final int days_leap_arr ...
已知int数组a按升序排列,要求用线性时间复杂的算法,判断是否存在一个数n等于数组中某两个元素之和。 线性算法: 取两个数组下标,一个为起始下标,一个为末尾下标,分别即为low和high (以下代码假设数组尚未排序) /** * 判断是否存在两个元素之和与给定数相等 * @param a * @param n * @return */ public static boolean withDoubleElements(int []a,int n) { Arrays.sort(a); int low = 0,high = a.length-1 ...
求最大子数组之和的线性解法:本算法受编程珠玑中提示而得 /** * 线性时间复杂度求最大和子数组 * @param a 源数组 * @return 结果数组 长度为3的数组 分别为元素起始位置 结束位置 总和 */ public static int[] getMaxSumSubArray(int a[]) { int begin = 0,end = -1,maxSofar = 0,maxHere = 0,cbegin = 0,cend=-1; for(int i=0;i<a.length;i++) { maxHere ...

常用地址

Using JMX http://docs.oracle.com/javase/1.5.0/docs/guide/management/agent.html# http://www.360doc.com/content/11/1102/15/2795334_161094472.shtml JVM调优 http://zhaohe162.blog.163.com/blog/static/382167972011101325527323/ sun bug database http://bugs.sun.com/bugdatabase/ http://www.iteye.com/topic/97316 ...

维护日志

JVM内存溢出问题: 1.在启动脚本中增加heap dump输出选项: SUN JVM: -xx:+HeapDumpOnOutOfMemoryError IBM JVM: HP  JVM: JROKIT JVM: 2.手动输出 heap dump 2.1 sun jvm jmap -dump:format=b,file=$UMP_HOME/java_pid<pid>.hprof <pid> 如 ump的 进程号为3748,$UMP_HOME 为 /home/ump ,使用如下命令输出当前ump的heapdump jmap -dump:format=b,file ...

LRUCache

MyLRUCache 缓存类 package org.jf.alg.lru; import java.util.Collections; import java.util.HashMap; import java.util.LinkedList; import java.util.List; import java.util.Map; /** * 限定容量二叉堆+HashMap实现LRU * * @author junfeng.chen * */ public class MyLRUCache { private Map<Ob ...

求变位词组合

public class CharComp { /** * * 1.给单词排序 * 2.给排序后的单词设定标识符 * 3.通过标识符在map中查找对应的list,并将其追加其中(未排序的单词) * */ public static Map<String,Set<String>> getGroupWords(String [] words) { Map<String,Set<String>> map = new HashMap<String,Set<String& ...

计算24点

计算n个数的全排列 package org.jf.alg.stack; import java.util.List; import java.util.ArrayList; public class PermUtil { /** * @param args */ public static void main(String[] args) { List<String[]> list = perm(new String[]{"a","b","c","d&qu ...

表达式计算

中缀表达式转后缀 后缀表达式计算 支持整型 分数计算,只支持 + - * / package org.jf.alg.stack; import java.util.List; import java.util.ArrayList; import java.util.Stack; public class OperationUtil { /** * 中缀表达式转为后缀表达式 * (1)获取下一个输入标记 * (2)如果标记是: * 左括号:将其压入表达式栈 * 右括号:连续弹出并显示栈中的元素,直到遇到一个左括号 * 一个运算符: ...

Many2One缓冲

多线程并发操作中,为了尽量减少同步锁的开销,一般都会尽可能减少同步操作。以下是一个多线程写入,写入操作需要同步,读取操作需要部分同步;读取操作的同步发生在缓冲区交换的时候。 以下是简单的java实现 package org.jf; import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; /** * * * 项目名称:Util * 类名称:MyBuffer * 类描述: 多线程写入 单线程读取 * 创建人:Administr ...
Global site tag (gtag.js) - Google Analytics