上一页 1 ··· 3 4 5 6 7 8 9 10 11 下一页
摘要: 一、概述Profiler是一个时间统计程序,他通过在程序中埋点,将埋点时间记录入线程变量中以实现革离,最后dump出结果,得出埋点时间树。二、Profiler常用方法(Profiler类的静态方法)1、Start当前线程埋点计时的开始,标识当前埋点的开始时间,每个埋点产生一个Entry,被压入线程变量中的栈中,当start方法被调用时,就是一个时间点栈的开始,如果start方法被重复调用,则覆盖前面被放入线程变量的栈,每个线程只允许一个栈的存在。该方法的参数标识该Entry信息。2、Enter向线程变量中的栈压入当前埋点信息Profiler.entry("..."),标 阅读全文
posted @ 2011-06-22 19:15 跳刀的兔子 阅读(6842) 评论(1) 推荐(0) 编辑
摘要: 一、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 阅读全文
posted @ 2011-06-22 18:48 跳刀的兔子 阅读(11368) 评论(0) 推荐(0) 编辑
摘要: TWiki 语法格式(TWiki语法教程及TWiki使用技巧)Winter 翻译 用TWiki 编辑就和平时直接写文本一样简单 -- 就像写email。如果你喜欢,你可以使用HTML代码,但是并不要求你了解。当你写入一个 WikiWords 时,TWiki会自动链接到相应的主题。TWiki 语法速记让你通过一个简单的译码系统拥有了所有强大的HTML功能。 在你使用 Edit 界面时,本网页可以通过弹出窗口的方式完全展现给用户。1 TWiki 编辑语法速记格式描述:例子: You write:效果:段落: 一个空行会生成一个新段落(注意空行上不要有空格).1st paragraph2nd par 阅读全文
posted @ 2011-06-22 13:47 跳刀的兔子 阅读(2520) 评论(0) 推荐(0) 编辑
摘要: 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 阅读全文
posted @ 2011-06-22 01:20 跳刀的兔子 阅读(396) 评论(0) 推荐(0) 编辑
摘要: 对类的功能的扩展,要多用组合,少用继承。对于类的扩展,在面向对象的编程过程中,我们首先想到的是类的继承,由子类继承父类,从而完成了对子类功能的扩展。但是,面向对象的原则告诉我们,对类的功能的扩展要多用组合,而少用继承。其中的原因有以下几点:第一、子类对父类的继承是全部的公有和受保护的继承,这使得子类可能继承了对子类无用甚至有害的父类的方法。换句话说,子类只希望继承父类的一部分方法,怎么办?第二、实际的对象千变万化,如果每一类的对象都有他们自己的类,尽管这些类都继承了他们的父类,但有些时候还是会造成类的无限膨胀。第三、 继承的子类,实际上需要编译期确定下来,这满足不了需要在运行内才能确定对象的情 阅读全文
posted @ 2011-06-21 22:19 跳刀的兔子 阅读(14958) 评论(2) 推荐(9) 编辑
摘要: 最近在将String转换为Date类型时发现Date.parse(String)已经废除,找了N多地方发现SimpleDateFormat类更有扩展性,示例如下:这样类型的转换就拥有了更高的灵活性,如果日期变为"2008/10/13 15:20:25"代码只需变动如下public static void main(String[] args) { String d = "2008/10/13 15:20:25"; SimpleDateFormat sdf = new SimpleDateFormat("yyyy/mm/dd hh:mm:ss&q 阅读全文
posted @ 2011-06-20 13:54 跳刀的兔子 阅读(8710) 评论(0) 推荐(0) 编辑
摘要: Radio 是 HTML 中的单选框,同一个 form 中,name 相同的 Radio 构成一组,这一组中最多只允许有一个 Radio 被选中。如果将 form 提交到服务器端 ASP 程序,ASP 程序要获得用户选择的那个 Radio 的 value 是非常方便的,用 request.Form("RadioName"),不必理会有几个 Radio。但在 JS(JavaScript) 中就要复杂多了,我们不能像对其它元素(如:文本框)一样,使用 formid.objName.value 来取值,我们应该循环这个组的 Radio,判断其 checked 属性,再取值。为了方 阅读全文
posted @ 2011-06-08 20:54 跳刀的兔子 阅读(3156) 评论(0) 推荐(0) 编辑
摘要: 数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标。数据库连接池正是针对这个问题提出来的。数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而再不是重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。这项技术能明显提高对数据库操作的性能。数据库连接池在初始化时将创建一定数量的数据库连接放到连接池中,这些数据库连接的数量是由最小数据库连接数来设定的。无论这些数据库连接是否被使用,连接池都将一 阅读全文
posted @ 2011-06-07 16:13 跳刀的兔子 阅读(572) 评论(0) 推荐(0) 编辑
摘要: JVM的内存分为两部分:Stack和Heap。 在JVM中,静态属性保存在Stack指令内存区,动态属性保存在Heap数据内存区。Stack(栈)是JVM的内存指令区。Stack管理很简单,push一定长度字节的数据或者指令,Stack指针压栈相应的字节位移;pop一定字节长度数据或者指令,Stack指针弹栈。Stack的速度很快,管理很简单,并且每次操作的数据或者指令字节长度是已知的。所以Java 基本数据类型,Java 指令代码,常量都保存在Stack中。Heap(堆)是JVM的内存数据区。Heap 的管理很复杂,每次分配不定长的内存空间,专门用来保存对象的实例。在Heap 中分配一定的内 阅读全文
posted @ 2011-06-06 15:05 跳刀的兔子 阅读(348) 评论(0) 推荐(0) 编辑
摘要: 创建新的对象并初始化的操作,可能会消耗很多的时间。在这种对象的初始化工作包含了一些费时的操作(例如,从一台位于20,000千米以外的主机上读出一些数据)的时候,尤其是这样。在需要大量生成这样的对象的时候,就可能会对性能造成一些不可忽略的影响。要缓解这个问题,除了选用更好的硬件和更棒的虚拟机以外,适当地采用一些能够减少对象创建次数的编码技巧,也是一种有效的对策。对象池化技术(Object Pooling)就是这方面的著名技巧,而Jakarta Commons Pool组件则是处理对象池化的得力外援。 说明:英语中的Pool除了“池”之外,还有“供多方共享的资源”意思。对象池化技术对象池化的基本思 阅读全文
posted @ 2011-06-02 16:14 跳刀的兔子 阅读(6637) 评论(0) 推荐(1) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 10 11 下一页