Java时间更新周期测试
写了个简单的测试代码,测试了JAVA的时间更新单元,发现currentTimeMillis的更新周期大约是15或16ms,所以精度也就在15ms-16ms,低于15ms的时间是无法测量出来的。而nanoTime的更新周期大约在800-1200纳秒左右,因此低于 800ns的时间无法测量出来。代码如下:
public class JavaTimeWinTest
{
public static void main(String[] args)
{
msTest();
nsTest();
}
private static void msTest()
{
int size = 6000000;
long[] times = new long[size];
for(int k = 0 ;k <size;k++)
{
times[k] = System.currentTimeMillis();
}
long preTime = times[0] ;
for(int k = 1 ;k <size;k++)
{
if(times[k]>preTime)
{
System.out.print("ms 当前值:" + times[k]);
System.out.println(" 变化值:" + (times[k]-preTime));
preTime = times[k];
}
}
}
private static void nsTest()
{
int size = 50;
long[] times = new long[size];
for(int k = 0 ;k <size;k++)
{
times[k] = System.nanoTime();
}
long preTime = times[0] ;
for(int k = 1 ;k <size;k++)
{
if(times[k]>preTime)
{
System.out.print("ns 当前值:" + times[k]);
System.out.println(" 变化值:" + (times[k]-preTime));
preTime = times[k];
}
}
}
}
运行代码输出结果如下:
ms 当前值:1262223891000 变化值:16
ms 当前值:1262223891015 变化值:15
ms 当前值:1262223891031 变化值:16
ms 当前值:1262223891046 变化值:15
ms 当前值:1262223891062 变化值:16
ms 当前值:1262223891078 变化值:16
ms 当前值:1262223891093 变化值:15
ms 当前值:1262223891109 变化值:16
ms 当前值:1262223891125 变化值:16
ms 当前值:1262223891140 变化值:15
ms 当前值:1262223891156 变化值:16
ms 当前值:1262223891171 变化值:15
ms 当前值:1262223891187 变化值:16
ms 当前值:1262223891203 变化值:16
ms 当前值:1262223891218 变化值:15
ms 当前值:1262223891234 变化值:16
ms 当前值:1262223891250 变化值:16
ms 当前值:1262223891265 变化值:15
ms 当前值:1262223891281 变化值:16
ms 当前值:1262223891296 变化值:15
ns 当前
相关文档:
一:准备 www.savarese.org download
1. rocksaw-1.0.0-src.tar.gz
2. vserv-tcpip-0.9.2-src.tar.gz
二:编译源文件得到jar包 使用Ant
1. build vserv-tcpip-0.9.2-src
在vserv-tcpip-0.9.2目录下面建一个tests目录,然后在cmd窗口下进入 ......
类的初始化和对象初始化是 JVM 管理的类型生命周期中非常重要的两个环节,Google 了一遍网络,有关类装载机制的文章倒是不少,然而类初始化和对象初始化的文章并不多,特别是从字节码和 JVM 层次来分析的文章更是鲜有所见。
本文主要对类和对象初始化全过程进行分析,通过一个实际问题引入,将源代码转换成 JVM 字节码后, ......
RT
package
com.fxt.test;
import
org.apache.commons.mail.EmailException;
import
org.apache.commons.mail.SimpleEmail;
public
class
Mail {
public
static
void
m ......
1、Timer介绍
建立任务:使用Timer调度的任务应该继承TimerTask抽象类,该类实现Runnable接口,因些具备多线程的能力,实现该接口的run方法,该方法是需要高度的任务执行体。
调度任务:调度任务通过Timer类完成,调度任务通过schedul方法完成,查一下java doc文档:
Java代码
void schedule(TimerTask task, Date tim ......
for(int i=0;i<string.length();i++)
{
char x=string.CharAt(i);
if(Character.isDigit(i)==true){
//x类型转换然后统计
}
}
如下可以将字母与数字分离出来
用正则!
String str="200Minute";
String str2="300.25Hour";
String regex="[a-zA-Z]" ......