对于java的参数传递到底是值传递还是引用传递,一直是一个很疑惑的概念,到现在为止还是不怎么清楚,不过对于StringBuffer 和String类的参数传递也是一知半解。现在就做一个简单的例子测试
public class testBuffer {
public static void main(String[] args) {
StringBuffer a = new StringBuffer("A");
StringBuffer b = new StringBuffer("B");
operate(a,b);
String s1="A";
String s2="B";
operate(s1,s2);
System.out.println(a + " " + b);//1
System.out.println(s1 + " " + s2);//1
}
private static void operate(StringBuffer a, StringBuffer b) {
a.append(b);
b = a;//2
}
private static void operate(String a, String b) {
a=a+b;
b = a;//2
}
}
运行结果为:
AB B
A B
也就是说当参数为StringBuffer时,当两个参数为A B时,得到的结果为AB B
党参数为String,两个参数为A B时,得到的结果为A B。
我也不知道这个到底是什么原因,只能死记
分享到:
相关推荐
StringBuffer的方法大多是同步的,这意味着多个线程可以安全地同时调用StringBuffer对象的方法。然而,线程安全带来的好处是以性能为代价的,因为同步方法的执行需要更多的CPU资源。StringBuffer在内部使用一个可...
这里我们使用了`StringBuffer`来动态添加数据,这是一种在Java中高效处理字符串的方法,尤其在需要频繁拼接字符串的情况下。 首先,我们需要理解`StringBuffer`的基本用法。`StringBuffer`是一个线程安全的类,它...
下面通过一个具体的性能测试示例来进一步说明 `String` 和 `StringBuffer` 的性能差异: ```java public class PerformanceTest { public static void main(String[] args) { final int times = 5000; String ...
这段代码创建了三个测试方法,分别使用`String`、`StringBuffer`和`StringBuilder`进行循环拼接操作,并记录耗时。运行这个测试,你会发现在多次字符串连接操作中,`StringBuilder`通常比`StringBuffer`快,而`...
本文将深入探讨在Java中使用不同方法进行字符串连接时的性能差异,特别是针对“+”运算符与`StringBuffer`类在大量字符串连接操作中的表现。 ### 标题解析:“字符串连接方面测试时间” 标题明确了文章的核心主题...
//测试StringBuffer时候把注释打开 //sb.append(i); } long endFreememory = runtime.freeMemory(); long end = System.currentTimeMillis(); System.out.println("操作耗时:" + (end - start) + "ms," + ...
例如,`2196407-20210422152310204-137300783.png`可能展示了`String`、`StringBuffer`和`StringBuilder`的性能对比测试结果,而`assets\函数式接口类型.png`可能列出了Java中的常见函数式接口。 总之,掌握`String...
下面将详细介绍这三个类的方法及其实现,并提供一些重要的测试用例。 1. **String类** - `String`是最基本的字符串类,它被声明为不可变对象。这意味着一旦创建,其内容就不能改变。因此,每次对`String`对象进行...
黑盒测试是一种不考虑内部结构或实现,仅关注软件功能和用户界面的测试方法。 **一、测试设计** 在黑盒测试中,等价类划分是常用的一种策略。等价类是指一组具有相同测试效果的输入数据。在这个Java计算器的测试中...
首先,`StringBuffer`在内部使用了`synchronized`关键字修饰其公共方法,如`append()`、`insert()`等,这使得在多线程环境下,当一个线程正在执行这些方法时,其他线程必须等待,直到该方法执行完成才能继续。...
- `append()`方法用于追加字符串到`StringBuffer`对象,`length()`方法返回当前缓冲区中的字符数,包括追加的`"ss"`。 10. `substring()`方法描述: - `substring()`可以获取字符串的一部分,并返回一个新的字符...
JAVA 中有许多常用的类,每个类都有其特定的方法,本文将对 java.lang.Object 类、String 类和 StringBuffer 类的常用方法进行讲解。 一、java.lang.Object类 java.lang.Object 类是 JAVA 中所有类的父类,它提供...
该方法接收两个`StringBuffer`类型的参数,并对它们进行了操作。主函数中创建了两个`StringBuffer`对象`a`和`b`,然后调用了`operate`方法,并最终打印这两个对象的值。 **选项分析:** - **A.** 代码编译并打印“A...
`operate` 方法接受两个 `StringBuffer` 参数,并对第一个参数执行追加操作,然后将第二个参数设置为第一个参数的引用。由于 `StringBuffer` 是可变对象,所以在 `operate` 方法中对 `x` 进行的修改会影响到原始的 `...
本测试程序旨在深入理解和探索`String`类的一些核心功能和内部机制。以下是一些关于`String`类的关键知识点: 1. **不可变性**:`String`对象在创建后就不能更改。这意味着一旦创建了`String`实例,它的值就固定了...
单元测试是针对代码中的最小可测试单元进行的测试,通常是一个函数或方法。在Maven中,我们可以使用JUnit框架来编写和运行单元测试。通过`mvn test`命令,Maven会自动编译项目源码和测试代码,并运行所有标注了@Test...
如果你对字符串中的内容经常进行操作,特别是内容要修改时,那么使用StringBuffer,如果最后需要String,那么使用StringBuffer的toString()方法 3. innerHTML与innerText 各代表什么含义? innerHTML是符合W3C标准的...
然而,如果项目中仍然需要支持较老的浏览器环境,并且性能测试表明自定义StringBuffer类能带来性能上的明显提升,那么采用这种优化手段也是值得考虑的。 需要注意的是,随着JavaScript引擎的不断升级优化,现代...
1、使用性能测试工具dotTrace 3.0,它能够计算出你程序中那些代码占用内存较多 2、强制垃圾回收 3、多dispose,close 4、用timer,每几秒钟调用:SetProcessWorkingSetSize(Process.GetCurrentProcess()....