本程序是根据Thinking in Java简单改编而成。
package strings;
import java.util.Date;
import static net.mindview.util.Print.*;
/*
* 此程序是为了证明重载“+”和StringBuilder的巨大区别
* 这个程序是为了证明在使用到toString()方法的循环中,最好是自己创建一个StringBuilder对象,用它来构造最终的结果,
* 这样可以省去很多的JVM的后台处理,大大的提高效率。经过1万次循环测试发现用“+”重载的循环时间共用了800毫秒左右,而用了
* StringBuilder的耗时竟然是0毫秒,相差太大了……
*/
public class WhitherStringBuilder {
public String implicittest(int j){
String result="";
for(int i=0;i<j;i++){
result+=i;
}
return result;
}
public String explicittest(int j){
StringBuilder result= new StringBuilder();
for(int i=0 ; i<j ;i++){
result.append(i);
}
return result.toString();
}
public static void main(String[]arges){
WhitherStringBuilder p = new WhitherStringBuilder();
String result = "";
long timeBefor = new Date().getTime();
// result =p.implicittest(10000);
result =p.explicittest(10000);
long timeBehind = new Date().getTime();
print(timeBehind-timeBefor);
print(result.substring(0, 100));
}
}
分享到:
相关推荐
2. 设置容量和长度:可以使用重载的构造函数之一来指定 StringBuilder 类的容量,例如 StringBuilder MyStringBuilder = new StringBuilder("Hello World!", 25);。也可以使用读/写 Capacity 属性来设置对象的最大...
在.NET Framework中,string和StringBuilder都是字符串处理的重要工具,但是它们之间存在着很大的区别。 首先,从定义上来说,string是不可改变的对象,每次使用System.String类中的方法之一时,都要在内存中创建一...
通过用一个重载的构造函数方法初始化变量,可以创建 StringBuilder 类的新实例,正如以下示例中所阐释的那样。 设置容量和长度 虽然 StringBuilder 对象是动态对象,允许扩充它所封装的字符串中字符的数量,但是您...
与String不同,String对象的长度是固定的,一旦创建,其内容无法改变,每次对字符串进行修改都会生成新的对象,这在处理大量字符串拼接时会显著降低程序效率。而StringBuilder则提供了可变字符串的功能,它允许我们...
可以使用重载的构造函数方法初始化 StringBuilder 变量,例如 `StringBuilder MyStringBuilder = new StringBuilder("Hello World!");`。也可以指定 StringBuilder 的容量,例如 `StringBuilder MyStringBuilder = ...
stringbuilder用法String 对象是不可改变的。每次使用 System.String 类中的方法之一时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间。在需要对字符串执行重复修改的情况下,与创建新的 ...
重载是在同一个类中实现的,它提高了代码的可读性和复用性。 2. **方法重写(Overriding)**:当子类中出现与父类同名且参数列表完全相同的方法时,我们称这种方法为重写方法。方法重写增强了多态性,子类可以覆盖...
2. **拷贝构造函数与赋值运算符**:这是C++中的深拷贝和浅拷贝问题,`String`类需要重载这两个来确保当一个`String`对象被复制时,底层的数据也得到正确处理。这涉及到动态内存管理,防止悬挂指针和内存泄漏。 3. *...
本文总结了 Java 面试中的重要知识点,涵盖了基本数据类型、抽象类和接口、方法重载和重写、String、StringBuffer 和 StringBuilder 三者的区别、判断字符串是否为空、集合的理解等方面。 1. 基本数据类型 Java 中...
学生需要理解属性的作用,实现运算符+和-的重载,以及创建变形金刚和汽车类之间的转换。同时,设计具有索引器的类,能够根据数字和英文月份名获取对应天数。 实验七重点讲解继承和多态。学生需要通过设计点类(Point...
String 对象是不可改变的。每次使用 System.String 类中的方法之一时,都要在内存中创建...通过用一个重载的构造函数方法初始化变量,可以创建 StringBuilder 类的新实例,正如以下示例中所阐释的那样。 StringBuilder
实验四主要讲解字符串和正则表达式,要求学生能熟练运用String、StringBuilder类,以及简单的正则表达式。实验任务包括统计特定字符出现次数、构建个人简介、提取手机号码和处理混合文本,以此提升字符串处理和模式...
因此,对于多次拼接操作,StringBuffer和StringBuilder比String更高效。 - 在多线程环境中,StringBuffer是线程安全的,而StringBuilder不是。因此,在单线程环境下,StringBuilder的性能优于StringBuffer,因为没有...
1.2 String、StringBuffer和StringBuilder的区别: - String:由于String类的对象是用final修饰的char数组存储,且被声明为private和final,所以是不可变的。每次对String对象进行改变时,都会生成新的对象并改变...
15.String、StringBuffer、StringBuilder区别以及使用场景 16.重载和重写的区别(区别无参构造和有参) 17.Java中异常处理机制 18.java中==equals有哪些区别 19.ArrayList和LinkedList有什么区别 20.Java面向对象有...
在编程领域,处理大整数是一项常见的挑战,尤其是在需要进行精确计算或者数学运算的应用中。在C++和Java中,由于内置的整型数据类型...对于乘法和除法,可以进一步研究和实现高效率的算法,以提高大整数计算的性能。
12.String StringBuffer 和 StringBuilder 的区别是什么 String 为什么是不可变的 可变性、线程安全性的研究 13.自动装箱与拆箱 14.在一个静态方法内调用一个非静态成员为什么是非法的 15.在 Java 中定义一个不做事...
* 重载和重写的区别 + 重载:同名方法,参数列表不同 + 重写:子类重写父类的方法 * 抽象类和接口的区别 + 抽象类:提供默认实现,子类可以继承 + 接口:纯抽象,子类必须实现所有方法 二、Java集合 1.2 Java...