basejunit.java
protected void configure(Class<?> clazz) {
PropertyConfigurator.configure(getLog4jConfiguration(clazz));
}
private Properties getLog4jConfiguration(Class<?> clazz) {
Properties prop = new Properties();
String className = clazz.getSimpleName().toLowerCase();
prop.setProperty(String.format("log4j.logger.%s",clazz.getPackage().getName()+"."+clazz.getSimpleName()), String.format("info,%s", className));
prop.setProperty(String.format("log4j.appender.%s",className), "org.apache.log4j.FileAppender");
prop.setProperty(String.format("log4j.appender.%s.layout",className), "org.apache.log4j.PatternLayout");
prop.setProperty(String.format("log4j.appender.%s.file",className), String.format("%s.log",clazz.getResource("").toString().replace("file:/", "")+"log/"+className));
prop.setProperty(String.format("log4j.appender.%s.layout.ConversionPattern",className), "%d %p [%c] - %m%n");
return prop;
}
StringFormantAndStringBuildTest.java
public class StringFormantAndStringBuildTest extends BaseJunit {
private Log log = null;
private long stamp=0;
int maxTime=100;
public StringFormantAndStringBuildTest(){
log = LogFactory.getLog(this.getClass());
super.configure(this.getClass());
}
@Before
public void step(){
}
@Test
public void StringFormatTest(){
stamp=System.currentTimeMillis();
StringBuilder testString=new StringBuilder();
Random random=new Random();
Object[] obj=new Object[maxTime];
for (int i=0 ;i<maxTime;i++){
testString.append("%s_");
obj[i]=random.nextLong();
}
log.info(String.format(testString.toString(),obj));
log.info("StringFromat stamp:"+(System.currentTimeMillis()-stamp));
}
@Test
public void StringBuilder(){
stamp=System.currentTimeMillis();
StringBuilder testString=new StringBuilder();
Random random=new Random();
for (int i=0 ;i<maxTime;i++){
testString.append(random.nextLong());
testString.append("-");
}
log.info(testString.toString());
log.info("StringBuilder stamp:"+(System.currentTimeMillis()-stamp));
}
@Test
public void StringBuffer(){
stamp=System.currentTimeMillis();
StringBuffer testString=new StringBuffer();
Random random=new Random();
for (int i=0 ;i<maxTime;i++){
testString.append(random.nextLong());
testString.append("-");
}
log.info(testString.toString());
log.info("StringBuffer stamp:"+(System.currentTimeMillis()-stamp));
}
@Test
public void String(){
stamp=System.currentTimeMillis();
String testString="";
Random random=new Random();
for (int i=0 ;i<maxTime;i++){
testString=testString+random.nextLong()+"-";
}
log.info(testString);
log.info("String stamp:"+(System.currentTimeMillis()-stamp));
}
}
测试结果:
mehtod | time | junit_time(s) | log) |
String.format | 100 | 0.078 | 0 |
StringBuilder | 100 | 0 | 0 |
StringBuffer | 100 | 0 | 0 |
String+ | 100 | 0 | 0 |
String.format | 1000 | 0.125 | 31 |
StringBuilder | 1000 | 0.016 | 0 |
StringBuffer | 1000 | 0 | 0 |
String+ | 1000 | 0.156 | 156 |
String.format | 5000 | 0.172 | 109 |
StringBuilder | 5000 | 0.032 | 32 |
StringBuffer | 5000 | 0.031 | 31 |
String+ | 5000 | 16.609 | 16594 |
String.format | 10000 | 0.235 | 172 |
StringBuilder | 10000 | 0.062 | 47 |
StringBuffer | 10000 | 0.047 | 47 |
String+ | 10000 | ~ | 129469 |
接下去要测试一下多线程并发的情况,刚好借些机会学习多线程,反正很陌生
分享到:
相关推荐
使用c#的string.format 的一些常用的参数
### string.Format 的用法详解 在.NET框架中,`string.Format`是一个非常强大的字符串格式化方法,它允许我们按照特定的格式输出字符串。这在处理数据展示、日志记录等场景时极为有用。本文将详细介绍`string....
js 写的string format函数,功能模仿C#中的string.Format方法,已实现(整数 :D、小数:F、货币数字:C、科学计数:E 等4种)数字格式化。参数可以传递数组,也可以传多个参数。
### String.Format 数字格式化输出 在C#中,`String.Format`方法是进行字符串格式化的一种非常实用的方式。它允许我们对数字、日期、时间等数据类型进行精确的格式控制,使得输出更加符合需求或者易于阅读。本文将...
在JDK1.5中,String类增加了一个非常有用的静态函数format(String format, Objece... argues),可以将各类数据格式化为字符串并输出。其中format参数指定了输出的格式,是最复杂也是最难掌握的一点,而argues则是一...
这就是关于`String.format()`和获取当前运行路径的简单实例。这两个功能在日常的Java编程中都非常常见,对于构建用户友好的输出和进行文件操作等方面都十分有用。通过熟练掌握这些基础,开发者可以更有效地编写和...
JAVA中的`String.format`方法是一种强大的工具,用于创建格式化的字符串。它允许用户按照指定的模式格式化输出,尤其在处理数字、字符、日期等数据类型时极为有用。接下来,我们将深入探讨`String.format`方法如何...
### C#中的String.Format方法与数字格式化 在C#编程语言中,`String.Format`是一种非常实用且灵活的方法,用于格式化字符串输出。通过该方法可以方便地控制数字、日期时间等数据类型的显示格式,这在实际开发过程中...
在C#编程语言中,`String.Format`方法是一种强大的字符串格式化工具,它允许开发者以预定义的格式输出各种类型的数据,特别是在处理数字时。通过使用特定的格式化字符串,可以控制数字的显示方式,包括小数点后的...
### Java字符串格式化String.format()详解 #### 一、引言 `String.format()` 方法是JDK 1.5引入的新特性,它提供了一种灵活且强大的方式来格式化字符串。这种方法类似于C语言中的`printf`函数,允许开发者通过指定...
### C#中的String.Format方法详解 在C#编程语言中,`String.Format`是一个非常强大的字符串格式化工具,它允许...无论是简单的数值格式化还是复杂的日期时间格式化,`String.Format`都能提供灵活且强大的解决方案。
JS 中的 string.format 函数代码详解 JS 中的 string.format 函数代码是 JavaScript 中的一种格式化字符串的方法,该方法可以将变量的值插入到字符串中,从而生成一个完整的字符串。下面将详细介绍 JS 中的 string....
C# String.Format格式说明
本测试着重探讨了三种常用的字符串连接方法:`+`运算符、`String.Format()`以及`StringBuilder.Append()`,并分析了它们在性能上的差异。 1. **字符串连接:+ 运算符** 在C#中,`+`运算符可以用于连接两个或多个...
在C#编程中,`String.Format`方法是一个非常实用的功能,它允许我们将变量或表达式的值插入到一个字符串模板中,以生成格式化的输出。在处理数字、日期、时间等数据时,`String.Format`提供了丰富的格式化选项。以下...
本资源“C#String.Format格式化输出.rar”主要关注C#中的字符串格式化功能,尤其是`String.Format`方法的使用。字符串格式化是编程中一个非常重要的概念,它允许我们将数据按照特定的模板或格式进行输出,方便读取和...
`C#`中的`string.Format`方法是一种强大的字符串格式化工具,它允许程序员根据特定的格式将变量或表达式的结果转换为字符串。这个方法广泛应用于输出具有特定样式和精度的数值、日期、货币等信息。以下是对`string....
Java中的`String.format()`方法是用于格式化字符串输出的一个强大工具。它允许程序员按照特定的模板格式化数据,包括数字、日期、时间和各种其他类型的对象。这个方法类似于.NET框架中的`System.String.Format()`...
在JavaScript中,没有内置的`String.Format`函数,如C#中那样,它提供了一种方便的方式来格式化字符串。然而,由于JavaScript的灵活性,我们可以创建一个类似的函数来实现这一功能。`String.Format`的主要作用是将...