摘要:
第38条:检查参数的有效性1.应该在错误出现之后尽快的检测出错误;2.对于公有的方法,要用javac的@throws标签在文档中说明违反参数值限制时会抛出的异常,异常有IllegalArgumentException,IndexOutOfBoundsException,NullPointerException(详见60条);3.非公有的方法通常应使用断言(assert)来检查 它们的参数,如果断言失败,将会抛出AssertionError;也不同于一般的有效性校验,如果它们没有起到作用,本质上不会有成本的开销;4.当有效性检验工作非常昂贵,或者不切实际的,而且有效性校验已经隐含在计算过程中完成 阅读全文
摘要:
1.JSONObject是无序的;JSONArray是有序的2.JSONObject里的get()和opt()方法通过name得到values;put()方法通过name添加value;value的类型可以为:Boolean,JSONArray,JSONObject,Number,String,JSONNull;element()方法将key-Value转化为JSONObject;静态方法fromObject(Object obj)构造一个JSONObject对象;toXXX()方法转换为什么类型。例子:String seasonRange = {1:[2011-5-1,2011-9-1],2 阅读全文
摘要:
一、概述Profiler是一个时间统计程序,他通过在程序中埋点,将埋点时间记录入线程变量中以实现革离,最后dump出结果,得出埋点时间树。二、Profiler常用方法(Profiler类的静态方法)1、Start当前线程埋点计时的开始,标识当前埋点的开始时间,每个埋点产生一个Entry,被压入线程变量中的栈中,当start方法被调用时,就是一个时间点栈的开始,如果start方法被重复调用,则覆盖前面被放入线程变量的栈,每个线程只允许一个栈的存在。该方法的参数标识该Entry信息。2、Enter向线程变量中的栈压入当前埋点信息Profiler.entry("..."),标 阅读全文
摘要:
一、HashMap和HashTable区别:1.HashTable是Dictionary的子类,HashMap是Map接口的一个实现类;2.HashTable中的方法是同步的,而HashMap中方法是非同步的.也就是说,在多线程的情况下用HashMap需要额外的同步机制.Map Collections.synchronziedMap(Map m)这个方法返回一个同步的Map,封装了底层的HashMap方法,使得多线程安全.或者采用ConcurrentMap接口;3.HashMap中,键和值都可以为null(null键只能有一个),HashTable不允许为null。当get()方法时返回nul 阅读全文
摘要:
TWiki 语法格式(TWiki语法教程及TWiki使用技巧)Winter 翻译 用TWiki 编辑就和平时直接写文本一样简单 -- 就像写email。如果你喜欢,你可以使用HTML代码,但是并不要求你了解。当你写入一个 WikiWords 时,TWiki会自动链接到相应的主题。TWiki 语法速记让你通过一个简单的译码系统拥有了所有强大的HTML功能。 在你使用 Edit 界面时,本网页可以通过弹出窗口的方式完全展现给用户。1 TWiki 编辑语法速记格式描述:例子: You write:效果:段落: 一个空行会生成一个新段落(注意空行上不要有空格).1st paragraph2nd par 阅读全文
摘要:
Arrays.sort()方法采用的是模板方法模式,步骤为mergeSort --- comparaTo --- swap原理:所以如果自定义排序方法时,需要实现comparaTo()方法comparaTo()方法的实现为:public class Duck implements Comparable<Object> { String duckStr; public Duck(String str){ this.duckStr = str; } @Override public int compareTo(Object obj) { Duck str1 = (Duck)obj; i 阅读全文