StringBuffer = function(){
this.arr = new Array();
this.appendChild = function(str){
this.arr.push(str);
}
this.toString = function(){
return this.arr.join("");
}
}
for(var k=1;k<=20;k++){
document.write("NO."+k+"<br>")
var sb = new StringBuffer();
var startDate = new Date();
for(var i=0;i<10000;i++){
sb.appendChild("I");
}
sb.toString();
var endDate = new Date();
document.write(" Use first method:"+(endDate.getTime()-startDate.getTime())+" (milliseconds)<br>");
var str = "";
var startDate2 = new Date();
for(var i=0;i<10000;i++){
str+="I"
}
var endDate2 = new Date();
document.write(" Use second method:"+(endDate2.getTime()-startDate2.getTime())+" (milliseconds)<br>");
}
引用
Result:
NO.1
Use first method:47 (milliseconds)
Use second method:313 (milliseconds)
NO.2
Use first method:62 (milliseconds)
Use second method:266 (milliseconds)
NO.3
Use first method:62 (milliseconds)
Use second method:297 (milliseconds)
NO.4
Use first method:47 (milliseconds)
Use second method:297 (milliseconds)
NO.5
Use first method:47 (milliseconds)
Use second method:359 (milliseconds)
NO.6
Use first method:47 (milliseconds)
Use second method:297 (milliseconds)
NO.7
Use first method:47 (milliseconds)
Use second method:312 (milliseconds)
NO.8
Use first method:47 (milliseconds)
Use second method:313 (milliseconds)
NO.9
Use first method:47 (milliseconds)
Use second method:312 (milliseconds)
NO.10
Use first method:47 (milliseconds)
Use second method:313 (milliseconds)
NO.11
Use first method:46 (milliseconds)
Use second method:313 (milliseconds)
NO.12
Use first method:47 (milliseconds)
Use second method:344 (milliseconds)
NO.13
Use first method:46 (milliseconds)
Use second method:313 (milliseconds)
NO.14
Use first method:47 (milliseconds)
Use second method:328 (milliseconds)
NO.15
Use first method:47 (milliseconds)
Use second method:312 (milliseconds)
NO.16
Use first method:47 (milliseconds)
Use second method:328 (milliseconds)
NO.17
Use first method:47 (milliseconds)
Use second method:297 (milliseconds)
NO.18
Use first method:63 (milliseconds)
Use second method:328 (milliseconds)
NO.19
Use first method:47 (milliseconds)
Use second method:343 (milliseconds)
NO.20
Use first method:47 (milliseconds)
Use second method:344 (milliseconds)
NO.21
Use first method:47 (milliseconds)
Use second method:312 (milliseconds)
NO.22
Use first method:47 (milliseconds)
Use second method:344 (milliseconds)
NO.23
Use first method:47 (milliseconds)
Use second method:344 (milliseconds)
NO.24
Use first method:46 (milliseconds)
Use second method:344 (milliseconds)
NO.25
Use first method:47 (milliseconds)
Use second method:328 (milliseconds)
NO.26
Use first method:47 (milliseconds)
Use second method:344 (milliseconds)
NO.27
Use first method:47 (milliseconds)
Use second method:343 (milliseconds)
NO.28
Use first method:63 (milliseconds)
Use second method:328 (milliseconds)
NO.29
Use first method:47 (milliseconds)
Use second method:328 (milliseconds)
NO.30
Use first method:47 (milliseconds)
Use second method:344 (milliseconds)
NO.31
Use first method:47 (milliseconds)
Use second method:328 (milliseconds)
NO.32
Use first method:47 (milliseconds)
Use second method:375 (milliseconds)
NO.33
Use first method:46 (milliseconds)
Use second method:344 (milliseconds)
NO.34
Use first method:47 (milliseconds)
Use second method:359 (milliseconds)
NO.35
Use first method:47 (milliseconds)
Use second method:344 (milliseconds)
NO.36
Use first method:47 (milliseconds)
Use second method:359 (milliseconds)
NO.37
Use first method:47 (milliseconds)
Use second method:344 (milliseconds)
NO.38
Use first method:47 (milliseconds)
Use second method:359 (milliseconds)
NO.39
Use first method:47 (milliseconds)
Use second method:344 (milliseconds)
NO.40
Use first method:47 (milliseconds)
Use second method:359 (milliseconds)
NO.41
Use first method:47 (milliseconds)
Use second method:344 (milliseconds)
NO.42
Use first method:47 (milliseconds)
Use second method:343 (milliseconds)
NO.43
Use first method:47 (milliseconds)
Use second method:360 (milliseconds)
NO.44
Use first method:47 (milliseconds)
Use second method:359 (milliseconds)
NO.45
Use first method:62 (milliseconds)
Use second method:344 (milliseconds)
NO.46
Use first method:47 (milliseconds)
Use second method:359 (milliseconds)
NO.47
Use first method:47 (milliseconds)
Use second method:360 (milliseconds)
NO.48
Use first method:47 (milliseconds)
Use second method:359 (milliseconds)
NO.49
Use first method:47 (milliseconds)
Use second method:359 (milliseconds)
NO.50
Use first method:47 (milliseconds)
Use second method:375 (milliseconds)
Memory:2G
CPU: Inter(R) Pentium(R) Dual Cpu E2200 @2.2GHz
分享到:
相关推荐
以下是一个简单的性能测试,展示了在不同操作中`String`、`StringBuffer`和`StringBuilder`的性能差异: ```java public class StringTest { public static String BASEINFO = "Mr.Y"; public static final int ...
下面通过一个具体的性能测试示例来进一步说明 `String` 和 `StringBuffer` 的性能差异: ```java public class PerformanceTest { public static void main(String[] args) { final int times = 5000; String ...
8. **利用Buffer类**:如StringBuilder和StringBuffer用于字符串拼接,BufferedInputStream和BufferedOutputStream用于I/O操作,它们通过缓冲区提高性能。 9. **避免依赖finalize方法**:finalize方法不是清理资源...
例如,`2196407-20210422152310204-137300783.png`可能展示了`String`、`StringBuffer`和`StringBuilder`的性能对比测试结果,而`assets\函数式接口类型.png`可能列出了Java中的常见函数式接口。 总之,掌握`String...
- **性能测试工具**:如JMeter、LoadRunner等工具可以帮助开发者模拟不同负载情况下的系统表现。 - **性能监控平台**:使用Prometheus、Grafana等工具实时监控系统的关键指标,及时发现并解决问题。 - **代码剖析...
此外,我们还会讨论Java 9引入的`StringJoiner`类,这是一个用于构建字符串的工具类,它允许我们在构建字符串时提供分隔符和前缀后缀,同时具有良好的性能表现。相比传统的字符串拼接方式,`StringJoiner`在某些场景...
这可以通过使用性能测试工具来完成。 2. **识别瓶颈**:利用性能分析工具(如JProfiler、VisualVM等)找出程序中最耗时的部分。 3. **选择优化策略**:根据瓶颈的具体情况选择合适的优化策略,比如改进算法、...
标题中的“实用小工具:Java实体类对比、Json对比、字符串动态拼接等功能”涉及到的是在软件开发过程中常用的几个技术点,主要集中在Java后端和前端Vue.js的应用上。这里我们将详细探讨这些知识点: 1. **Java实体...
String和StringBuffer、StringBuilder 在java性能测试中经常遇到很多的问题,Jason对代码端的非常常见的问题留下点Memory。 String和StringBuffer、StringBuilder 在循环中使用“+”来连接String将大大降低...
Java程序性能优化是每个开发人员都需要关注的重要领域,特别是在企业级应用中,高效的代码执行能够带来更好的用户体验,减少服务器资源的消耗,降低运营成本。本资料包“Java程序性能优化 让你的Java程序更快、更...
Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,...
当我们需要构建一个动态字符串时,`StringBuilder` 或 `StringBuffer` 类是非常有效的工具。它们提供了 `append()` 方法,可以将任意对象转换为字符串并添加到当前字符串中。例如: ```java StringBuilder sb = ...
本篇将基于《java time and space performance tips》一书中的知识,结合提供的个人测试代码,深入探讨Java性能优化的策略。 1. **避免不必要的对象创建** - 在Java中,频繁的对象创建和垃圾回收会增加运行时的...
【Java基础测试题目详解】 1. **面向对象的特征** - **抽象**:抽象是面向对象编程的核心概念,它允许我们关注问题的关键部分,忽略不重要的细节。抽象分为过程抽象和数据抽象。过程抽象是将一个复杂的过程简化为...
22. **预热和基准测试**:在优化前进行性能测试,以确定优化的有效性。 23. **延迟初始化**:只有在真正需要时才初始化对象,避免无谓的资源消耗。 24. **使用并发工具类**:比如 CountDownLatch、CyclicBarrier ...
Java开发中的性能优化是提升应用程序效率的关键步骤。在编程中,我们需要关注代码的运行效率,以确保程序在处理大量数据或高并发场景下仍能...在实际开发中,还需要结合具体的应用场景和性能测试结果来调整优化策略。
- `StringBuffer`类提供了一个可变的字符串,支持字符串的修改操作。 #### 5. 异常处理 Java中的异常处理主要包括两种类型: - **运行时异常**:通常由编程错误导致,例如数组越界等。 - **检查异常**:编译器强制...