您的位置:首页 > 其它

数据格式化与性能优化

2015-09-14 14:09 183 查看
package data;

import java.text.MessageFormat;

public class DataFormat {

final static int N = 25000;

public static void main(String[] args) {

operatorFormat();

withPrecompileFormat();

withoutPrecompileFormat();

}

/**

* @author
梅园浩

* @date 2015年9月14日 上午11:19:12

* @category
通过预编译的方式格式化数据

*/

public static void withPrecompileFormat() {

Object argvec[] = new Object[2];

MessageFormat f = new MessageFormat("The square of (0,number,#) is {1,number,#}");

long startTime = System.currentTimeMillis();

for (int i = 0; i <= N; i++) {

argvec[0] = new Integer[i];

argvec[1] = new Integer(i * i);

String s = f.format(argvec);

}

long endTime = System.currentTimeMillis();

System.out.println("通过预编译的方式格式化数据:"+ (endTime - startTime));

}

/**

* @author
梅园浩

* @date 2015年9月14日 上午11:19:12

* @category
不通过预编译的方式格式化数据

*/

public static void withoutPrecompileFormat() {

Object argvec[] = new Object[2];

String f = "The square of (0,number,#) is {1,number,#}";

long startTime = System.currentTimeMillis();

for (int i = 0; i <= N; i++) {

argvec[0] = new Integer[i];

argvec[1] = new Integer(i * i);

String s = f.format(f,argvec);

}

long endTime = System.currentTimeMillis();

System.out.println("不通过预编译的方式格式化数据:"+ (endTime - startTime));

}

/**

* @author
梅园浩

* @date 2015年9月14日 下午1:35:09

* @category
采用操作符格式化数据

*/

public static void operatorFormat() {

String s ;

long startTime = System.currentTimeMillis();

for (int i = 0; i <= N; i++) {

s = "The square of" + i + " is " + ( i * i );

}

long endTime = System.currentTimeMillis();

System.out.println("采用操作符格式化数据:"+ (endTime - startTime));

}

}

测试结果:

采用操作符格式化数据:79

通过预编译的方式格式化数据:659

不通过预编译的方式格式化数据:804

测试说明:

第一种方式是通过操作符“+”来格式化信息串;

第二种方式应用MessageFormat类通过预编译的方法来格式化一个信息串;

第三种方式是应用MessageFormat类通过不带预编译的方法来格式化一个信息串;

由上面的结果可以看出,采用操作符格式化数据是格式化数据的首选。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: