读书生活

正在读的书 领域驱动设计 Hadoop权威指南 计划读的书 MySQL技术内幕(第5版) 最近读过的书 深入理解Java虚拟机 大型网站系统与Java中间件实践 大型网站技术架构:核心原理与案例分析 数据挖掘导论   read more

2015-09-03 | 读书

JSR 233 Java6脚本支持(groovy版)

直接上代码, 详细代码参见 public class Jsr233 { public static void main(String[] args) throws ScriptException { ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngine eng = manager.getEngineByName("groovy"); eng.eval("def say(){ println 'hello' }"); Invocable invocable = (Invocable)eng; BusinessService businessService = invocable.getInterface(BusinessService.class); businessService.say(); } } interface BusinessService{ void say(); } 这是Java6原生支持的特性,javascript是默认支持的(使用Rhino实现),如果需要在java中加入脚本语言支持,这是很好的一种方式; 我自己也使用过js集成,就是在写自动化集成测试(API)用例时,需要加密(前端的js加密算法),我直接用这种方法加在java中,真心方便!   read more

2013-08-27 | java

groovy快速排序

1,groovy快速排序算法 详细代码参见listInAction.groovy def quickSort(list){ if (list.size() pivot } return (quickSort(left) + middle + quickSort(right)) } 代码太简洁了,有么有   read more

2013-08-09 | 算法

快速排序

1,基础快速排序算法 详细代码参见QuickSort.java public static void sort(Comparable[] a) { sort(a, 0, a.length-1); } private static void sort(Comparable[] a, int lo, int hi) { if( hi = j) break; SortExample.exch(a, i, j); } SortExample.exch(a, lo, j); return j; } 2,三向切分快速排序算法(熵最优) 详细代码参见Quick3Sort.java public static void sort(Comparable[] a) { sort(a, 0, a.length-1); } private static void sort(Comparable[] a, int lo, int hi) { if(hi 0) SortExample.exch(a, i, gt--); else i++; } sort(a, lo, lt-1); sort(a, gt + 1, hi); }   read more

2013-06-18 | 算法

归并排序

1,自顶向下归并排序 详细代码参见MergeSort.java public static void sort(String[] a) { aux = new Comparable[a.length]; sort(a, 0, a.length - 1); } private static void sort(Comparable[] a, int lo, int hi) { if (hi mid) a[k] = aux[hiIndex++]; else if (hiIndex > hi) a[k] = aux[loIndex++]; else if (SortExample.less(aux[hiIndex], aux[loIndex])) a[k] = aux[hiIndex++]; else a[k] = aux[loIndex++]; } } 2,自底向上归并排序 详细代码参见MergeBUSort.java private static Comparable[] aux; public static void sort(String[] a) { aux = new Comparable[a.length]; int N = a.length; for (int size = 1; size mid) a[k] = aux[hiIndex++]; else if (hiIndex > hi) a[k] = aux[loIndex++]; else if (SortExample.less(aux[hiIndex], aux[loIndex])) a[k] = aux[hiIndex++];...   read more

2013-06-13 | 算法