2013年5月10日
摘要: 1. 静态代码块内变量的性质类似方法变量,如:在静态代码块内部声明的变量为局部变量,其不能被其他方法调用。2. 静态代码块不能存在与方法体内部,必须要独立于方法体。3. 静态代码块,无论位于类的何处位置,都将是最先被执行的部分。如果有多个静态代码块,则按其本身的顺序加载。4. 方法体内部不能声明static类型变量。原因:方法需要调用才能被执行,但static类型的变量,类被加载就会存在。5. 静态方法内部不能调用非静态方法。原因:静态方法不需要new即可调用,但非静态方法需要new才能被调用。 阅读全文
posted @ 2013-05-10 17:11 尖刀舞者 阅读(122) 评论(0) 推荐(0) 编辑
摘要: public static <A extends Annotation> A getAnnotation(final Class<?> clazz, final Class<A> annotationClass) { return executeWithinCleanSynchronizedAnnotationManager(new RunnableWithResult<A>() { @SuppressWarnings("unchecked") @Override public A run() { return (A) Ann 阅读全文
posted @ 2013-05-10 16:39 尖刀舞者 阅读(129) 评论(0) 推荐(0) 编辑
  2013年4月23日
摘要: 原理简介:需要两个哨兵,标识两个字符串中两个相互对比的字符。主串的哨兵在匹配过程中逐步递增,一旦出现不匹配,进行回溯(现在的位置i - 模式串的现在哨兵的位置 + 1<向前前进一位> ),将模式串的哨兵重置为0,重新开始比较;缺点:需要进行回溯,进行重复比较。改进算法:KMP算法。public class BFString{ public static void main(String[] args){ String bigStr = "abbvcacsdaeaedddaecaedd"; String smallStr = "aedd"; i 阅读全文
posted @ 2013-04-23 14:28 尖刀舞者 阅读(137) 评论(0) 推荐(0) 编辑
  2013年4月22日
摘要: next数组的左右:消除回溯。即,在主串和模式串匹配的过程中,主串和模式串中有部分相同,相同的部分我们把它看做模式串的前缀串,如:模式串(p): abcabcc主串 (s): abcaddd其中相同的部分肯定是模式串的子集。如上面例子中:abca为共同部分,abca为模式串abcab的子集。回溯的目的也就是共同部分和模式串本身的匹配的重合度,如上:p[4]和s[4]不匹配,很明显可以看出如果保持主串的匹配位置不变,即从s[4]开始不进行回溯,需要从模式串的p[0]开始。最后归结为:取abcad对应模式串的abcab的p[4]的最后缀和模式串本身abcabccc的最前缀的最大匹配度,需要移动模式 阅读全文
posted @ 2013-04-22 18:09 尖刀舞者 阅读(285) 评论(0) 推荐(0) 编辑
  2013年4月20日
摘要: public class HeapSort{ public static void main(String[] args){ int[] arrays = {45, 23,56,78,90,80,65}; HeapSort h = new HeapSort(); h.buildHeap(arrays); System.out.println(" ni hao a ".trim()); h.printArrays(arrays); } public void printArrays(int[] arrays){ for(int i=0; i<arrays.length; 阅读全文
posted @ 2013-04-20 15:39 尖刀舞者 阅读(125) 评论(0) 推荐(0) 编辑