对于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`来动态添加数据,这是一种在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 中所有类的父类,它提供...
`operate` 方法接受两个 `StringBuffer` 参数,并对第一个参数执行追加操作,然后将第二个参数设置为第一个参数的引用。由于 `StringBuffer` 是可变对象,所以在 `operate` 方法中对 `x` 进行的修改会影响到原始的 `...
本测试程序旨在深入理解和探索`String`类的一些核心功能和内部机制。以下是一些关于`String`类的关键知识点: 1. **不可变性**:`String`对象在创建后就不能更改。这意味着一旦创建了`String`实例,它的值就固定了...
如果你对字符串中的内容经常进行操作,特别是内容要修改时,那么使用StringBuffer,如果最后需要String,那么使用StringBuffer的toString()方法 3. innerHTML与innerText 各代表什么含义? innerHTML是符合W3C标准的...
然而,如果项目中仍然需要支持较老的浏览器环境,并且性能测试表明自定义StringBuffer类能带来性能上的明显提升,那么采用这种优化手段也是值得考虑的。 需要注意的是,随着JavaScript引擎的不断升级优化,现代...
Java核心技术包括许多方面,本文将基于给定的测试题及参考答案来深入讲解其中的关键知识点。 1. **基本数据类型与引用类型** - Java 的基本数据类型包括 byte、int、char、long、float、double、boolean 和 short...